您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ EVT_KEY_LONG函数代码示例

51自学网 2021-06-01 20:35:49
  C++
这篇教程C++ EVT_KEY_LONG函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中EVT_KEY_LONG函数的典型用法代码示例。如果您正苦于以下问题:C++ EVT_KEY_LONG函数的具体用法?C++ EVT_KEY_LONG怎么用?C++ EVT_KEY_LONG使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了EVT_KEY_LONG函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: menuGeneralVersion

void menuGeneralVersion(uint8_t event){  if (s_warning_result) {    s_warning_result = 0;    displayPopup(STR_EEPROMFORMATTING);    eeErase(false);#if !defined(SIMU)    NVIC_SystemReset();#else    exit(0);#endif  }    SIMPLE_MENU(STR_MENUVERSION, menuTabGeneral, e_Vers, 1);  lcd_putsLeft(MENU_HEADER_HEIGHT+1, vers_stamp);  lcd_putsLeft(MENU_HEADER_HEIGHT+5*FH+1, STR_EEBACKUP);  lcd_putsLeft(MENU_HEADER_HEIGHT+6*FH+1, STR_FACTORYRESET);  drawFilledRect(0, MENU_HEADER_HEIGHT+5*FH, LCD_W, 2*FH+1, SOLID);  if (event == EVT_KEY_LONG(KEY_ENTER)) {    backupEeprom();  }  else if (event == EVT_KEY_LONG(KEY_MENU)) {    POPUP_CONFIRMATION(STR_CONFIRMRESET);  }}
开发者ID:RonDePrez,项目名称:opentx,代码行数:28,


示例2: menuProcNMEA4

void menuProcNMEA4(uint8_t event){    switch(event)						// new event received, branch accordingly    {    case EVT_KEY_BREAK(KEY_LEFT):        chainMenu(menuProcNMEA3);        break;    case EVT_KEY_BREAK(KEY_RIGHT):        chainMenu(menuProcNMEA1);        break;    case EVT_KEY_LONG(KEY_UP):        NMEA_DisableRXD();        chainMenu(menuProcStatistic);        break;    case EVT_KEY_LONG(KEY_DOWN):        NMEA_DisableRXD();        chainMenu(menuProc0);        break;    }    // expecting LAT value in POS packet to be stored in the first buffer    initval (LONG_BUF(0), PACK_GGA, LAT);    initval (SHORT_BUF(0), PACK_GGA, NOS);    // and LON value in POS packet stored in the second buffer    initval (LONG_BUF(1), PACK_GGA, LON);    initval (SHORT_BUF(1), PACK_GGA, EOW);    initval (SHORT_BUF(2), PACK_GGA, SAT);			// -> sbuf[2]    // title of the screen    title ('4');    lcd_puts_P        (   3*FW,   1*FH, PSTR("Latitude     Sat"));    // line 1 column 3    // first buffer into line 2 column 2    if (rbuf[0][0])    {        lcd_putcAtt   (  13*FW,   1*FH, sbuf[0], 0);          // N or S	  lcd_putcAtt   (  19*FW,   1*FH, sbuf[2], 0);				// satellites in view        lcd_putsnAtt  (   1*FW,   2*FH, rbuf[0], 2, APSIZE);        lcd_putcAtt   (   5*FW,   2*FH, '@',0);        lcd_putsAtt   (   6*FW,   2*FH, &rbuf[0][2], APSIZE);	// minutes with small decimal point    }    else        lcd_putsAtt   (   2*FW,   2*FH, val_unknown, APSIZE);    lcd_puts_P        (   3*FW,   4*FH, PSTR("Longitude"));   // line 4 column 5    // second buffer into line 5 column 2    if (rbuf[0][0])    {        lcd_putcAtt   (  13*FW,   4*FH, sbuf[1], 0);          // E or W        lcd_putsnAtt  (   0*FW,   5*FH, rbuf[1], 3, APSIZE);        lcd_putcAtt   (   6*FW,   5*FH, '@',0);        lcd_putsAtt   (   7*FW,   5*FH, &rbuf[1][3], APSIZE);	// minutes with small decimal point    }    else        lcd_putsAtt   (   2*FW,   5*FH, val_unknown, APSIZE);}
开发者ID:RasmusKS,项目名称:er9x,代码行数:53,


示例3: menuTelemetryFrsky

void menuTelemetryFrsky(uint8_t event){  enum NavigationDirection direction = none;  switch (event) {    case EVT_KEY_FIRST(KEY_EXIT):    case EVT_KEY_LONG(KEY_EXIT):      killEvents(event);      chainMenu(menuMainView);      break;    case EVT_KEY_LONG(KEY_PAGE):      killEvents(event);      // no break;    case EVT_KEY_FIRST(KEY_UP):      decrTelemetryScreen();      break;    case EVT_KEY_BREAK(KEY_PAGE):    case EVT_KEY_FIRST(KEY_DOWN):      incrTelemetryScreen();      break;    case EVT_KEY_LONG(KEY_ENTER):      killEvents(event);      POPUP_MENU_ADD_ITEM(STR_RESET_TELEMETRY);      POPUP_MENU_ADD_ITEM(STR_RESET_FLIGHT);      popupMenuHandler = onMainViewMenu;      break;  }  for (int i=0; i<=TELEMETRY_SCREEN_TYPE_MAX; i++) {    if (direction == up) {      if (s_frsky_view-- == 0)        s_frsky_view = TELEMETRY_VIEW_MAX;    }    else if (direction == down) {      if (s_frsky_view++ == TELEMETRY_VIEW_MAX)        s_frsky_view = 0;    }    else {      direction = down;    }    if (displayTelemetryScreen()) {      return;    }  }  lcdDrawTelemetryTopBar();  lcd_puts(8*FW, 3*FH, "No Telemetry Screens");  displayRssiLine();}
开发者ID:cody82,项目名称:opentx,代码行数:53,


示例4: menuStatisticsView

void menuStatisticsView(uint8_t event){  TITLE(STR_MENUSTAT);  switch(event)  {    case EVT_KEY_FIRST(KEY_UP):      chainMenu(menuStatisticsDebug);      break;    case EVT_KEY_LONG(KEY_MENU):      g_eeGeneral.globalTimer = 0;      eeDirty(EE_GENERAL);      sessionTimer = 0;      break;    case EVT_KEY_FIRST(KEY_EXIT):      chainMenu(menuMainView);      break;  }  // Session and Total timers  lcd_putsAtt(STATS_1ST_COLUMN, FH*1+1, "SES", BOLD);  putsTimer(STATS_1ST_COLUMN + STATS_LABEL_WIDTH, FH*1+1, sessionTimer, 0, 0);  lcd_putsAtt(STATS_1ST_COLUMN, FH*2+1, "TOT", BOLD);  putsTimer(STATS_1ST_COLUMN + STATS_LABEL_WIDTH, FH*2+1, g_eeGeneral.globalTimer + sessionTimer, TIMEHOUR, 0);  // Throttle special timers  lcd_putsAtt(STATS_2ND_COLUMN, FH*0+1, "THR", BOLD);  putsTimer(STATS_2ND_COLUMN + STATS_LABEL_WIDTH, FH*0+1, s_timeCumThr, 0, 0);  lcd_putsAtt(STATS_2ND_COLUMN, FH*1+1, "TH%", BOLD);  putsTimer(STATS_2ND_COLUMN + STATS_LABEL_WIDTH, FH*1+1, s_timeCum16ThrP/16, 0, 0);  // Timers  for (int i=0; i<TIMERS; i++) {    putsStrIdx(STATS_3RD_COLUMN, FH*i+1, "TM", i+1, BOLD);    if (timersStates[i].val > 3600)      putsTimer(STATS_3RD_COLUMN + STATS_LABEL_WIDTH, FH*i+1, timersStates[i].val, TIMEHOUR, 0);    else      putsTimer(STATS_3RD_COLUMN + STATS_LABEL_WIDTH, FH*i+1, timersStates[i].val, 0, 0);  }#if defined(THRTRACE)  coord_t traceRd = (s_traceCnt < 0 ? s_traceWr : 0);  const coord_t x = 5;  const coord_t y = 60;  lcd_hline(x-3, y, MAXTRACE+3+3);  lcd_vline(x, y-32, 32+3);  for (coord_t i=0; i<MAXTRACE; i+=6) {    lcd_vline(x+i+6, y-1, 3);  }  for (coord_t i=1; i<=MAXTRACE; i++) {    lcd_vline(x+i, y-s_traceBuf[traceRd], s_traceBuf[traceRd]);    traceRd++;    if (traceRd>=MAXTRACE) traceRd = 0;    if (traceRd==s_traceWr) break;  }#endif}
开发者ID:BenZoFly,项目名称:opentx,代码行数:60,


示例5: menuProcNMEA3

void menuProcNMEA3(uint8_t event){    switch(event)    {    case EVT_KEY_BREAK(KEY_LEFT):        chainMenu(menuProcNMEA2);        break;    case EVT_KEY_BREAK(KEY_RIGHT):        chainMenu(menuProcNMEA4);        break;    case EVT_KEY_LONG(KEY_UP):        NMEA_DisableRXD();        chainMenu(menuProcStatistic);        break;    case EVT_KEY_LONG(KEY_DOWN):        NMEA_DisableRXD();        chainMenu(menuProc0);        break;    }    initval (LONG_BUF(0), PACK_RMC, SOG);    initval (LONG_BUF(1), PACK_RMC, COG);    initval (SHORT_BUF(2), PACK_GGA, SAT);			// -> sbuf[2]    title ('3');    lcd_puts_P        (   0*FW,   1*FH, PSTR("GrndSpeed[knt]  Sat"));    if (rbuf[0][0])				// if first position is 00, buffer is empty, taken as false     {							// any other value is true        uint8_t i = 0;        while (rbuf[0][i])        {            if (rbuf[0][i] == '.')		// find decimal point and insert End of String 3 positions higher            {                rbuf[0][i+3] = 0;                break;            }            i++;        }        lcd_putsAtt   (   2*FW,   2*FH, VALSTR(0), APSIZE);		// speed over ground    }    else        lcd_putsAtt   (   2*FW,   2*FH, val_unknown, APSIZE);    lcd_putcAtt   (  19*FW,   1*FH, sbuf[2], 0);			// satellites in view    lcd_puts_P        (   1*FW,   4*FH, PSTR("Course over ground") );    lcd_putsAtt       (   2*FW,   5*FH, VALSTR(1), APSIZE);		// course over ground}
开发者ID:RasmusKS,项目名称:er9x,代码行数:46,


示例6: gvarMenuItem

int16_t gvarMenuItem(uint8_t x, uint8_t y, int16_t value, int16_t min, int16_t max, LcdFlags attr, uint8_t event)#endif{    uint16_t delta = GV_GET_GV1_VALUE(max);    bool invers = (attr & INVERS);    // TRACE("gvarMenuItem(val=%d min=%d max=%d)", value, min, max);    if (invers && event == EVT_KEY_LONG(KEY_ENTER)) {        s_editMode = !s_editMode;#if defined(CPUARM)        if (attr & PREC1)            value = (GV_IS_GV_VALUE(value, min, max) ? GET_GVAR(value, min, max, mixerCurrentFlightMode)*10 : delta);        else            value = (GV_IS_GV_VALUE(value, min, max) ? GET_GVAR(value, min, max, mixerCurrentFlightMode) : delta);#else        value = (GV_IS_GV_VALUE(value, min, max) ? GET_GVAR(value, min, max, mixerCurrentFlightMode) : delta);#endif        eeDirty(EE_MODEL);    }    if (GV_IS_GV_VALUE(value, min, max)) {        if (attr & LEFT)            attr -= LEFT; /* because of ZCHAR */        else            x -= 2*FW+FWNUM;#if defined(CPUARM)        attr &= ~PREC1;#endif        int8_t idx = (int16_t) GV_INDEX_CALC_DELTA(value, delta);        if (invers) {            CHECK_INCDEC_MODELVAR(event, idx, -MAX_GVARS, MAX_GVARS-1);        }        if (idx < 0) {            value = (int16_t) GV_CALC_VALUE_IDX_NEG(idx, delta);            idx = -idx;            lcd_putcAtt(x-6, y, '-', attr);        }        else {            value = (int16_t) GV_CALC_VALUE_IDX_POS(idx, delta);            idx++;        }        putsStrIdx(x, y, STR_GV, idx, attr);    }    else {        lcd_outdezAtt(x, y, value, attr);#if defined(CPUARM)        if (invers) value = checkIncDec(event, value, min, max, EE_MODEL | editflags);#else        if (invers) value = checkIncDec(event, value, min, max, EE_MODEL);#endif    }    return value;}
开发者ID:nigelsheffield,项目名称:opentx,代码行数:56,


示例7: menuStatisticsView

void menuStatisticsView(uint8_t event){  TITLE(STR_MENUSTAT);  switch(event)  {    case EVT_KEY_FIRST(KEY_UP):      chainMenu(menuStatisticsDebug);      return;#if defined(CPUARM)    case EVT_KEY_LONG(KEY_MENU):      g_eeGeneral.globalTimer = 0;      eeDirty(EE_GENERAL);      sessionTimer = 0;      break;#endif    case EVT_KEY_FIRST(KEY_EXIT):      chainMenu(menuMainView);      return;  }  lcd_puts(  1*FW, FH*0, STR_TOTTM1TM2THRTHP);  putsTimer(    5*FW+5*FWNUM+1, FH*1, timersStates[0].val, 0, 0);  putsTimer(   12*FW+5*FWNUM+1, FH*1, timersStates[1].val, 0, 0);  putsTimer(    5*FW+5*FWNUM+1, FH*2, s_timeCumThr, 0, 0);  putsTimer(   12*FW+5*FWNUM+1, FH*2, s_timeCum16ThrP/16, 0, 0);  putsTimer(   12*FW+5*FWNUM+1, FH*0, sessionTimer, 0, 0);  #if defined(CPUARM)  putsTimer(21*FW+5*FWNUM+1, 0*FH, g_eeGeneral.globalTimer + sessionTimer, TIMEHOUR, 0);#endif#if defined(THRTRACE)  uint8_t traceRd = (s_traceCnt < 0 ? s_traceWr : 0);  const uint8_t x=5;  const uint8_t y=60;  lcd_hline(x-3,y,MAXTRACE+3+3);  lcd_vline(x,y-32,32+3);  for (uint8_t i=0; i<MAXTRACE; i+=6) {    lcd_vline(x+i+6,y-1,3);  }  for (uint8_t i=1; i<=MAXTRACE; i++) {    lcd_vline(x+i, y-s_traceBuf[traceRd], s_traceBuf[traceRd]);    traceRd++;    if (traceRd>=MAXTRACE) traceRd = 0;    if (traceRd==s_traceWr) break;  }#endif}
开发者ID:geofrancis,项目名称:opentx,代码行数:53,


示例8: menuTraceBuffer

void menuTraceBuffer(uint8_t event){  switch(event)  {    case EVT_KEY_LONG(KEY_ENTER):      dumpTraceBuffer();      killEvents(event);      break;  }  SIMPLE_SUBMENU("Trace Buffer " VERS_STR, TRACE_BUFFER_LEN);  /* RTC time */  struct gtm t;  gettime(&t);  putsTime(LCD_W+1, 0, t, TIMEBLINK);  uint8_t y = 0;  uint8_t k = 0;  int8_t sub = m_posVert;  lcd_putc(0, FH, '#');  lcd_puts(4*FW, FH, "Time");  lcd_puts(14*FW, FH, "Event");  lcd_puts(20*FW, FH, "Data");  for (uint8_t i=0; i<LCD_LINES-2; i++) {    y = 1 + (i+2)*FH;    k = i+s_pgOfs;    //item    lcd_outdezAtt(0, y, k, LEFT | (sub==k ? INVERS : 0));    const struct TraceElement * te = getTraceElement(k);    if (te) {      //time      putstime_t tme = te->time % SECS_PER_DAY;      putsTimer(4*FW, y, tme, TIMEHOUR|LEFT, TIMEHOUR|LEFT);      //event      lcd_outdezNAtt(14*FW, y, te->event, LEADING0|LEFT, 3);      //data      lcd_putsn  (20*FW, y, "0x", 2);      lcd_outhex4(22*FW-2, y, (uint16_t)(te->data >> 16));      lcd_outhex4(25*FW, y, (uint16_t)(te->data & 0xFFFF));    }  }}
开发者ID:kamnxt,项目名称:opentx,代码行数:49,


示例9: gvarMenuItem

int16_t gvarMenuItem(coord_t x, coord_t y, int16_t value, int16_t min, int16_t max, LcdFlags attr, uint8_t editflags, uint8_t event){  uint16_t delta = GV_GET_GV1_VALUE(max);  bool invers = (attr & INVERS);  // TRACE("gvarMenuItem(val=%d min=%d max=%d)", value, min, max);  if (invers && event == EVT_KEY_LONG(KEY_ENTER)) {    s_editMode = !s_editMode;    if (attr & PREC1)      value = (GV_IS_GV_VALUE(value, min, max) ? GET_GVAR(value, min, max, mixerCurrentFlightMode)*10 : delta);    else      value = (GV_IS_GV_VALUE(value, min, max) ? GET_GVAR(value, min, max, mixerCurrentFlightMode) : delta);    eeDirty(EE_MODEL);  }  if (GV_IS_GV_VALUE(value, min, max)) {    if (attr & LEFT)      attr -= LEFT; /* because of ZCHAR */    else      x -= 2*FW+FWNUM;    attr &= ~PREC1;    int8_t idx = (int16_t) GV_INDEX_CALC_DELTA(value, delta);    if (idx >= 0) ++idx;    // transform form idx=0=GV1 to idx=1=GV1 in order to handle double keys invert    if (invers) {      CHECK_INCDEC_MODELVAR_CHECK(event, idx, -MAX_GVARS, MAX_GVARS, noZero);      if (idx == 0) idx = 1;    // handle reset to zero, map to GV1    }    if (idx < 0) {      value = (int16_t) GV_CALC_VALUE_IDX_NEG(idx, delta);      idx = -idx;      lcd_putcAtt(x-6, y, '-', attr);    }    else {      value = (int16_t) GV_CALC_VALUE_IDX_POS(idx-1, delta);    }    putsStrIdx(x, y, STR_GV, idx, attr);  }  else {    lcd_outdezAtt(x, y, value, attr);    if (invers) value = checkIncDec(event, value, min, max, EE_MODEL | editflags);  }  return value;}
开发者ID:BenZoFly,项目名称:opentx,代码行数:46,


示例10: menuFlashFile

int menuFlashFile(uint32_t index, uint8_t event){  FRESULT fr;  lcd_putsLeft(4*FH, "/012Hold [ENT] to start writing");  if (Valid == 0) {    // Validate file here    if ((fr = openBinaryFile(index))) {      Valid = 2;    }    else {      if ((fr = f_close(&FlashFile))) {        Valid = 2;      }      else {        Valid = 1;      }      if (!isValidBufferStart(Block_buffer)) {        Valid = 2;      }    }  }  if (Valid == 2) {    if (memoryType == MEM_FLASH)      lcd_putsLeft(4*FH,  "/011Not a valid firmware file!        ");    else      lcd_putsLeft(4*FH,  "/011Not a valid EEPROM file!          ");        if (event == EVT_KEY_BREAK(BOOT_KEY_EXIT) || event == EVT_KEY_BREAK(BOOT_KEY_MENU)) {      return 0;    }    return -1;  }  if (event == EVT_KEY_LONG(BOOT_KEY_MENU)) {    fr = openBinaryFile(index);    return (fr == FR_OK && isValidBufferStart(Block_buffer));  }  else if (event == EVT_KEY_FIRST(BOOT_KEY_EXIT)) {    return 0;  }  return -1;}
开发者ID:andyjenkinson,项目名称:opentx,代码行数:45,


示例11: menuGeneralTrainer

void menuGeneralTrainer(uint8_t event){  uint8_t y;  bool slave = SLAVE_MODE();  MENU(STR_MENUTRAINER, menuTabGeneral, e_Trainer, (slave ? 1 : 7), {0, 2, 2, 2, 2, 0/*, 0*/});  if (slave) {    lcd_puts(7*FW, 4*FH, STR_SLAVE);  }  else {    uint8_t attr;    uint8_t blink = ((s_editMode>0) ? BLINK|INVERS : INVERS);    lcd_puts(3*FW, MENU_HEADER_HEIGHT+1, STR_MODESRC);    y = MENU_HEADER_HEIGHT + 1 + FH;    for (uint8_t i=1; i<=NUM_STICKS; i++) {      uint8_t chan = channel_order(i);      volatile TrainerMix *td = &g_eeGeneral.trainer.mix[chan-1];      putsMixerSource(0, y, MIXSRC_Rud-1+chan, (menuVerticalPosition==i && CURSOR_ON_LINE()) ? INVERS : 0);      for (uint8_t j=0; j<3; j++) {        attr = ((menuVerticalPosition==i && menuHorizontalPosition==j) ? blink : 0);        switch(j) {          case 0:            lcd_putsiAtt(4*FW, y, STR_TRNMODE, td->mode, attr);            if (attr&BLINK) CHECK_INCDEC_GENVAR(event, td->mode, 0, 2);            break;          case 1:            lcd_outdezAtt(11*FW, y, td->studWeight, attr);            if (attr&BLINK) CHECK_INCDEC_GENVAR(event, td->studWeight, -125, 125);            break;          case 2:            lcd_putsiAtt(12*FW, y, STR_TRNCHN, td->srcChn, attr);            if (attr&BLINK) CHECK_INCDEC_GENVAR(event, td->srcChn, 0, 3);            break;        }      }      y += FH;    }    attr = (menuVerticalPosition==5) ? blink : 0;    lcd_putsLeft(MENU_HEADER_HEIGHT+1+5*FH, STR_MULTIPLIER);    lcd_outdezAtt(LEN_MULTIPLIER*FW+3*FW, MENU_HEADER_HEIGHT+1+5*FH, g_eeGeneral.PPM_Multiplier+10, attr|PREC1);    if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.PPM_Multiplier, -10, 40);    attr = (menuVerticalPosition==6) ? INVERS : 0;    if (attr) s_editMode = 0;    lcd_putsAtt(0*FW, MENU_HEADER_HEIGHT+1+6*FH, STR_CAL, attr);    for (uint8_t i=0; i<4; i++) {      uint8_t x = (i*TRAINER_CALIB_POS+16)*FW/2;#if defined (PPM_UNIT_PERCENT_PREC1)      lcd_outdezAtt(x, MENU_HEADER_HEIGHT+1+6*FH, (ppmInput[i]-g_eeGeneral.trainer.calib[i])*2, PREC1);#else      lcd_outdezAtt(x, MENU_HEADER_HEIGHT+1+6*FH, (ppmInput[i]-g_eeGeneral.trainer.calib[i])/5, 0);#endif    }    if (attr) {      if (event==EVT_KEY_LONG(KEY_ENTER)){        memcpy(g_eeGeneral.trainer.calib, ppmInput, sizeof(g_eeGeneral.trainer.calib));        eeDirty(EE_GENERAL);        AUDIO_WARNING1();      }    }  }}
开发者ID:BenZoFly,项目名称:opentx,代码行数:74,


示例12: menuMainView

void menuMainView(uint8_t event){  STICK_SCROLL_DISABLE();  uint8_t view = g_eeGeneral.view;  uint8_t view_base = view & 0x0f;  switch(event) {    case EVT_ENTRY:      killEvents(KEY_EXIT);      killEvents(KEY_UP);      killEvents(KEY_DOWN);      break;    /* TODO if timer2 is OFF, it's possible to use this timer2 as in er9x...    case EVT_KEY_BREAK(KEY_MENU):      if (view_base == VIEW_TIMER2) {        Timer2_running = !Timer2_running;        AUDIO_KEYPAD_UP();      }    break;    */    case EVT_KEY_BREAK(KEY_RIGHT):    case EVT_KEY_BREAK(KEY_LEFT):      if (view_base <= VIEW_INPUTS) {#if defined(PCBSKY9X)        if (view_base == VIEW_INPUTS)          g_eeGeneral.view ^= ALTERNATE_VIEW;        else          g_eeGeneral.view = (g_eeGeneral.view + (4*ALTERNATE_VIEW) + ((event==EVT_KEY_BREAK(KEY_LEFT)) ? -ALTERNATE_VIEW : ALTERNATE_VIEW)) % (4*ALTERNATE_VIEW);#else        g_eeGeneral.view ^= ALTERNATE_VIEW;#endif        eeDirty(EE_GENERAL);        AUDIO_KEYPAD_UP();      }      break;#if defined(NAVIGATION_MENUS)    case EVT_KEY_CONTEXT_MENU:      killEvents(event);#if defined(CPUARM)      if (modelHasNotes()) {        MENU_ADD_ITEM(STR_VIEW_NOTES);      }#endif#if defined(CPUARM)      MENU_ADD_ITEM(STR_RESET_SUBMENU);#else      MENU_ADD_ITEM(STR_RESET_TIMER1);      MENU_ADD_ITEM(STR_RESET_TIMER2);#if defined(FRSKY)      MENU_ADD_ITEM(STR_RESET_TELEMETRY);#endif      MENU_ADD_ITEM(STR_RESET_FLIGHT);#endif      MENU_ADD_ITEM(STR_STATISTICS);#if defined(CPUARM)      MENU_ADD_ITEM(STR_ABOUT_US);#endif      menuHandler = onMainViewMenu;      break;#endif#if MENUS_LOCK != 2 /*no menus*/    case EVT_KEY_LONG(KEY_MENU):// go to last menu      pushMenu(lastPopMenu());      killEvents(event);      break;    CASE_EVT_ROTARY_BREAK    case EVT_KEY_MODEL_MENU:      pushMenu(menuModelSelect);      killEvents(event);      break;    CASE_EVT_ROTARY_LONG    case EVT_KEY_GENERAL_MENU:      pushMenu(menuGeneralSetup);      killEvents(event);      break;#endif    case EVT_KEY_BREAK(KEY_UP):    case EVT_KEY_BREAK(KEY_DOWN):      g_eeGeneral.view = (event == EVT_KEY_BREAK(KEY_UP) ? (view_base == VIEW_COUNT-1 ? 0 : view_base+1) : (view_base == 0 ? VIEW_COUNT-1 : view_base-1));      eeDirty(EE_GENERAL);      AUDIO_KEYPAD_UP();      break;    case EVT_KEY_STATISTICS:      chainMenu(menuStatisticsView);      killEvents(event);      break;//.........这里部分代码省略.........
开发者ID:bellth,项目名称:opentx,代码行数:101,


示例13: menuModelTelemetry

void menuModelTelemetry(uint8_t event){  MENU(STR_MENUTELEMETRY, menuTabModel, e_Telemetry, ITEM_TELEMETRY_MAX+1, {0, TELEMETRY_TYPE_ROWS CHANNELS_ROWS RSSI_ROWS SENSORS_ROWS USRDATA_ROWS CASE_VARIO(LABEL(Vario)) CASE_VARIO(0) CASE_VARIO(VARIO_RANGE_ROWS) TELEMETRY_SCREEN_ROWS(0), TELEMETRY_SCREEN_ROWS(1), CASE_CPUARM(TELEMETRY_SCREEN_ROWS(2)) CASE_CPUARM(TELEMETRY_SCREEN_ROWS(3))});  uint8_t sub = m_posVert - 1;  switch (event) {    case EVT_KEY_BREAK(KEY_DOWN):    case EVT_KEY_BREAK(KEY_UP):    case EVT_KEY_BREAK(KEY_LEFT):    case EVT_KEY_BREAK(KEY_RIGHT):      if (s_editMode>0 && sub<=ITEM_TELEMETRY_RSSI_ALARM2)        frskySendAlarms(); // update FrSky module when edit mode exited      break;  }  for (uint8_t i=0; i<LCD_LINES-1; i++) {    coord_t y = MENU_HEADER_HEIGHT + 1 + i*FH;    uint8_t k = i + s_pgOfs;#if defined(CPUARM)    for (int j=0; j<=k; j++) {      if (mstate_tab[j+1] == HIDDEN_ROW)        k++;    }#endif    uint8_t blink = ((s_editMode>0) ? BLINK|INVERS : INVERS);    uint8_t attr = (sub == k ? blink : 0);#if !defined(CPUARM)    uint8_t ch = TELEMETRY_CURRENT_EDIT_CHANNEL(k);    FrSkyChannelData & channel = g_model.frsky.channels[ch];    uint8_t dest = TELEM_A1-1+ch;#endif#if defined(CPUARM)    if (k>=ITEM_TELEMETRY_SENSOR1 && k<ITEM_TELEMETRY_SENSOR1+MAX_SENSORS) {      int index = k-ITEM_TELEMETRY_SENSOR1;      lcd_outdezAtt(INDENT_WIDTH, y, index+1, LEFT|attr);      lcd_putcAtt(lcdLastPos, y, ':', attr);      lcd_putsnAtt(3*FW, y, g_model.telemetrySensors[index].label, TELEM_LABEL_LEN, ZCHAR);      if (telemetryItems[index].isFresh()) {        lcd_putc(16*FW, y, '*');      }      TelemetryItem & telemetryItem = telemetryItems[index];      if (telemetryItem.isAvailable()) {        bool isOld = telemetryItem.isOld();        lcdNextPos = TELEM_COL2;        if (isOld) lcd_putc(lcdNextPos, y, '[');        putsTelemetryChannelValue(lcdNextPos, y, index, getValue(MIXSRC_FIRST_TELEM+3*index), LEFT);        if (isOld) lcd_putc(lcdLastPos, y, ']');      }      else {        lcd_putsAtt(TELEM_COL2, y, "---", 0); // TODO shortcut      }      if (attr) {        s_editMode = 0;        s_currIdx = index;        if (event == EVT_KEY_LONG(KEY_ENTER)) {          killEvents(event);          MENU_ADD_ITEM(STR_EDIT);          MENU_ADD_ITEM(STR_COPY);          MENU_ADD_ITEM(STR_DELETE);          menuHandler = onSensorMenu;        }        else if (event == EVT_KEY_BREAK(KEY_ENTER)) {          pushMenu(menuModelSensor);        }      }    }    else#endif    switch (k) {#if defined(CPUARM)      case ITEM_TELEMETRY_PROTOCOL_TYPE:        g_model.telemetryProtocol = selectMenuItem(TELEM_COL2, y, STR_TELEMETRY_TYPE, "/017FrSky S.PORT/0  FrSky D/0       FrSky D (cable)", g_model.telemetryProtocol, PROTOCOL_TELEMETRY_FIRST, CASE_PCBSKY9X(PROTOCOL_FRSKY_D_SECONDARY) attr, event);        break;#endif#if defined(CPUARM)      case ITEM_TELEMETRY_SENSORS_LABEL:        lcd_putsLeft(y, STR_TELEMETRY_SENSORS);        break;      case ITEM_TELEMETRY_NEWSENSOR:        lcd_putsAtt(0, y, STR_TELEMETRY_NEWSENSOR, attr);        if (attr && event==EVT_KEY_BREAK(KEY_ENTER)) {          s_editMode = 0;          int res = availableTelemetryIndex();          if (res >= 0) {            s_currIdx = res;            pushMenu(menuModelSensor);          }          else {            POPUP_WARNING(STR_TELEMETRYFULL);          }        }        break;  //.........这里部分代码省略.........
开发者ID:bellth,项目名称:opentx,代码行数:101,


示例14: menuCustomFunctions

void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFunctionsContext * functionsContext){  int8_t sub = menuVerticalPosition - 1;#if   !defined(CPUM64) || defined(AUTOSWITCH)  uint8_t eeFlags = EE_MODEL;#endif  for (uint8_t i=0; i<LCD_LINES-1; i++) {    coord_t y = MENU_HEADER_HEIGHT + 1 + i*FH;    uint8_t k = i+menuVerticalOffset;    CustomFunctionData *cfn = &functions[k];    uint8_t func = CFN_FUNC(cfn);    for (uint8_t j=0; j<5; j++) {      uint8_t attr = ((sub==k && menuHorizontalPosition==j) ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0);      uint8_t active = (attr && (s_editMode>0 || p1valdiff));      switch (j) {        case 0:          lcdPutsSwitches(MODEL_CUSTOM_FUNC_1ST_COLUMN, y, CFN_SWITCH(cfn), attr | ((functionsContext->activeSwitches & ((MASK_CFN_TYPE)1 << k)) ? BOLD : 0));          if (active || AUTOSWITCH_ENTER_LONG()) CHECK_INCDEC_SWITCH(event, CFN_SWITCH(cfn), SWSRC_FIRST, SWSRC_LAST, eeFlags, isSwitchAvailableInCustomFunctions);          break;        case 1:          if (CFN_SWITCH(cfn)) {            lcdDrawTextAtIndex(MODEL_CUSTOM_FUNC_2ND_COLUMN, y, STR_VFSWFUNC, func, attr);            if (active) {              CHECK_INCDEC_MODELVAR_ZERO(event, CFN_FUNC(cfn), FUNC_MAX-1);              if (checkIncDec_Ret) CFN_RESET(cfn);            }          }          else {            j = 4; // skip other fields            if (sub==k && menuHorizontalPosition > 0) {              REPEAT_LAST_CURSOR_MOVE();            }          }          break;        case 2:        {          int8_t maxParam = NUM_CHNOUT-1;#if defined(OVERRIDE_CHANNEL_FUNCTION)          if (func == FUNC_OVERRIDE_CHANNEL) {            putsChn(lcdNextPos, y, CFN_CH_INDEX(cfn)+1, attr);          }          else#endif          if (func == FUNC_TRAINER) {            maxParam = 4;            putsMixerSource(lcdNextPos, y, MIXSRC_Rud+CFN_CH_INDEX(cfn)-1, attr);          }#if defined(GVARS)          else if (func == FUNC_ADJUST_GVAR) {            maxParam = MAX_GVARS-1;            lcdDrawStringWithIndex(lcdNextPos, y, STR_GV, CFN_GVAR_INDEX(cfn)+1, attr);            if (active) CHECK_INCDEC_MODELVAR_ZERO(event, CFN_GVAR_INDEX(cfn), maxParam);            break;          }#endif          else if (attr) {            REPEAT_LAST_CURSOR_MOVE();          }          if (active) CHECK_INCDEC_MODELVAR_ZERO(event, CFN_CH_INDEX(cfn), maxParam);          break;        }        case 3:        {          INCDEC_DECLARE_VARS(eeFlags);          int16_t val_displayed = CFN_PARAM(cfn);          int8_t val_min = 0;          uint8_t val_max = 255;          if (func == FUNC_RESET) {            val_max = FUNC_RESET_PARAM_LAST;            lcdDrawTextAtIndex(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_VFSWRESET, CFN_PARAM(cfn), attr);          }#if defined(OVERRIDE_CHANNEL_FUNCTION)          else if (func == FUNC_OVERRIDE_CHANNEL) {            val_displayed = (int8_t)CFN_PARAM(cfn);            val_min = -LIMIT_EXT_PERCENT; val_max = +LIMIT_EXT_PERCENT;            lcdDrawNumberAttUnit(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT);          }#endif#if defined(AUDIO)          else if (func == FUNC_PLAY_SOUND) {            val_max = AU_FRSKY_LAST-AU_FRSKY_FIRST-1;            lcdDrawTextAtIndex(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr);          }#endif#if defined(HAPTIC)          else if (func == FUNC_HAPTIC) {            val_max = 3;            lcdDrawNumberAttUnit(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT);          }#endif#if   defined(VOICE)          else if (func == FUNC_PLAY_TRACK) {#if defined(GVARS)            if (attr && event==EVT_KEY_LONG(KEY_ENTER)) {//.........这里部分代码省略.........
开发者ID:Ingwie,项目名称:NextStepRc-2.18,代码行数:101,


示例15: EVT_KEY_BREAK

 { "MIXSRC_Ele", MIXSRC_Ele }, { "MIXSRC_Thr", MIXSRC_Thr }, { "MIXSRC_Ail", MIXSRC_Ail }, { "MIXSRC_SA", MIXSRC_SA }, { "MIXSRC_SB", MIXSRC_SB }, { "MIXSRC_SC", MIXSRC_SC }, { "MIXSRC_SD", MIXSRC_SD }, { "MIXSRC_SE", MIXSRC_SE }, { "MIXSRC_SF", MIXSRC_SF }, { "MIXSRC_SG", MIXSRC_SG }, { "MIXSRC_SH", MIXSRC_SH }, { "MIXSRC_CH1", MIXSRC_CH1 }, { "SWSRC_LAST", SWSRC_LAST_LOGICAL_SWITCH }, { "EVT_MENU_BREAK", EVT_KEY_BREAK(KEY_MENU) }, { "EVT_PAGE_BREAK", EVT_KEY_BREAK(KEY_PAGE) }, { "EVT_PAGE_LONG", EVT_KEY_LONG(KEY_PAGE) }, { "EVT_ENTER_BREAK", EVT_KEY_BREAK(KEY_ENTER) }, { "EVT_ENTER_LONG", EVT_KEY_LONG(KEY_ENTER) }, { "EVT_EXIT_BREAK", EVT_KEY_BREAK(KEY_EXIT) }, { "EVT_PLUS_BREAK", EVT_KEY_BREAK(KEY_PLUS) }, { "EVT_MINUS_BREAK", EVT_KEY_BREAK(KEY_MINUS) }, { "EVT_PLUS_FIRST", EVT_KEY_FIRST(KEY_PLUS) }, { "EVT_MINUS_FIRST", EVT_KEY_FIRST(KEY_MINUS) }, { "EVT_PLUS_REPT", EVT_KEY_REPT(KEY_PLUS) }, { "EVT_MINUS_REPT", EVT_KEY_REPT(KEY_MINUS) }, { "FILL_WHITE", FILL_WHITE }, { "GREY_DEFAULT", GREY_DEFAULT }, { "SOLID", SOLID }, { "DOTTED", DOTTED }, { "FORCE", FORCE }, { "ERASE", ERASE },
开发者ID:ChaosPower,项目名称:opentx,代码行数:31,


示例16: menuCustomFunctions

//.........这里部分代码省略.........              if (func==FUNC_PLAY_SCRIPT) {                strcpy(directory, SCRIPTS_FUNCS_PATH);              }              else {                strcpy(directory, SOUNDS_PATH);                strncpy(directory+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2);              }              if (listSdFiles(directory, func==FUNC_PLAY_SCRIPT ? SCRIPTS_EXT : SOUNDS_EXT, sizeof(cfn->play.name), cfn->play.name)) {                popupMenuHandler = onCustomFunctionsFileSelectionMenu;              }              else {                POPUP_WARNING(func==FUNC_PLAY_SCRIPT ? STR_NO_SCRIPTS_ON_SD : STR_NO_SOUNDS_ON_SD);                popupMenuFlags = 0;              }            }            break;          }          else if (func == FUNC_PLAY_VALUE) {            val_max = MIXSRC_LAST_TELEM;            putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr);            INCDEC_ENABLE_CHECK(isSourceAvailable);          }#endif#if defined(CPUARM)          else if (func == FUNC_VOLUME) {            val_max = MIXSRC_LAST_CH;            putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr);            INCDEC_SET_FLAG(eeFlags | INCDEC_SOURCE);            INCDEC_ENABLE_CHECK(isSourceAvailable);          }#elif defined(VOICE)          else if (func == FUNC_PLAY_TRACK) {#if defined(GVARS)            if (attr && event==EVT_KEY_LONG(KEY_ENTER)) {              killEvents(event);              s_editMode = !s_editMode;              active = true;              val_displayed = (val_displayed > 250 ? 0 : 251);            }            if (val_displayed > 250) {              putsStrIdx(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_GV, val_displayed-250, attr);            }            else {              lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+PROMPT_CUSTOM_BASE, attr|LEFT);            }#else            lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed+PROMPT_CUSTOM_BASE, attr|LEFT);#endif          }          else if (func == FUNC_PLAY_BOTH) {            lcd_putcAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN+3*FWNUM, y, '|', attr);            lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN+3*FWNUM, y, val_displayed+PROMPT_CUSTOM_BASE, attr);            lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN+2+3*FWNUM, y, (val_displayed+PROMPT_CUSTOM_BASE+1)%10, attr|LEFT);          }          else if (func == FUNC_PLAY_VALUE) {            val_max = MIXSRC_FIRST_TELEM + TELEM_DISPLAY_MAX - 1;            putsMixerSource(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr);            INCDEC_ENABLE_CHECK(functionsContext == &globalFunctionsContext ? isSourceAvailableInGlobalFunctions : isSourceAvailable);          }#endif#if defined(SDCARD)          else if (func == FUNC_LOGS) {            if (val_displayed) {              lcd_outdezAtt(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|PREC1|LEFT);              lcd_putc(lcdLastPos, y, 's');            }
开发者ID:BenZoFly,项目名称:opentx,代码行数:67,


示例17: menuCustomFunctions

void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFunctionsContext * functionsContext){  int sub = menuVerticalPosition;  uint8_t eeFlags = (functions == g_model.customFn) ? EE_MODEL : EE_GENERAL;  if (menuHorizontalPosition<0 && event==EVT_KEY_LONG(KEY_ENTER) && !READ_ONLY()) {    killEvents(event);    CustomFunctionData *cfn = &functions[sub];    if (!CFN_EMPTY(cfn))      POPUP_MENU_ADD_ITEM(STR_COPY);    if (clipboard.type == CLIPBOARD_TYPE_CUSTOM_FUNCTION)      POPUP_MENU_ADD_ITEM(STR_PASTE);    if (!CFN_EMPTY(cfn) && CFN_EMPTY(&functions[NUM_CFN-1]))      POPUP_MENU_ADD_ITEM(STR_INSERT);    if (!CFN_EMPTY(cfn))      POPUP_MENU_ADD_ITEM(STR_CLEAR);    for (int i=sub+1; i<NUM_CFN; i++) {      if (!CFN_EMPTY(&functions[i])) {        POPUP_MENU_ADD_ITEM(STR_DELETE);        break;      }    }    popupMenuHandler = onCustomFunctionsMenu;  }  for (int i=0; i<NUM_BODY_LINES; i++) {    coord_t y = MENU_HEADER_HEIGHT + 1 + i*FH;    int k = i+menuVerticalOffset;    putsStrIdx(0, y, functions == g_model.customFn ? STR_SF : STR_GF, k+1, (sub==k && menuHorizontalPosition<0) ? INVERS : 0);    CustomFunctionData *cfn = &functions[k];    uint8_t func = CFN_FUNC(cfn);    for (uint8_t j=0; j<5; j++) {      uint8_t attr = ((sub==k && menuHorizontalPosition==j) ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0);      uint8_t active = (attr && s_editMode>0);      switch (j) {        case 0:          putsSwitches(MODEL_CUSTOM_FUNC_1ST_COLUMN, y, CFN_SWITCH(cfn), attr | ((functionsContext->activeSwitches & ((MASK_CFN_TYPE)1 << k)) ? BOLD : 0));          if (active || AUTOSWITCH_ENTER_LONG()) CHECK_INCDEC_SWITCH(event, CFN_SWITCH(cfn), SWSRC_FIRST, SWSRC_LAST, eeFlags, isSwitchAvailableInCustomFunctions);          if (func == FUNC_OVERRIDE_CHANNEL && functions != g_model.customFn) {            func = CFN_FUNC(cfn) = func+1;          }          break;        case 1:          if (CFN_SWITCH(cfn)) {            lcd_putsiAtt(MODEL_CUSTOM_FUNC_2ND_COLUMN, y, STR_VFSWFUNC, func, attr);            if (active) {              func = CFN_FUNC(cfn) = checkIncDec(event, CFN_FUNC(cfn), 0, FUNC_MAX-1, eeFlags, isAssignableFunctionAvailable);              if (checkIncDec_Ret) CFN_RESET(cfn);            }          }          else {            j = 4; // skip other fields            if (sub==k && menuHorizontalPosition > 0) {              REPEAT_LAST_CURSOR_MOVE();            }          }          break;        case 2:        {          int8_t maxParam = NUM_CHNOUT-1;#if defined(OVERRIDE_CHANNEL_FUNCTION)          if (func == FUNC_OVERRIDE_CHANNEL) {            putsChn(lcdNextPos, y, CFN_CH_INDEX(cfn)+1, attr);          }          else#endif          if (func == FUNC_TRAINER) {            maxParam = 4;            putsMixerSource(lcdNextPos, y, CFN_CH_INDEX(cfn)==0 ? 0 : MIXSRC_Rud+CFN_CH_INDEX(cfn)-1, attr);          }#if defined(GVARS)          else if (func == FUNC_ADJUST_GVAR) {            maxParam = MAX_GVARS-1;            putsStrIdx(lcdNextPos, y, STR_GV, CFN_GVAR_INDEX(cfn)+1, attr);            if (active) CFN_GVAR_INDEX(cfn) = checkIncDec(event, CFN_GVAR_INDEX(cfn), 0, maxParam, eeFlags);            break;          }#endif          else if (func == FUNC_SET_TIMER) {            maxParam = TIMERS-1;            putsStrIdx(lcdNextPos, y, STR_TIMER, CFN_TIMER_INDEX(cfn)+1, attr);            if (active) CFN_TIMER_INDEX(cfn) = checkIncDec(event, CFN_TIMER_INDEX(cfn), 0, maxParam, eeFlags);            break;          }          else if (attr) {            REPEAT_LAST_CURSOR_MOVE();          }          if (active) CHECK_INCDEC_MODELVAR_ZERO(event, CFN_CH_INDEX(cfn), maxParam);          break;        }        case 3:        {          INCDEC_DECLARE_VARS(eeFlags);          int16_t val_displayed = CFN_PARAM(cfn);          int16_t val_min = 0;          int16_t val_max = 255;//.........这里部分代码省略.........
开发者ID:Jasonsiu,项目名称:opentx,代码行数:101,


示例18: main

//.........这里部分代码省略.........        lcd_invert_line(2 + vpos);      }      else if (state == ST_FLASH_CHECK) {        int result = menuFlashFile(vpos, event);        FirmwareSize = FileSize[vpos] - BOOTLOADER_SIZE;        if (result == 0) {          // canceled          state = ST_FILE_LIST;        }        else if (result == 1) {          // confirmed          firmwareAddress = FIRMWARE_ADDRESS + BOOTLOADER_SIZE;          firmwareWritten = 0;          eepromAddress = 0;          eepromWritten = 0;          state = ST_FLASHING;        }      }      else if (state == ST_FLASHING) {        // commit to flashing        lcd_putsLeft(4*FH, "/032Writing...");                if (!unlocked && (memoryType == MEM_FLASH)) {          unlocked = 1;          unlockFlash();        }                int progress;        if (memoryType == MEM_FLASH) {          writeFlashBlock();          firmwareWritten += sizeof(Block_buffer);          progress = (200*firmwareWritten) / FirmwareSize;        }        else {          writeEepromBlock();          eepromWritten += sizeof(Block_buffer);          progress = (200*eepromWritten) / EESIZE;        }        lcd_rect( 3, 6*FH+4, 204, 7);        lcd_hline(5, 6*FH+6, progress, FORCE);        lcd_hline(5, 6*FH+7, progress, FORCE);        lcd_hline(5, 6*FH+8, progress, FORCE);        fr = f_read(&FlashFile, (BYTE *)Block_buffer, sizeof(Block_buffer), &BlockCount);        if (BlockCount == 0) {          state = ST_FLASH_DONE; // EOF        }        if (firmwareWritten >= FLASHSIZE - BOOTLOADER_SIZE) {          state = ST_FLASH_DONE; // Backstop        }        if (eepromWritten >= EESIZE) {          state = ST_FLASH_DONE; // Backstop        }      }      if (state == ST_FLASH_DONE) {        if (unlocked) {          lockFlash();          unlocked = 0;        }        lcd_putsLeft(4*FH, "/024Writing Complete");        if (event == EVT_KEY_FIRST(BOOT_KEY_EXIT) || event == EVT_KEY_BREAK(BOOT_KEY_MENU)) {          state = ST_START;          vpos = 0;        }      }      if (event == EVT_KEY_LONG(BOOT_KEY_EXIT)) {        state = ST_REBOOT;      }      lcdRefresh();      if (PowerUpDelay < 20) {	// 200 mS        PowerUpDelay += 1;      }      else {        sdPoll10ms();      }    }    if (pwrCheck() == e_power_off && state != ST_FLASHING && state != ST_USB) {      pwrOff();      for (;;) {        // Wait for power to go off      }    }    if (state == ST_REBOOT) {      if ((~readKeys() & 0x7E) == 0) {        NVIC_SystemReset();      }    }  }  return 0;}
开发者ID:andyjenkinson,项目名称:opentx,代码行数:101,


示例19: menuProcNMEA2

void menuProcNMEA2(uint8_t event){    static uint8_t ignore_break;    switch(event)    {// Menu navigation    case EVT_KEY_BREAK(KEY_LEFT):        if (ignore_break==1)  {		    ignore_break=0;                break;}        chainMenu(menuProcNMEA1);        break;    case EVT_KEY_BREAK(KEY_RIGHT):          if (ignore_break==1) {		     ignore_break=0;                 break;}        chainMenu(menuProcNMEA3);        break;    case EVT_KEY_LONG(KEY_UP):        NMEA_DisableRXD();        chainMenu(menuProcStatistic);        break;    case EVT_KEY_LONG(KEY_DOWN):        NMEA_DisableRXD();        chainMenu(menuProc0);        break;//Beep setting    case EVT_KEY_LONG(KEY_LEFT):	  ignore_break = 1;        beep_on=0;        audioDefevent(AU_MENUS); 						// short blip         break;    case EVT_KEY_LONG(KEY_RIGHT):	  ignore_break = 1;        beep_on=1;        audioDefevent(AU_MENUS); 						// short blip        break;//Altitude setting	        /*      Set a home position for altitude. Normally used before starting      	  the model when GPS has got a fix.	        MENU[short]         		-->	alternating relative and absolute altitudes		  MENU[long]			-->   set home altitude to current		  EXIT[long]			-->   reset max altitude to 0		  Switch ON / OFF short beep with positive lift		  LEFT[long]			-->	Positive lift Beep off		  RIGHT[long]			-->	Positive lift Beep on		*/    case EVT_KEY_BREAK(KEY_MENU):        if (ignore_break==1)  {		    ignore_break=0;                break;}        if (!home_alt)				// umschalten zwischen absoluter und relativer H
C++ EVUTIL_ASSERT函数代码示例
C++ EVT_KEY_FIRST函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。