void status_ad(void) { top_off_status_display(); menu_next(UP); menu_prev(DOWN); menu_submenu_next(SET); menu_top(ESC); }
void status_temp(void) { ui_temp_status_display(); menu_next(UP); menu_prev(DOWN); menu_submenu_next(SET); menu_top(ESC); }
void status_outputs(void) { ui_outputs_status_display(); menu_next(UP); menu_prev(DOWN); menu_submenu_next(SET); menu_top(ESC); }
void status_rotate (void) { uint8_t curRotate; curRotate = seconds/10; if (curRotate != oldRotate) { hd44780_clear(); oldRotate = curRotate; } switch (seconds/10) { case 0: case 3: ui_outputs_status_display(); break; case 1: case 4: top_off_status_display(); break; default: ui_temp_status_display(); break; } menu_next(UP); menu_prev(DOWN); menu_submenu_next(SET); }
void ui_menu_0(void) { PGM_P p; hd44780_outdata(menu_menuid() + 0x30); memcpy_P(&p, &MENU0_STRS[menu_menuid()], sizeof(PGM_P)); hd44780_outstrn_P(p); menu_next(UP); menu_prev(DOWN); menu_top(ESC); menu_submenu_next(SET); }
/** * Navigate state. * Navigates the menu structure using the following buttons: * - up => go to previous item * - down => go to next item * - left => go to parent item * - right => go to child item */ static QState mmi_navigate(struct mmi_ao *me) { switch (Q_SIG(me)) { case Q_ENTRY_SIG: update_screen(me); return Q_HANDLED(); case Q_EXIT_SIG: return Q_HANDLED(); case SIG_ENCODER: switch (menu_cur->typ) { case MENU_TYP_PARAM: if (modify_param(menu_cur->param, Q_PAR(me), me->shift)) { print_param(menu_cur->param); if (menu_cur->cmd != CMD_NONE) QActive_post((QActive *) me, SIG_MMI_CMD, menu_cur->cmd); } break; default: break; } return Q_HANDLED(); case SIG_MMI_CMD: return execute_cmd(me, Q_PAR(me)); case SIG_MMI_SHOW_MSG: return Q_TRAN(mmi_show_msg); case SIG_KEY_PRESS: switch (Q_PAR(me)) { case KEY_UP: // Go to previous item if (menu_prev()) update_screen(me); break; case KEY_DOWN: // Go to next item if (menu_next()) update_screen(me); break; case KEY_LEFT: // Go to parent item if (menu_parent()) update_screen(me); break; case KEY_RIGHT: // Go to sub item if (menu_sub()) update_screen(me); break; case KEY_ENTER: me->shift = 1; switch (menu_cur->typ) { case MENU_TYP_CMD: // Execute command if (menu_cur->cmd) QActive_post((QActive *) me, SIG_MMI_CMD, menu_cur->cmd); break; case MENU_TYP_SUB: // Go to sub item if (menu_sub()) update_screen(me); break; default: break; } break; } return Q_HANDLED(); case SIG_KEY_RELEASE: switch (Q_PAR(me)) { case KEY_ENTER: me->shift = 0; default: break; } return Q_HANDLED(); case SIG_PROG_START: return Q_TRAN(mmi_busy); break; } return Q_SUPER(&QHsm_top); }