X-Git-Url: https://git.karo-electronics.de/?p=oswald.git;a=blobdiff_plain;f=ui%2Foswald_main.c;h=2f8583ad104b34c24d12f944afb26f4cb9beb926;hp=f26603b9e4a085c9947d659cfef4a5f2d21be5e8;hb=1b5790095c23913d02531727e47b79af3568e0b1;hpb=3e320aaa4175a0ed469581f1dea2eac35b390878 diff --git a/ui/oswald_main.c b/ui/oswald_main.c index f26603b..2f8583a 100644 --- a/ui/oswald_main.c +++ b/ui/oswald_main.c @@ -116,11 +116,15 @@ void oswald_handle_button_press(watch_button button) break; } OswaldState.screen->event_func(EVENT_SCREEN_DESTROY, NULL); +#if 0 // next screen OswaldState.screen_id++; if (OswaldState.screen_id >= LAST_SCREEN) { OswaldState.screen_id = IDLE_SCREEN; }; +#else + OswaldState.screen_id = IDLE_SCREEN; +#endif OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); break; @@ -170,6 +174,9 @@ void oswald_handle_comm_input(uint16_t mlen, const void *mdat) snprintf(rtime, 16, "#RTC%02d%02d%02d\n", OswaldClk.hour, OswaldClk.minute, OswaldClk.second); hal_bluetooth_send_data(rtime, strlen(rtime)); } else if (strncmp(icmd, "$SRT", 4) == 0) { // set current RTC + char rtime[16]; + snprintf(rtime, 16, "#USP\n"); + hal_bluetooth_send_data(rtime, strlen(rtime)); } else if (strncmp(icmd, "$MSG", 4) == 0) { // message on main screen char *msg = (icmd+4); mlen -= 4; @@ -181,6 +188,10 @@ void oswald_handle_comm_input(uint16_t mlen, const void *mdat) char rtime[16]; snprintf(rtime, 16, "#BAT%d,%d\n", OswaldPowerState.charge_state, OswaldPowerState.percent); hal_bluetooth_send_data(rtime, strlen(rtime)); + } else if (strncmp(icmd, "$GAL", 4) == 0) { // get ambient light value + char rtime[16]; + snprintf(rtime, 16, "#GAL%d\n", hal_amblight_get_val()); + hal_bluetooth_send_data(rtime, strlen(rtime)); } } } @@ -190,30 +201,39 @@ void oswald_init(void) OswaldScreens[IDLE_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_ONE_SEC_TIMER; OswaldScreens[IDLE_SCREEN].event_func = idle_handle_events; - OswaldScreens[ACCEL_DISPLAY_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_ACCEL_UPDATE; - OswaldScreens[ACCEL_DISPLAY_SCREEN].event_func = accel_handle_events; - - OswaldScreens[DATETIME_SETTING_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; - OswaldScreens[DATETIME_SETTING_SCREEN].event_func = datetime_setup_events; + OswaldScreens[MAIN_MENU_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_ONE_SEC_TIMER; + OswaldScreens[MAIN_MENU_SCREEN].event_func = main_menu_handle_events; OswaldScreens[ALARM_SETUP_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; OswaldScreens[ALARM_SETUP_SCREEN].event_func = alarm_setup_events; - OswaldScreens[MENU_TEST_SCREEN].event_mask = EVENT_USER_BUTTONS; - OswaldScreens[MENU_TEST_SCREEN].event_func = test_menu_handle_events; - OswaldScreens[STOP_WATCH_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_CS_TIMER; OswaldScreens[STOP_WATCH_SCREEN].event_func = stop_watch_handle_events; OswaldScreens[BLUETOOTH_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; OswaldScreens[BLUETOOTH_SCREEN].event_func = bluetooth_screen_events; - OswaldScreens[ALARM_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; - OswaldScreens[ALARM_SCREEN].event_func = alarm_handle_events; + OswaldScreens[ACCEL_DISPLAY_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_ACCEL_UPDATE; + OswaldScreens[ACCEL_DISPLAY_SCREEN].event_func = accel_handle_events; + + OswaldScreens[MESSAGES_SCREEN].event_mask = EVENT_USER_BUTTONS; + OswaldScreens[MESSAGES_SCREEN].event_func = messages_screen_handle_events; + + OswaldScreens[MESSAGE_SCREEN].event_mask = EVENT_USER_BUTTONS; + OswaldScreens[MESSAGE_SCREEN].event_func = message_screen_handle_events; OswaldScreens[INFO_SCREEN].event_mask = 0x00; // this one does not consume any events OswaldScreens[INFO_SCREEN].event_func = info_screen_handle_events; + OswaldScreens[DATETIME_SETTING_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; + OswaldScreens[DATETIME_SETTING_SCREEN].event_func = datetime_setup_events; + + OswaldScreens[MENU_TEST_SCREEN].event_mask = EVENT_USER_BUTTONS; + OswaldScreens[MENU_TEST_SCREEN].event_func = test_menu_handle_events; + + OswaldScreens[ALARM_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; + OswaldScreens[ALARM_SCREEN].event_func = alarm_handle_events; + OswaldState.screen_id = IDLE_SCREEN; OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; @@ -224,6 +244,5 @@ void oswald_init(void) OswaldAlarm.minute = 0; OswaldAlarm.wday = 0x00; - // strcpy(MainMessage, "So koennte dann eine Nachricht aussehen. Samt Text mit Unterlaengen. Und dies ist dann die letzte Zeile und mehr Text als paßt."); }