X-Git-Url: https://git.karo-electronics.de/?p=oswald.git;a=blobdiff_plain;f=ui%2Foswald_main.c;h=02396d4bddab2205c9077dd4cb3097eabacb0fa1;hp=e080a7130aee0a0716809031ac66f12ac0ad8d30;hb=b83e605bc8ba69950a84b6ed268f0c196f68762c;hpb=5d0ff002cee35d109f4a60eff415b2db556fb8f4 diff --git a/ui/oswald_main.c b/ui/oswald_main.c index e080a71..02396d4 100644 --- a/ui/oswald_main.c +++ b/ui/oswald_main.c @@ -18,6 +18,8 @@ watch_state OswaldState; watch_screen OswaldScreens[SCREENS_END]; power_state OswaldPowerState; u8t backlight_safety_off = 0; +char MainMessage[148]; + void oswald_change_to_screen(screen_number screen_id) { @@ -152,6 +154,26 @@ void oswald_handle_ambientlight_event(u8t light_level) OswaldState.screen->event_func(EVENT_AMBIENTLIGHT_UPDATE, &light_level); } +void oswald_handle_comm_input(uint16_t mlen, const void *mdat) +{ + char *icmd = (char *) mdat; + + if (icmd[0] == '$') { + if (strncmp(icmd, "$GRT", 4) == 0) { // get current RTC + char rtime[16]; + snprintf(rtime, 10, "%02d%02d%02d\n", OswaldClk.hour, OswaldClk.minute, OswaldClk.second); + hal_bluetooth_send_data(rtime, strlen(rtime)); + } else if (strncmp(icmd, "$MSG", 4) == 0) { // message on main screen + char *msg = (icmd+4); + mlen -= 4; + memset(MainMessage, 0, 148); + strncpy(MainMessage, msg, (mlen > 147) ? 147 : mlen); + } else if (strncmp(icmd, "$MCL", 4) == 0) { // clear message + memset(MainMessage, 0, 148); + } + } +} + void oswald_init(void) { OswaldScreens[IDLE_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_ONE_SEC_TIMER; @@ -172,6 +194,9 @@ void oswald_init(void) 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;