25 #ifndef LIBMIRA_SLEEP_H_ 26 #define LIBMIRA_SLEEP_H_ 28 #include "sys/process.h" 57 #define mira_deep_sleep(sleep_time) \ 59 mira_prepare_sleep(sleep_time); \ 60 etimer_set(&mira_sleep_timer, (sleep_time)*CLOCK_SECOND); \ 61 PROCESS_YIELD_UNTIL((etimer_expired(&mira_sleep_timer) || (mira_wake_up_from_irq))); \ 62 mira_restore_from_sleep(); \ 104 #define mira_sleepy_node_poll_firmware(firmware_image_id) \ 106 mira_sleepy_node_poll_for_fw(firmware_image_id); \ 107 PROCESS_WAIT_UNTIL(mira_sleepy_node_poll_done()); \ uint8_t mira_sleepy_node_poll_done(void)
Checks if firmware polling is done.
void mira_wake_up_process(void)
Wake up the thread that went to deep sleep.
struct etimer mira_sleep_timer
void mira_prepare_sleep(uint16_t sleep_time)
Prepare for sleep.
uint8_t mira_wake_up_from_irq
void mira_restore_from_sleep(void)
Restore from sleep.
void mira_sleepy_node_poll_for_fw(uint16_t firmware_image_id)
Polls neighbors for new firmware.