int app_batt_alert_timer_handler(ke_msg_id_t const msgid, void const *param, ke_task_id_t const dest_id, ke_task_id_t const src_id) { //Read LED GPIO state if(bat_lvl_alert_used) { if (bat_led_state) { GPIO_SetInactive( bat_led_port, bat_led_pin); bat_led_state = 0; app_timer_set(APP_BATT_ALERT_TIMER, dest_id, 20); #ifdef CUSTOM_BATTERY_LEVEL_MEASUREMENTS___BOOST_MODE_CONFIGURATION if (app_get_sleep_mode()) app_force_active_mode(); // prevent sleep only if enabled #endif //CUSTOM_BATTERY_LEVEL_MEASUREMENTS___BOOST_MODE_CONFIGURATION } else { GPIO_SetActive( bat_led_port, bat_led_pin); bat_led_state = 1; app_timer_set(APP_BATT_ALERT_TIMER, dest_id, 5); #ifdef CUSTOM_BATTERY_LEVEL_MEASUREMENTS___BOOST_MODE_CONFIGURATION app_restore_sleep_mode(); #endif //CUSTOM_BATTERY_LEVEL_MEASUREMENTS___BOOST_MODE_CONFIGURATION } } return (KE_MSG_CONSUMED); }
/** **************************************************************************************** * @brief Sets-up the LEDS to indicate connection astablished status * * @param None * * @return void **************************************************************************************** */ void leds_set_connection_established() { if (!(GetWord16(SYS_STAT_REG) & DBG_IS_UP)) { red_led_off(); green_led_on(); app_timer_set(APP_GREEN_LED_TIMER, TASK_APP, GREEN_ON); if (app_get_sleep_mode()) { app_force_active_mode(); // prevent sleep only if enabled } } }
/** **************************************************************************************** * @brief Block sleep when a LED is up in BOOST mode for the period a LED is on. * * @param None * * @return void **************************************************************************************** */ void leds_block_sleep() { if ((GetBits16(ANA_STATUS_REG, BOOST_SELECTED) == 0x1) && app_get_sleep_mode()) { app_force_active_mode(); // in BOOST mode, prevent sleep only if enabled } }