void irkit_http_loop() { #ifdef USE_INTERNET // long poll if (TIMER_FIRED(polling_timer)) { TIMER_STOP(polling_timer); if (TIMER_RUNNING(suspend_polling_timer)) { // suspend GET /m for a while if we have received a POST /messages request from client // client is in wifi, we can ignore our server for a while TIMER_START(polling_timer, SUSPEND_GET_MESSAGES_INTERVAL); } else { int8_t result = irkit_httpclient_get_messages(); if ( result < 0 ) { HTTPLOG_PRINTLN("!E3"); // maybe time cures GS? (no it doesn't, let's hardware reset, software reset doesn't work here) // don't software reset AVR, because that cuts off serial logging (for debug purpose only) wifi_hardware_reset(); } else { polling_cid = result; } } } if (TIMER_FIRED(suspend_polling_timer)) { TIMER_STOP(suspend_polling_timer); } #endif }
void temp_timer_proc(void *arg) { if (!TIMER_RUNNING(temp_timer)) return; if (TIMER_EXPIRED(temp_timer)) { temp_showtemp(0); TIMER_SET(temp_timer,2*CFE_HZ); } }
// careful, called from ISR void GSwifi::onTimer() { for (int i=0; i<16; i++) { if ( ! cidIsRequest(i) && TIMER_RUNNING(timers_[i]) ) { TIMER_COUNTDOWN(timers_[i]); } } TIMER_TICK( timeout_timer_ ); }