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

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

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

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

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

示例1: menuProcArduPilot5

void menuProcArduPilot5(uint8_t event){    switch(event)    {    case EVT_KEY_FIRST(KEY_UP):        chainMenu(menuProcArduPilot4);        break;    case EVT_KEY_FIRST(KEY_DOWN):        chainMenu(menuProcArduPilot6);        break;    case EVT_KEY_FIRST(KEY_MENU):        break;    case EVT_KEY_FIRST(KEY_EXIT):        ARDUPILOT_DisableRXD();        chainMenu(menuProc0);    break;    }    initval (0, PACK_POS, WPN);    initval (1, PACK_POS, DST);    title ('5');     lcd_puts_P  (1*FW, 1*FH, PSTR(" Way Point # "));        lcd_putsAtt (2*FW, 2*FH, VALSTR(0), APSIZE);    lcd_puts_P  (1*FW, 4*FH, PSTR(" Distance "));    lcd_putsAtt (2*FW, 5*FH, VALSTR(1), APSIZE);}
开发者ID:RasmusKS,项目名称:er9x,代码行数:25,


示例2: menuProcArduPilot7

void menuProcArduPilot7(uint8_t event){    switch(event)    {    case EVT_KEY_FIRST(KEY_UP):        chainMenu(menuProcArduPilot6);        break;    case EVT_KEY_FIRST(KEY_DOWN):        chainMenu(menuProcArduPilot8);        break;    case EVT_KEY_FIRST(KEY_MENU):        break;    case EVT_KEY_FIRST(KEY_EXIT):        ARDUPILOT_DisableRXD();        chainMenu(menuProc0);    break;    }    initval (0, PACK_ATT, RLL);    initval (1, PACK_ATT, PCH);    title ('7');     lcd_puts_P  (1*FW, 1*FH, PSTR(" Roll Angle"));       lcd_putsAtt (2*FW, 2*FH, VALSTR(0), APSIZE);    lcd_puts_P  (1*FW, 4*FH, PSTR(" Pitch Angle"));    lcd_putsAtt (2*FW, 5*FH, VALSTR(1), APSIZE);}
开发者ID:RasmusKS,项目名称:er9x,代码行数:25,


示例3: menuProcArduPilot6

void menuProcArduPilot6(uint8_t event){    switch(event)    {    case EVT_KEY_FIRST(KEY_UP):        chainMenu(menuProcArduPilot5);        break;    case EVT_KEY_FIRST(KEY_DOWN):        chainMenu(menuProcArduPilot7);        break;    case EVT_KEY_FIRST(KEY_MENU):        break;    case EVT_KEY_FIRST(KEY_EXIT):        ARDUPILOT_DisableRXD();        chainMenu(menuProc0);        break;    }    initval (0, PACK_ATT, ASP);    initval (1, PACK_ATT, THH);    title ('6');     lcd_puts_P  (1*FW, 1*FH, PSTR(" Air Speed "));        lcd_putsAtt (2*FW, 2*FH, VALSTR(0), APSIZE);    lcd_puts_P  (1*FW, 4*FH, PSTR(" Climb Rate "));    lcd_putsAtt (2*FW, 5*FH, VALSTR(1), APSIZE);}
开发者ID:RasmusKS,项目名称:er9x,代码行数:25,


示例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: menuProcArduPilot8

void menuProcArduPilot8(uint8_t event){    switch(event)    {    case EVT_KEY_FIRST(KEY_UP):        chainMenu(menuProcArduPilot7);        break;    case EVT_KEY_FIRST(KEY_DOWN):        chainMenu(menuProcArduPilot1);        break;    case EVT_KEY_FIRST(KEY_MENU):        break;    case EVT_KEY_FIRST(KEY_EXIT):        ARDUPILOT_DisableRXD();        chainMenu(menuProc0);        break;    }    initval (0, PACK_MOD, MOD);    initval (1, PACK_WPC, WPC);    title ('8');    lcd_puts_P  (1*FW, 1*FH, PSTR(" ArduPilot Mode"));    lcd_putsAtt (2*FW, 2*FH, VALSTR(0), APSIZE);    lcd_puts_P  (1*FW, 4*FH, PSTR(" RTL Distance"));    lcd_putsAtt (2*FW, 5*FH, VALSTR(1), APSIZE);}
开发者ID:RasmusKS,项目名称:er9x,代码行数:25,


示例6: interrupt10ms

void interrupt10ms(void){  Tenms |= 1;			// 10 mS has passed  uint8_t enuk = KEY_MENU;  uint8_t in = readKeys();  for (uint8_t i = 1; i != uint8_t(1 << TRM_BASE); i <<= 1) {    uint8_t value = (in & i);    keys[enuk].input(value);    ++enuk;  }#if defined(REV9E)  checkRotaryEncoder();  static rotenc_t rePreviousValue;  rotenc_t reNewValue = (x9de_rotenc / 2);  int8_t scrollRE = reNewValue - rePreviousValue;  if (scrollRE) {    rePreviousValue = reNewValue;    if (scrollRE < 0) {      putEvent(EVT_KEY_FIRST(KEY_MINUS));    }    else {      putEvent(EVT_KEY_FIRST(KEY_PLUS));     }  }#endif}
开发者ID:BenZoFly,项目名称:opentx,代码行数:28,


示例7: menuTelemetryMavlink

/*!	/brief Top Mavlink Menu definition *	/details Registers button events and handles that info. Buttons select menus, *	these are launched from the MAVLINK_menu switch statement. Setup menu is *	lanuched by the menu button. On exit (with exit button) the mavlink *	extension is reinitialized. */void menuTelemetryMavlink(uint8_t event) {		switch (event) // new event received, branch accordingly	{	case EVT_ENTRY:		MAVLINK_menu = MENU_INFO;		break;	case EVT_KEY_FIRST(KEY_UP):		if (MAVLINK_menu > 0)		{			MAVLINK_menu--;			break;		}		else		{			chainMenu(menuMainView);			return;		}	case EVT_KEY_FIRST(KEY_DOWN):		if (MAVLINK_menu < MAX_MAVLINK_MENU - 1)			MAVLINK_menu++;		break;	case EVT_KEY_FIRST(KEY_MENU):		return;	case EVT_KEY_FIRST(KEY_EXIT):		chainMenu(menuMainView);		return;	}	switch (MAVLINK_menu) {	case MENU_INFO:		menuTelemetryMavlinkInfos();		break;	case MENU_MODE:		menuTelemetryMavlinkFlightMode();		break;	case MENU_BATT:		menuTelemetryMavlinkBattery();		break;	case MENU_NAV:		menuTelemetryMavlinkNavigation();		break;	case MENU_GPS:		menuTelemetryMavlinkGPS();		break;#ifdef DUMP_RX_TX	case MENU_DUMP_TX:	case MENU_DUMP_RX:		menuTelemetryMavlinkDump(event);		break;#endif	default:		break;	}}
开发者ID:4408,项目名称:opentx,代码行数:63,


示例8: 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,


示例9: 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,


示例10: menuProcStatistic

void menuProcStatistic(uint8_t event){  TITLE("STAT");  switch(event)  {    case EVT_KEY_FIRST(KEY_UP):      chainMenu(menuProcStatistic2);      break;    case EVT_KEY_FIRST(KEY_DOWN):    case EVT_KEY_FIRST(KEY_EXIT):      chainMenu(menuMainView);      break;  }  lcd_puts_P(  1*FW, FH*1, PSTR("TME"));  putsTime(    5*FW, FH*1, s_timeCumAbs, 0, 0);  lcd_puts_P( 17*FW, FH*1, PSTR("TSW"));  putsTime(   11*FW, FH*1, s_timeCumSw,      0, 0);  lcd_puts_P(  1*FW, FH*2, PSTR("STK"));  putsTime(    5*FW, FH*2, s_timeCumThr, 0, 0);  lcd_puts_P( 17*FW, FH*2, PSTR("ST%"));  putsTime(   11*FW, FH*2, s_timeCum16ThrP/16, 0, 0);  lcd_puts_P( 17*FW, FH*0, PSTR("TOT"));  putsTime(   11*FW, FH*0, s_timeCumTot, 0, 0);  uint16_t traceRd = s_traceCnt>MAXTRACE ? s_traceWr : 0;  uint8_t x=5;  uint8_t y=60;  lcd_hline(x-3,y,120+3+3);  lcd_vline(x,y-32,32+3);  for(uint8_t i=0; i<120; i+=6)  {    lcd_vline(x+i+6,y-1,3);  }  for(uint8_t i=1; i<=120; i++)  {    lcd_vline(x+i,y-s_traceBuf[traceRd],s_traceBuf[traceRd]);    traceRd++;    if(traceRd>=MAXTRACE) traceRd=0;    if(traceRd==s_traceWr) break;  }}
开发者ID:banditniu,项目名称:gruvin9x,代码行数:45,


示例11: menuProcArduPilot3

void menuProcArduPilot3(uint8_t event){    switch(event)    {    case EVT_KEY_FIRST(KEY_UP):        chainMenu(menuProcArduPilot2);        break;    case EVT_KEY_FIRST(KEY_DOWN):        chainMenu(menuProcArduPilot4);        break;    case EVT_KEY_FIRST(KEY_EXIT):        ARDUPILOT_DisableRXD();        chainMenu(menuProc0);        break;    }    initval (0, PACK_POS, ALT);    initval (1, PACK_POS, ALH);    title ('3');      lcd_puts_P  (1*FW, 1*FH, PSTR(" Altitude"));        lcd_putsAtt (2*FW, 2*FH, VALSTR(0), APSIZE);    lcd_puts_P  (1*FW, 4*FH, PSTR(" Altitude Hold") );    lcd_putsAtt (2*FW, 5*FH, VALSTR(1), APSIZE);}
开发者ID:RasmusKS,项目名称:er9x,代码行数:23,


示例12: menuProcArduPilot4

void menuProcArduPilot4(uint8_t event){    switch(event)    {    case EVT_KEY_FIRST(KEY_UP):        chainMenu(menuProcArduPilot3);        break;    case EVT_KEY_FIRST(KEY_DOWN):        chainMenu(menuProcArduPilot5);        break;    case EVT_KEY_FIRST(KEY_EXIT):        ARDUPILOT_DisableRXD();        chainMenu(menuProc0);    break;    }    initval (0, PACK_POS, CRS);    initval (1, PACK_POS, BER);    title ('4');     lcd_puts_P  (1*FW, 1*FH, PSTR(" Course"));        lcd_putsAtt (2*FW, 2*FH, VALSTR(0), APSIZE);    lcd_puts_P  (1*FW, 4*FH, PSTR(" Bearing"));    lcd_putsAtt (2*FW, 5*FH, VALSTR(1), APSIZE);}
开发者ID:RasmusKS,项目名称:er9x,代码行数:23,


示例13: menuProcArduPilot2

void menuProcArduPilot2(uint8_t event){    switch(event)    {    case EVT_KEY_FIRST(KEY_UP):        chainMenu(menuProcArduPilot1);        break;    case EVT_KEY_FIRST(KEY_DOWN):        chainMenu(menuProcArduPilot3);        break;    case EVT_KEY_FIRST(KEY_EXIT):        ARDUPILOT_DisableRXD();        chainMenu(menuProc0);        break;    }    initval (0, PACK_POS, SPD);    initval (1, PACK_POS, CRT);    title ('2');      lcd_puts_P  (1*FW, 1*FH, PSTR(" Ground speed"));        lcd_putsAtt (2*FW, 2*FH, VALSTR(0), APSIZE);    lcd_puts_P  (1*FW, 4*FH, PSTR(" Climb rate") );    lcd_putsAtt (2*FW, 5*FH, VALSTR(1), APSIZE);}
开发者ID:RasmusKS,项目名称:er9x,代码行数:23,


示例14: menuProcStatistic2

void menuProcStatistic2(uint8_t event){  TITLE("STAT2");  switch(event)  {    case EVT_KEY_FIRST(KEY_MENU):      g_tmr1Latency_min = 0xff;      g_tmr1Latency_max = 0;      g_timeMain    = 0;//      g_time_per10 = 0;      beepKey();      break;    case EVT_KEY_FIRST(KEY_DOWN):      chainMenu(menuProcStatistic);      break;    case EVT_KEY_FIRST(KEY_UP):    case EVT_KEY_FIRST(KEY_EXIT):      chainMenu(menuMainView);      break;  }  lcd_puts_P( 0*FW,  1*FH, PSTR("tmr1Lat max    us"));  lcd_outdez8(15*FW , 1*FH, g_tmr1Latency_max/2 );  lcd_puts_P( 0*FW,  2*FH, PSTR("tmr1Lat min    us"));  lcd_outdez8(15*FW , 2*FH, g_tmr1Latency_min/2 );  lcd_puts_P( 0*FW,  3*FH, PSTR("tmr1 Jitter    us"));  lcd_outdez8(15*FW , 3*FH, (g_tmr1Latency_max - g_tmr1Latency_min) /2 );  lcd_puts_P( 0*FW,  4*FH, PSTR("tmain max      ms"));  lcd_outdezAtt(15*FW, 4*FH, (g_timeMain*100)/16, PREC2);  lcd_puts_P( 0*FW,  5*FH, PSTR("t10ms          us"));  lcd_outdez8(15*FW , 5*FH, g_time_per10/2 );#ifndef SIMU  lcd_puts_P( 0*FW,  6*FH, PSTR("Free Stack min    b"));  lcd_outdezAtt(18*FW-1,  6*FH, stack_free() ) ;#endif  lcd_puts_P( 3*FW,  7*FH, PSTR("[MENU] to reset"));}
开发者ID:banditniu,项目名称:gruvin9x,代码行数:36,


示例15: menuTelemetryJeti

void menuTelemetryJeti(uint8_t event){  lcdDrawTelemetryTopBar();  for (uint8_t i=0; i<16; i++) {    lcd_putcAtt((i+2)*FW, 3*FH, jetiRxBuffer[i], BSS);    lcd_putcAtt((i+2)*FW, 4*FH, jetiRxBuffer[i+16], BSS);  }  if (event == EVT_KEY_FIRST(KEY_EXIT)) {    JETI_DisableRXD();    jetiReady = 0;    chainMenu(menuMainView);  }}
开发者ID:4408,项目名称:opentx,代码行数:15,


示例16: 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,


示例17: menuProcJeti

void menuProcJeti(uint8_t event){  TITLE("JETI");  switch(event)  {    //case EVT_KEY_FIRST(KEY_MENU):    //  break;    case EVT_KEY_FIRST(KEY_EXIT):      JETI_DisableRXD();      chainMenu(menuProc0);      break;  }  for (uint8_t i = 0; i < 16; i++)  {    lcd_putcAtt((i+2)*FW,   3*FH, JetiBuffer[i], BSS);    lcd_putcAtt((i+2)*FW,   4*FH, JetiBuffer[i+16], BSS);  }  if (JetiBufferReady)  {    JETI_EnableTXD();    if (keyState((EnumKeys)(KEY_UP))) jeti_keys &= JETI_KEY_UP;    if (keyState((EnumKeys)(KEY_DOWN))) jeti_keys &= JETI_KEY_DOWN;    if (keyState((EnumKeys)(KEY_LEFT))) jeti_keys &= JETI_KEY_LEFT;    if (keyState((EnumKeys)(KEY_RIGHT))) jeti_keys &= JETI_KEY_RIGHT;    JetiBufferReady = 0;    // invalidate buffer    JETI_putw((uint16_t) jeti_keys);    _delay_ms (1);    JETI_DisableTXD();    jeti_keys = JETI_KEY_NOCHANGE;  }}
开发者ID:banditniu,项目名称:gruvin9x,代码行数:37,


示例18: menuUp1

//.........这里部分代码省略.........				if ( fr == FR_OK )				{					state = UPDATE_NO_FILES ;					fc->index = 0 ;					fr = f_opendir( &Dj, (TCHAR *) "." ) ;					if ( fr == FR_OK )					{ 						if ( (UpdateItem > 1 ) )						{							fc->ext[0] = 'F' ;							fc->ext[1] = 'R' ;							fc->ext[2] = 'K' ;						}						else						{							fc->ext[0] = 'B' ;							fc->ext[1] = 'I' ;							fc->ext[2] = 'N' ;						}						fc->ext[3] = 0 ;						fc->index = 0 ;						fc->nameCount = fillNames( 0, fc ) ;						fc->hpos = 0 ;						fc->vpos = 0 ;						if ( fc->nameCount )						{							state = UPDATE_FILE_LIST ;						}					}				}			}    break ;    		case EVT_KEY_FIRST(KEY_EXIT):			if ( state < UPDATE_ACTION )			{      	chainMenu(menuUpdate) ;    		killEvents(event) ;			}    break ;	}	switch ( state )	{		case UPDATE_NO_FILES :			lcd_puts_Pleft( 4*FH, "/005No Files" ) ;	    lcd_outdez( 21*FW, 4*FH, mounted ) ;    break ;				case UPDATE_FILE_LIST :			SportVerValid = 0 ;			if ( fileList( event, &FileControl ) == 1 )			{				state = UPDATE_CONFIRM ;			}    break ;		case UPDATE_CONFIRM : 			if ( (UpdateItem > UPDATE_TYPE_BOOTLOADER ) )			{#ifdef PCBX9D 				if ( (UpdateItem == UPDATE_TYPE_SPORT_INT ) )				{					lcd_puts_Pleft( 2*FH, "Flash Int. XJT from" ) ;				}				else				{
开发者ID:Weanuts,项目名称:ersky9x,代码行数:67,


示例19: if

void Key::input(bool val, EnumKeys enuk){  //  uint8_t old=m_vals;  m_vals <<= 1;  if(val) m_vals |= 1; //portbit einschieben  m_cnt++;  if(m_state && m_vals==0){  //gerade eben sprung auf 0    if(m_state!=KSTATE_KILLED) {      putEvent(EVT_KEY_BREAK(enuk));      if(!( m_state == 16 && m_cnt<16)){        m_dblcnt=0;      }        //      }    }    m_cnt   = 0;    m_state = KSTATE_OFF;  }  switch(m_state){    case KSTATE_OFF:      if(m_vals==FFVAL){ //gerade eben sprung auf ff        m_state = KSTATE_START;        if(m_cnt>16) m_dblcnt=0; //pause zu lang fuer double        m_cnt   = 0;      }      break;      //fallthrough    case KSTATE_START:      putEvent(EVT_KEY_FIRST(enuk));      m_dblcnt++;#ifdef KSTATE_RPTDELAY      m_state   = KSTATE_RPTDELAY;#else      m_state   = 16;#endif      m_cnt     = 0;      break;#ifdef KSTATE_RPTDELAY    case KSTATE_RPTDELAY: // gruvin: longer delay before first key repeat      if(m_cnt == 24) putEvent(EVT_KEY_LONG(enuk)); // need to catch this inside RPTDELAY time      if (m_cnt == 40) {        m_state = 16;        m_cnt = 0;      }      break;#endif    case 16:#ifndef KSTATE_RPTDELAY      if(m_cnt == 24) putEvent(EVT_KEY_LONG(enuk));      //fallthrough#endif    case 8:    case 4:    case 2:      if(m_cnt >= 48)  { //3 6 12 24 48 pulses in every 480ms        m_state >>= 1;        m_cnt     = 0;      }      //fallthrough    case 1:      if( (m_cnt & (m_state-1)) == 0)  putEvent(EVT_KEY_REPT(enuk));      break;    case KSTATE_PAUSE: //pause      if(m_cnt >= 64)      {        m_state = 8;        m_cnt   = 0;      }      break;    case KSTATE_KILLED: //killed      break;  }
开发者ID:RasmusKS,项目名称:er9x,代码行数:72,


示例20: check

void check(check_event_t event, uint8_t curr, const MenuHandlerFunc *menuTab, uint8_t menuTabSize, const pm_uint8_t *horTab, uint8_t horTabMax, vertpos_t maxrow){  vertpos_t l_posVert = menuVerticalPosition;  horzpos_t l_posHorz = menuHorizontalPosition;  uint8_t maxcol = MAXCOL(l_posVert);#if defined(NAVIGATION_POT1)  // check pot 1 - if changed -> scroll values  static int16_t p1val;  static int16_t p1valprev;  p1valdiff = (p1val-calibratedStick[6]) / SCROLL_POT1_TH;  if (p1valdiff) {    p1valdiff = (p1valprev-calibratedStick[6]) / 2;    p1val = calibratedStick[6];  }  p1valprev = calibratedStick[6];#endif#if defined(NAVIGATION_POT2)  // check pot 2 - if changed -> scroll menu  static int16_t p2valprev;  p2valdiff = (p2valprev-calibratedStick[4]) / SCROLL_TH;  if (p2valdiff) p2valprev = calibratedStick[4];#endif#if defined(NAVIGATION_POT3)  // check pot 3 if changed -> cursor down/up  static int16_t p3valprev;  int8_t scrollUD = (p3valprev-calibratedStick[5]) / SCROLL_TH;  if (scrollUD) p3valprev = calibratedStick[5];#else  #define scrollUD 0#endif  if (p2valdiff || scrollUD || p1valdiff) backlightOn(); // on keypress turn the light on  if (menuTab) {    uint8_t attr = 0;    if (l_posVert==0 && !calibrationState) {      attr = INVERS;      int8_t cc = curr;      if (p2valdiff) {        cc = limit((int8_t)0, (int8_t)(cc - p2valdiff), (int8_t)(menuTabSize-1));      }      switch(event) {#if defined(ROTARY_ENCODER_NAVIGATION)      case EVT_ROTARY_BREAK:        if (s_editMode < 0 && maxrow > 0) {          s_editMode = 0;          // TODO ? l_posVert = (horTab && horTab[1]==0xff) ? 2 : 1;          l_posHorz = 0;        }        else {          s_editMode = -1;        }        event = 0;        break;#endif#if defined(ROTARY_ENCODER_NAVIGATION)      case EVT_ROTARY_LEFT:        if (s_editMode >= 0)        break;#endif      case EVT_KEY_FIRST(KEY_LEFT):        if (curr > 0)        cc = curr - 1;        else        cc = menuTabSize-1;        break;#if defined(ROTARY_ENCODER_NAVIGATION)      case EVT_ROTARY_RIGHT:        if (s_editMode >= 0)        break;#endif      case EVT_KEY_FIRST(KEY_RIGHT):        if (curr < (menuTabSize-1))        cc = curr + 1;        else        cc = 0;        break;      }      if (cc != curr) {        chainMenu((MenuHandlerFunc)pgm_read_adr(&menuTab[cc]));      }#if defined(ROTARY_ENCODER_NAVIGATION)      if (IS_RE_NAVIGATION_ENABLE() && s_editMode < 0)      attr = INVERS|BLINK;#endif    }//.........这里部分代码省略.........
开发者ID:Ingwie,项目名称:NextStepRc-2.18,代码行数:101,


示例21: checkIncDec

int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, uint8_t i_flags){  int16_t newval = val;#if defined(DBLKEYS)  uint8_t in = KEYS_PRESSED();  if (!(i_flags & NO_DBLKEYS) && (EVT_KEY_MASK(event))) {    bool dblkey = true;    if (DBLKEYS_PRESSED_RGT_LFT(in))    newval = -val;    else if (DBLKEYS_PRESSED_RGT_UP(in)) {      newval = (i_max > 100 ? 100 : i_max);    }    else if (DBLKEYS_PRESSED_LFT_DWN(in)) {      newval = (i_min < -100 ? -100 : i_min);    }    else if (DBLKEYS_PRESSED_UP_DWN(in)) {      newval = 0;    }    else {      dblkey = false;    }    if (dblkey) {      killEvents(KEY_UP);      killEvents(KEY_DOWN);      killEvents(KEY_RIGHT);      killEvents(KEY_LEFT);      event = 0;    }  }#endif  if (event==EVT_KEY_FIRST(KEY_RIGHT) || event==EVT_KEY_REPT(KEY_RIGHT) || (s_editMode>0 && (IS_ROTARY_RIGHT(event) || event==EVT_KEY_FIRST(KEY_UP) || event==EVT_KEY_REPT(KEY_UP)))) {    newval++;    AUDIO_KEYPAD_UP();  }  else if (event==EVT_KEY_FIRST(KEY_LEFT) || event==EVT_KEY_REPT(KEY_LEFT) || (s_editMode>0 && (IS_ROTARY_LEFT(event) || event==EVT_KEY_FIRST(KEY_DOWN) || event==EVT_KEY_REPT(KEY_DOWN)))) {    newval--;    AUDIO_KEYPAD_DOWN();  }  if (!READ_ONLY() && i_min==0 && i_max==1 && (event==EVT_KEY_BREAK(KEY_ENTER) || IS_ROTARY_BREAK(event))) {    s_editMode = 0;    newval = !val;  }#if defined(NAVIGATION_POT1)  // change values based on P1  newval -= p1valdiff;  p1valdiff = 0;#endif#if defined(AUTOSWITCH)  if (i_flags & INCDEC_SWITCH) {    newval = checkIncDecMovedSwitch(newval);  }#endif#if defined(AUTOSOURCE)  if (i_flags & INCDEC_SOURCE) {    if (s_editMode>0) {      int8_t source = GET_MOVED_SOURCE(i_min, i_max);      if (source) {        newval = source;      }#if defined(AUTOSWITCH)      else {        uint8_t swtch = abs(getMovedSwitch());        if (swtch) {          newval = switchToMix(swtch);        }      }#endif    }  }#endif  if (newval > i_max || newval < i_min) {    newval = (newval > i_max ? i_max : i_min);    killEvents(event);    AUDIO_WARNING2();  }  if (newval != val) {    if (!(i_flags & NO_INCDEC_MARKS) && (newval != i_max) && (newval != i_min) && (newval==0 || newval==-100 || newval==+100) && !IS_ROTARY_EVENT(event)) {      pauseEvents(event); // delay before auto-repeat continues      if (newval>val) // without AUDIO it's optimized, because the 2 sounds are the same      AUDIO_KEYPAD_UP();      else      AUDIO_KEYPAD_DOWN();    }    eeDirty(i_flags & (EE_GENERAL|EE_MODEL));    checkIncDec_Ret = (newval > val ? 1 : -1);  }  else {    checkIncDec_Ret = 0;  }  return newval;}
开发者ID:Ingwie,项目名称:NextStepRc-2.18,代码行数:100,


示例22: menuTelemetryFrsky

void menuTelemetryFrsky(uint8_t event){  if (event == EVT_KEY_FIRST(KEY_EXIT)) {    killEvents(event);    chainMenu(menuMainView);    return;  }  switch (event) {    case EVT_KEY_BREAK(KEY_UP):      if (s_frsky_view-- == 0)        s_frsky_view = FRSKY_VIEW_MAX;      break;#if defined(PCBTARANIS)    case EVT_KEY_BREAK(KEY_PAGE):#endif    case EVT_KEY_BREAK(KEY_DOWN):      if (s_frsky_view++ == FRSKY_VIEW_MAX)        s_frsky_view = 0;      break;#if defined(PCBTARANIS)    case EVT_KEY_LONG(KEY_ENTER):      killEvents(event);      MENU_ADD_ITEM(STR_RESET_TELEMETRY);      MENU_ADD_ITEM(STR_RESET_FLIGHT);      menuHandler = onMainViewMenu;      break;#else    case EVT_KEY_FIRST(KEY_ENTER):      telemetryReset();      break;#endif  }  lcdDrawTelemetryTopBar();  if (s_frsky_view < MAX_FRSKY_SCREENS) {    FrSkyScreenData & screen = g_model.frsky.screens[s_frsky_view];#if defined(GAUGES)    if (g_model.frsky.screensType & (1<<s_frsky_view)) {      // Custom Screen with gauges      uint8_t barHeight = 5;      for (int8_t i=3; i>=0; i--) {        FrSkyBarData & bar = screen.bars[i];        uint8_t source = bar.source;        getvalue_t barMin = convertBarTelemValue(source, bar.barMin);        getvalue_t barMax = convertBarTelemValue(source, 255-bar.barMax);        if (source && barMax > barMin) {          uint8_t y = barHeight+6+i*(barHeight+6);          lcd_putsiAtt(0, y+barHeight-5, STR_VTELEMCHNS, source, 0);          lcd_rect(25, y, BAR_WIDTH+1, barHeight+2);          getvalue_t value = getValue(MIXSRC_FIRST_TELEM+source-1);#if LCD_W >= 212          putsTelemetryChannel(27+BAR_WIDTH, y+barHeight-6, source-1, value, LEFT);#endif          getvalue_t threshold = 0;          uint8_t thresholdX = 0;          if (source <= TELEM_TM2)            threshold = 0;          else if (source <= TELEM_RSSI_RX)            threshold = getRssiAlarmValue(source-TELEM_RSSI_TX);          else if (source <= TELEM_A2)            threshold = g_model.frsky.channels[source-TELEM_A1].alarms_value[0];#if defined(FRSKY_HUB)          else            threshold = convertBarTelemValue(source, barsThresholds[source-TELEM_ALT]);#endif          if (threshold) {            thresholdX = barCoord(threshold, barMin, barMax);            if (thresholdX == 100)              thresholdX = 0;          }          uint8_t width = barCoord(value, barMin, barMax);          // reversed barshade for T1/T2          uint8_t barShade = ((threshold > value) ? DOTTED : SOLID);          if (source == TELEM_T1 || source == TELEM_T2)            barShade = -barShade;          lcd_filled_rect(26, y+1, width, barHeight, barShade);          for (uint8_t j=24; j<99; j+=25)            if (j>thresholdX || j>width) lcd_vline(j*BAR_WIDTH/100+26, y+1, barHeight);          if (thresholdX) {            lcd_vlineStip(26+thresholdX, y-2, barHeight+3, DOTTED);            lcd_hline(25+thresholdX, y-2, 3);          }        }        else {          barHeight += 2;        }      }      displayRssiLine();    }    else//.........这里部分代码省略.........
开发者ID:andyjenkinson,项目名称:opentx,代码行数:101,


示例23: fileList

uint32_t fileList(uint8_t event, struct fileControl *fc ){	uint32_t limit ;	uint32_t result = 0 ;  uint8_t maxhsize ;	uint32_t i ;			 	limit = 6 ;	if ( fc->nameCount < limit )	{		limit = fc->nameCount ;							}	maxhsize = 0 ;	for ( i = 0 ; i < limit ; i += 1 )	{		uint32_t x ;		uint32_t len ;		len = x = strlen( Filenames[i] ) ;		if ( x > maxhsize )		{			maxhsize = x ;									}		if ( x > DISPLAY_CHAR_WIDTH )		{			if ( ( fc->hpos + DISPLAY_CHAR_WIDTH ) > x )			{				x = x - DISPLAY_CHAR_WIDTH ;			}			else			{				x = fc->hpos ;			}			len = DISPLAY_CHAR_WIDTH ;		}		else		{			x = 0 ;		}		lcd_putsn_P( 0, 16+FH*i, &Filenames[i][x], len ) ;	}#if !defined(PCBTARANIS)	if ( event == 0 )	{extern int32_t Rotary_diff ;		if ( Rotary_diff > 0 )		{			event = EVT_KEY_FIRST(KEY_DOWN) ;		}		else if ( Rotary_diff < 0 )		{			event = EVT_KEY_FIRST(KEY_UP) ;		}		Rotary_diff = 0 ;	}#endif	if ( ( event == EVT_KEY_REPT(KEY_DOWN) ) || event == EVT_KEY_FIRST(KEY_DOWN) )	{		if ( fc->vpos < limit-1 )		{			fc->vpos += 1 ;		}		else		{			if ( fc->nameCount > limit )			{				fc->index += 1 ;				fc->nameCount = fillNames( fc->index, fc ) ;			}		}	}	if ( ( event == EVT_KEY_REPT(KEY_UP)) || ( event == EVT_KEY_FIRST(KEY_UP) ) )	{		if ( fc->vpos > 0 )		{			fc->vpos -= 1 ;		}		else		{			if ( fc->index )			{				fc->index -= 1 ;				fc->nameCount = fillNames( fc->index, fc ) ;			}		}	}	if ( ( event == EVT_KEY_REPT(MKEY_RIGHT)) || ( event == EVT_KEY_FIRST(MKEY_RIGHT) ) )	{		if ( fc->hpos + DISPLAY_CHAR_WIDTH < maxhsize )	fc->hpos += 1 ;	}	if ( ( event == EVT_KEY_REPT(MKEY_LEFT)) || ( event == EVT_KEY_FIRST(MKEY_LEFT) ) )	{		if ( fc->hpos )	fc->hpos -= 1 ;	}	if ( ( event == EVT_KEY_LONG(KEY_MENU) ) || ( event == EVT_KEY_BREAK(BTN_RE) ) )	{		// Select file to flash		killEvents(event);		result = 1 ;//.........这里部分代码省略.........
开发者ID:Weanuts,项目名称:ersky9x,代码行数:101,


示例24: menuProcNMEA1

void menuProcNMEA1(uint8_t event){    switch(event)						// new event received, branch accordingly    {    case EVT_KEY_BREAK(KEY_LEFT):        chainMenu(menuProcNMEA4);        break;    case EVT_KEY_BREAK(KEY_RIGHT):        chainMenu(menuProcNMEA2);        break;    case EVT_KEY_LONG(KEY_UP):        NMEA_DisableRXD();        chainMenu(menuProcStatistic);        break;    case EVT_KEY_LONG(KEY_DOWN):        NMEA_DisableRXD();        chainMenu(menuProc0);        break;    case EVT_KEY_FIRST(KEY_MENU):        if (show_timer == 0) {            show_timer = 1;            if (gpstimer <= 0)                gpstimer = bintime(rbuf[2]);        }        else            show_timer = 0;        break;    case EVT_KEY_FIRST(KEY_EXIT):        if ((show_timer == 1) &&(rbuf[2][0]))            gpstimer = bintime(rbuf[2]);		// get actual GPS time ->resets timer to 00:00        break;    }    /*    How to use:    You choose the values to be displayed using the function:      initval(<number>, <packet>, <value>);      -------------------------------------    That means that "<value>" of "<packet>" is stored in the <number> buffer.    The first <number> is 0.    Here are the packet names and the associated value names:    Position packet (beginning with "GGA"): "PACK_GGA"    value names: "TIM", "LAT", "NOS", "LON", "EOW", "FIX", "SAT", "DIL", "ALT", "MTR", "GEO", "MET", "AGE", "DIF",    Required minimum packet (beginning with "RMC"): "PACK_RMC"       value names: "TIM", "NRW", "LT1", "NSO", "LN1", "EWE", "SOG", "COG", "DAT", "MAG", "EAW"    The buffers are accessed using the macro "VALSTR(<n>)", where "<n>" is "0"    for the first buffer, and "1" for the second buffer.    When a value is missing, it is replaced by the contents of val_unknown ("?").*/    if (ggareceived)    {        gpstime=bintime(rbuf[2]);        ggareceived=0;    }    initval (LONG_BUF(0), PACK_RMC, TIM);					// sets rbuf[0][.]    initval (LONG_BUF(1), PACK_RMC, DAT);					// sets rbuf[1][.]    initval (SHORT_BUF(0), PACK_RMC, NRW);				// sets sbuf[0]    initval (SHORT_BUF(2), PACK_GGA, SAT);				// -> sbuf[2]    title ('1');    lcd_puts_P        (   2*FW,   1*FH, PSTR("UTC-Time      Sat"));    if (rbuf[0][0]) {								// show always if data have been received	  lcd_putcAtt   (  19*FW,   1*FH, sbuf[2], 0);				// satellites in view        lcd_putsnAtt  (   2*FW,   2*FH, &rbuf[0][0], 2, APSIZE);		// hours        lcd_putcAtt   (   6*FW,   2*FH, ':', DBLSIZE);			// ":"        lcd_putsnAtt  (   8*FW,   2*FH, &rbuf[0][2], 2, APSIZE);		// minutes        lcd_putcAtt   (  12*FW,   2*FH, ':', DBLSIZE);			// ":"        lcd_putsnAtt  (  14*FW,   2*FH, &rbuf[0][4], 2, APSIZE);		// seconds    }    else        lcd_putsAtt   (   2*FW,   2*FH, val_unknown, APSIZE);		// "?"    if ((show_timer == 1) && rbuf[0][0])  {					// show the Timer when data have been received        lcd_puts_P    (   2*FW,   4*FH, PSTR("Timer"));			// display "Timer"        putsTime      (   5*FW,   5*FH, (gpstime-gpstimer), DBLSIZE, DBLSIZE);	// display difference as mm:ss    }    else    {        lcd_puts_P      ( 2*FW,   4*FH, PSTR("Date"));			// show the UTC Date	        if (rbuf[1][0])	{            lcd_putsnAtt( 2*FW,   5*FH, &rbuf[1][0], 2, APSIZE);		// year            lcd_putcAtt ( 6*FW,   5*FH, '/', DBLSIZE);			// "/"             lcd_putsnAtt( 8*FW,   5*FH, &rbuf[1][2], 2, APSIZE);		// month            lcd_putcAtt (12*FW,   5*FH, '/', DBLSIZE);			// "/"            lcd_putsnAtt(14*FW,   5*FH, &rbuf[1][4], 2, APSIZE);		// day        }        else//.........这里部分代码省略.........
开发者ID:RasmusKS,项目名称:er9x,代码行数:101,


示例25: menuProcArduPilot1

void menuProcArduPilot1(uint8_t event){    switch(event)						// new event received, branch accordingly    {    case EVT_KEY_FIRST(KEY_UP):        chainMenu(menuProcArduPilot8);        break;    case EVT_KEY_FIRST(KEY_DOWN):        chainMenu(menuProcArduPilot2);        break;    case EVT_KEY_FIRST(KEY_MENU):        ARDUPILOT_DisableRXD();        chainMenu(menuProcStatistic);        break;    case EVT_KEY_FIRST(KEY_EXIT):        ARDUPILOT_DisableRXD();        chainMenu(menuProc0);        break;    }/*    How to use:     You choose the values to be displayed using the function:      initval(<number>, <packet>, <value>);      -------------------------------------    That means that "<value>" of "<packet>" is stored in the <number> buffer.    The first <number> is 0.    Here are the packet names and the associated value names:    Position packet (beginning with "!!!"): "PACK_POS"       value names: "LAT", "LON", "SPD", "CRT", "ALT", "ALH", "CRS", "BER",       "WPN", "DST", "BTV", "RSP", "TOW"    Attitude packet (beginning with "+++"): "PACK_ATT"       value names: "ASP", "THH", "RLL", "PCH"    Mode change packet (beginning with "###"): "PACK_MOD"       value name: "MOD"    Waypoint packet (beginning with "%%%"): "PACK_WPC"       value name: "WPC"    Alert packet (beginning with "XXX"): "PACK_ALR"       value name: "ALR"    Performance packet (beginning with "PPP"): "PACK_PRF"       value name: "PRF"    The buffers are accessed using the macro "VALSTR(<n>)", where "<n>" is "0"    for the first buffer, and "1" for the second buffer.    When a value is missing, it is replaced by the contents of val_unknown ("?").*/// expecting LAT value in POS packet to be stored in the first buffer    initval (0, PACK_POS, LAT);// and LON value in POS packet stored in the second buffer    initval (1, PACK_POS, LON);// title of the screen    title ('1');    lcd_puts_P  (5*FW, 1*FH, PSTR(" Latitude"));   // line 1 column 5// first buffer into line 2 column 2    lcd_putsAtt (2*FW, 2*FH, VALSTR(0), APSIZE);    lcd_puts_P  (5*FW, 4*FH, PSTR(" Longitude"));  // line 4 column 5// second buffer into line 5 column 2    lcd_putsAtt (1*FW, 5*FH, VALSTR(1), APSIZE);}
开发者ID:RasmusKS,项目名称:er9x,代码行数:69,


示例26: menuStatisticsDebug

void menuStatisticsDebug(uint8_t event){  TITLE(STR_MENUDEBUG);  switch(event)  {    case EVT_KEY_LONG(KEY_ENTER):      g_eeGeneral.mAhUsed = 0;      g_eeGeneral.globalTimer = 0;      eeDirty(EE_GENERAL);      sessionTimer = 0;      killEvents(event);      AUDIO_KEYPAD_UP();      break;    case EVT_KEY_FIRST(KEY_ENTER):#if defined(LUA)      maxLuaInterval = 0;      maxLuaDuration = 0;#endif      maxMixerDuration  = 0;      AUDIO_KEYPAD_UP();      break;#if defined(DEBUG_TRACE_BUFFER)    case EVT_KEY_FIRST(KEY_UP):      pushMenu(menuTraceBuffer);      return;#endif    case EVT_KEY_FIRST(KEY_DOWN):      chainMenu(menuStatisticsView);      break;    case EVT_KEY_FIRST(KEY_EXIT):      chainMenu(menuMainView);      break;  }  lcd_putsLeft(MENU_DEBUG_Y_FREE_RAM, "Free Mem");  lcd_outdezAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_FREE_RAM, getAvailableMemory(), LEFT);  lcd_puts(lcdLastPos, MENU_DEBUG_Y_FREE_RAM, "b");#if defined(LUA)  lcd_putsLeft(MENU_DEBUG_Y_LUA, "Lua scripts");  lcd_putsAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_LUA+1, "[Duration]", SMLSIZE);  lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_LUA, 10*maxLuaDuration, LEFT);  lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_LUA+1, "[Interval]", SMLSIZE);  lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_LUA, 10*maxLuaInterval, LEFT);#endif  lcd_putsLeft(MENU_DEBUG_Y_MIXMAX, STR_TMIXMAXMS);  lcd_outdezAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_MIXMAX, DURATION_MS_PREC2(maxMixerDuration), PREC2|LEFT);  lcd_puts(lcdLastPos, MENU_DEBUG_Y_MIXMAX, "ms");  lcd_putsLeft(MENU_DEBUG_Y_RTOS, STR_FREESTACKMINB);  lcd_putsAtt(MENU_DEBUG_COL1_OFS, MENU_DEBUG_Y_RTOS+1, "[M]", SMLSIZE);  lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(0), UNSIGN|LEFT);  lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_RTOS+1, "[X]", SMLSIZE);  lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(1), UNSIGN|LEFT);  lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_RTOS+1, "[A]", SMLSIZE);  lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(2), UNSIGN|LEFT);  lcd_putsAtt(lcdLastPos+2, MENU_DEBUG_Y_RTOS+1, "[I]", SMLSIZE);  lcd_outdezAtt(lcdLastPos, MENU_DEBUG_Y_RTOS, stack_free(255), UNSIGN|LEFT);  lcd_puts(3*FW, 7*FH+1, STR_MENUTORESET);  lcd_status_line();}
开发者ID:kamnxt,项目名称:opentx,代码行数:66,


示例27: menuModelPhaseOne

//.........这里部分代码省略.........            fm->gvars[idx] = v;          }        }        uint8_t p = getGVarFlightPhase(s_currIdx, idx);        lcd_outdezAtt(21*FW, y, GVAR_VALUE(idx, p), posHorz==2 ? attr : 0);        if (attr && posHorz==2 && ((editMode>0) || p1valdiff)) {          GVAR_VALUE(idx, p) = checkIncDec(event, GVAR_VALUE(idx, p), -GVAR_LIMIT, GVAR_LIMIT, EE_MODEL);        }        break;      }#endif    }  }}#if defined(ROTARY_ENCODERS)  #if ROTARY_ENCODERS > 2    #define NAME_OFS (-4-12)    #define SWITCH_OFS (-FW/2-2-13)    #define TRIMS_OFS  (-FW/2-4-15)    #define ROTARY_ENC_OFS (0)  #else    #define NAME_OFS (-4)    #define SWITCH_OFS (-FW/2-2)    #define TRIMS_OFS  (-FW/2-4)    #define ROTARY_ENC_OFS (2)  #endif#else  #define NAME_OFS 0  #define SWITCH_OFS (FW/2)  #define TRIMS_OFS  (FW/2)#endifvoid menuModelFlightModesAll(uint8_t event){  SIMPLE_MENU(STR_MENUFLIGHTPHASES, menuTabModel, e_FlightModesAll, 1+MAX_FLIGHT_MODES+1);  int8_t sub = m_posVert - 1;  switch (event) {    CASE_EVT_ROTARY_BREAK    case EVT_KEY_FIRST(KEY_ENTER):      if (sub == MAX_FLIGHT_MODES) {        s_editMode = 0;        trimsCheckTimer = 200; // 2 seconds      }      // no break    case EVT_KEY_FIRST(KEY_RIGHT):      if (sub >= 0 && sub < MAX_FLIGHT_MODES) {        s_currIdx = sub;        pushMenu(menuModelPhaseOne);      }      break;  }  uint8_t att;  for (uint8_t i=0; i<MAX_FLIGHT_MODES; i++) {#if defined(CPUARM)    int8_t y = 1 + (1+i-s_pgOfs)*FH;    if (y<1*FH+1 || y>(LCD_LINES-1)*FH+1) continue;#else    uint8_t y = 1 + (i+1)*FH;#endif    att = (i==sub ? INVERS : 0);    FlightModeData *p = flightModeAddress(i);    putsFlightMode(0, y, i+1, att|(getFlightMode()==i ? BOLD : 0));    lcd_putsnAtt(4*FW+NAME_OFS, y, p->name, sizeof(p->name), ZCHAR);    if (i == 0) {      lcd_puts((5+LEN_FLIGHT_MODE_NAME)*FW+SWITCH_OFS, y, STR_DEFAULT);    }    else {      putsSwitches((5+LEN_FLIGHT_MODE_NAME)*FW+SWITCH_OFS, y, p->swtch, 0);      for (uint8_t t=0; t<NUM_STICKS; t++) {        putsTrimMode((9+LEN_FLIGHT_MODE_NAME+t)*FW+TRIMS_OFS, y, i, t, 0);      }#if defined(CPUM2560)      for (uint8_t t=0; t<NUM_ROTARY_ENCODERS; t++) {        putsRotaryEncoderMode((13+LEN_FLIGHT_MODE_NAME+t)*FW+TRIMS_OFS+ROTARY_ENC_OFS, y, i, t, 0);      }#endif    }    if (p->fadeIn || p->fadeOut) {      lcd_putc(LCD_W-FW-MENUS_SCROLLBAR_WIDTH, y, (p->fadeIn && p->fadeOut) ? '*' : (p->fadeIn ? 'I' : 'O'));    }  }#if defined(CPUARM)  if (s_pgOfs != MAX_FLIGHT_MODES-(LCD_LINES-2)) return;#endif  lcd_putsLeft((LCD_LINES-1)*FH+1, STR_CHECKTRIMS);  putsFlightMode(OFS_CHECKTRIMS, (LCD_LINES-1)*FH+1, mixerCurrentFlightMode+1);  if (sub==MAX_FLIGHT_MODES && !trimsCheckTimer) {    lcd_status_line();  }}
开发者ID:RonDePrez,项目名称:opentx,代码行数:101,


示例28: menuMainView

//.........这里部分代码省略.........    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;    case EVT_KEY_TELEMETRY:#if defined(FRSKY)      if (!IS_FAI_ENABLED())        chainMenu(menuTelemetryFrsky);#elif defined(JETI)      JETI_EnableRXD(); // enable JETI-Telemetry reception      chainMenu(menuTelemetryJeti);#elif defined(ARDUPILOT)      ARDUPILOT_EnableRXD(); // enable ArduPilot-Telemetry reception      chainMenu(menuTelemetryArduPilot);#elif defined(NMEA)      NMEA_EnableRXD(); // enable NMEA-Telemetry reception      chainMenu(menuTelemetryNMEA);#elif defined(MAVLINK)      chainMenu(menuTelemetryMavlink);#else      chainMenu(menuStatisticsDebug);#endif      killEvents(event);      break;    case EVT_KEY_FIRST(KEY_EXIT):#if defined(GVARS) && !defined(PCBSTD)      if (s_gvar_timer > 0) {        s_gvar_timer = 0;      }#endif      if (view == VIEW_TIMER2) {        timerReset(1);      }      AUDIO_KEYPAD_UP();      break;#if !defined(NAVIGATION_MENUS)    case EVT_KEY_LONG(KEY_EXIT):      flightReset();      AUDIO_KEYPAD_UP();      break;#endif  }  {    // Flight Mode Name    uint8_t mode = mixerCurrentFlightMode;    lcd_putsnAtt(PHASE_X, PHASE_Y, g_model.flightModeData[mode].name, sizeof(g_model.flightModeData[mode].name), ZCHAR|PHASE_FLAGS);    // Model Name    putsModelName(MODELNAME_X, MODELNAME_Y, g_model.header.name, g_eeGeneral.currModel, BIGSIZE);    // Main Voltage (or alarm if any)    displayVoltageOrAlarm();    // Timers    displayTimers();
开发者ID:bellth,项目名称:opentx,代码行数:67,


示例29: putEvent

void Key::input(bool val, EnumKeys enuk){  uint8_t t_vals = m_vals ;  t_vals <<= 1 ;  if (val) t_vals |= 1; //portbit einschieben  m_vals = t_vals ;  m_cnt++;  if (m_state && m_vals==0) {  //gerade eben sprung auf 0    if (m_state != KSTATE_KILLED) {      putEvent(EVT_KEY_BREAK(enuk));    }    m_cnt   = 0;    m_state = KSTATE_OFF;  }  switch(m_state){    case KSTATE_OFF:      if (m_vals == FFVAL) { //gerade eben sprung auf ff        m_state = KSTATE_START;        m_cnt   = 0;      }      break;      //fallthrough    case KSTATE_START:      putEvent(EVT_KEY_FIRST(enuk));      inactivity.counter = 0;      m_state   = KSTATE_RPTDELAY;      m_cnt     = 0;      break;    case KSTATE_RPTDELAY: // gruvin: delay state before first key repeat      if(m_cnt == KEY_LONG_DELAY) putEvent(EVT_KEY_LONG(enuk));      if (m_cnt == 40) {        m_state = 16;        m_cnt = 0;      }      break;    case 16:    case 8:    case 4:    case 2:      if(m_cnt >= 48)  { //3 6 12 24 48 pulses in every 480ms        m_state >>= 1;        m_cnt     = 0;      }      // no break    case 1:      if( (m_cnt & (m_state-1)) == 0)  putEvent(EVT_KEY_REPT(enuk));      break;    case KSTATE_PAUSE: //pause      if(m_cnt >= 64)      {        m_state = 8;        m_cnt   = 0;      }      break;    case KSTATE_KILLED: //killed      break;  }
开发者ID:3drobotics,项目名称:3drtx,代码行数:62,


示例30: EVT_KEY_BREAK

 { "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 }, { "ROUND", ROUND }, { "LCD_W", LCD_W }, { "LCD_H", LCD_H }, { "PLAY_NOW", PLAY_NOW }, { "PLAY_BACKGROUND", PLAY_BACKGROUND }, { "TIMEHOUR", TIMEHOUR },
开发者ID:ChaosPower,项目名称:opentx,代码行数:31,



注:本文中的EVT_KEY_FIRST函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ EVT_KEY_LONG函数代码示例
C++ EVPerr函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。