void run_commands(void) { if (send_now) send_response(); if (send_hk) send_housekeeping(); if (send_data) send_sensor_data(); if (msg_received) send_coms_packet(); if (read_response) send_read_response(); if (write_response) send_write_response(); if (set_sens_h) set_sensor_high(); if (set_sens_l) set_sensor_low(); if (set_varf) set_var(); if (new_tm_msgf) receive_tm_msg(); if (tc_packet_readyf) send_pus_packet_tc(); if (event_readyf) send_event(); if (ask_alive) send_ask_alive(); if (enter_low_powerf) enter_low_power(); if (exit_low_powerf) exit_low_power(); if (enter_take_overf) enter_take_over(); if (exit_take_overf) exit_take_over(); if (pause_operationsf) pause_operations(); if (resume_operationsf) resume_operations(); return; }
void network_application() { draw_background(); gfx_draw_filled_rect(5, 26, 310, 182, GFX_COLOR(20, 20, 20)); if(!wifi_ready && wifi_error) { gfx_draw_string_aligned(SYMFONT_WIFI, gfx_get_width() / 2, 120, &symbol_sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_RED, TEXT_POS_CENTER_X, TEXT_ALIGN_CENTER); gfx_draw_string_aligned("Not Connected", gfx_get_width() / 2, 155, &sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_RED, TEXT_POS_CENTER_X, TEXT_ALIGN_CENTER); } else { gfx_draw_string_aligned(SYMFONT_WIFI, gfx_get_width() / 2, 120, &symbol_sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_GREEN, TEXT_POS_CENTER_X, TEXT_ALIGN_CENTER); gfx_draw_string_aligned("Connected", gfx_get_width() / 2, 155, &sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_GREEN, TEXT_POS_CENTER_X, TEXT_ALIGN_CENTER); } uint8_t ram_buf[AT45DBX_SECTOR_SIZE]; at45dbx_read_sector_open(0x0007); at45dbx_read_sector_to_ram(ram_buf); at45dbx_read_close(); char mac_string[128]; snprintf(mac_string, sizeof(mac_string), "MAC: %s", ram_buf); gfx_draw_string_aligned(mac_string, 11, 27, &small_sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_WHITE, TEXT_POS_LEFT, TEXT_ALIGN_LEFT); if (wifi_error) { gfx_draw_string_aligned(esp_error, 11, 47, &small_sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_WHITE, TEXT_POS_LEFT, TEXT_ALIGN_LEFT); } struct keyboard_event input; while(mma8451_orientation() != 6) { esp8266_check_buffer(); keyboard_get_key_state(&input); if (input.type == KEYBOARD_RELEASE) { if (input.keycode == KEYBOARD_B) { break; } } if(mma8451_clear_interrupt() && is_low_power()) { exit_low_power(); } } }
void schedule_application() { unsigned long now = rtc_get_time(); if (now < 1445990399) { // day 1 } else if (now > 1445990399 && now < 1446076799) { // day 2 } else if (now > 1446076799 && now < 1446163199) { // day 3 } else { // day 4 } uint16_t max_event[] = {5, 26, 25, 18, 26, 13}; //write_data(); //gfx_draw_filled_rect(0, 0, gfx_get_width(), gfx_get_height(), GFX_COLOR_BLACK); draw_background(); //gfx_draw_filled_rect(0, 0, 320, 182, GFX_COLOR(20, 20, 20)); draw_time(); // gfx_draw_string_aligned("Schedule - Keynotes", 11, 2, &sysfont, GFX_COLOR_BLACK, GFX_COLOR_WHITE, TEXT_POS_LEFT, TEXT_ALIGN_LEFT); // gfx_draw_string_aligned("Schedule - Track 1", 11, 2, &sysfont, GFX_COLOR_BLACK, GFX_COLOR_WHITE, TEXT_POS_LEFT, TEXT_ALIGN_LEFT); // gfx_draw_string_aligned("Schedule - Track 2", 11, 2, &sysfont, GFX_COLOR_BLACK, GFX_COLOR_WHITE, TEXT_POS_LEFT, TEXT_ALIGN_LEFT); // gfx_draw_string_aligned("Schedule - Track 3", 11, 2, &sysfont, GFX_COLOR_BLACK, GFX_COLOR_WHITE, TEXT_POS_LEFT, TEXT_ALIGN_LEFT); // gfx_draw_string_aligned("Schedule - Track 4", 11, 2, &sysfont, GFX_COLOR_BLACK, GFX_COLOR_WHITE, TEXT_POS_LEFT, TEXT_ALIGN_LEFT); event_index = 0; event_track = 0; draw_event(); // Presentors // Location and time // Description struct keyboard_event input; while(mma8451_orientation() != 6) { esp8266_check_buffer(); keyboard_get_key_state(&input); if (input.type == KEYBOARD_RELEASE) { if (input.keycode == KEYBOARD_B) { break; } else if (input.keycode == KEYBOARD_A) { } else if (input.keycode == KEYBOARD_UP) { event_index--; if (event_index < 0) { event_index = 0; } draw_event(); } else if (input.keycode == KEYBOARD_DOWN) { event_index++; if (event_index > max_event[event_track]) { event_index = max_event[event_track]; } draw_event(); } else if (input.keycode == KEYBOARD_RIGHT) { event_index = 0; event_track++; if (event_track > 5) { event_track = 0; } draw_event(); } else if (input.keycode == KEYBOARD_LEFT) { event_index = 0; event_track--; if (event_track < 0) { event_track = 5; } draw_event(); } } if(mma8451_clear_interrupt() && is_low_power()) { exit_low_power(); } } }
void battery_application() { draw_background(); gfx_draw_string_aligned("Power Info", gfx_get_width() / 2, 2, &sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_WHITE, TEXT_POS_CENTER_X, TEXT_ALIGN_LEFT); uint8_t battery = max1704x_bat(); char batlvl[5]; if (battery > 100) { battery = 100; } //battery = 19; uint16_t x = 75; uint16_t y = 40; gfx_draw_rect(x, y, 164, 54, GFX_COLOR_WHITE); gfx_draw_filled_rect(x+164, y+15, 3, 20, GFX_COLOR_WHITE); if (battery < 20) { gfx_draw_filled_rect(x+2, y+2, battery/6 * 10, 50, GFX_COLOR_RED); } else { gfx_draw_filled_rect(x+2, y+2, battery/6 * 10, 50, GFX_COLOR_GREEN); } snprintf(batlvl, sizeof(batlvl), "%d%%", battery); if (battery > 20) { gfx_draw_string_aligned(batlvl, gfx_get_width() /2, 50, &large_sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_WHITE, TEXT_POS_CENTER_X, TEXT_ALIGN_LEFT); } else { gfx_draw_string_aligned(batlvl, gfx_get_width() /2, 50, &large_sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_WHITE, TEXT_POS_CENTER_X, TEXT_ALIGN_LEFT); } char atime[32]; snprintf(atime, sizeof(atime), "Seconds Awake: %lu", get_time_awake()); gfx_draw_string_aligned(atime, 70, 100, &sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_WHITE, TEXT_POS_LEFT, TEXT_ALIGN_LEFT); char stime[32]; snprintf(stime, sizeof(stime), "Seconds Sleeping: %lu", get_time_sleep()); gfx_draw_string_aligned(stime, 70, 120, &sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_WHITE, TEXT_POS_LEFT, TEXT_ALIGN_LEFT); gfx_draw_filled_circle(gfx_get_width() /2, 80+80+10+10, 25, GFX_COLOR_WHITE, GFX_WHOLE); gfx_draw_string_aligned(SYMFONT_MOON, gfx_get_width() /2, 152+10, &symbol_sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR(200, 101, 18), TEXT_POS_CENTER_X, TEXT_ALIGN_CENTER); gfx_draw_string_aligned("Enter Sleep Mode", gfx_get_width() / 2, 152+15+30+15, &sysfont, GFX_COLOR_TRANSPARENT, GFX_COLOR_WHITE, TEXT_POS_CENTER_X, TEXT_ALIGN_LEFT); struct keyboard_event input; while(mma8451_orientation() != 6) { esp8266_check_buffer(); if(mma8451_clear_interrupt() && is_low_power()) { exit_low_power(); } keyboard_get_key_state(&input); if (input.type == KEYBOARD_RELEASE) { if (input.keycode == KEYBOARD_B) { break; } else if (input.keycode == KEYBOARD_A) { esp8266_enter_standby(); enter_low_power(); break; } } } }