47 unsigned long current;
54 ENERGEST_TYPE_LED_GREEN,
55 ENERGEST_TYPE_LED_YELLOW,
56 ENERGEST_TYPE_LED_RED,
57 ENERGEST_TYPE_TRANSMIT,
60 ENERGEST_TYPE_FLASH_READ,
61 ENERGEST_TYPE_FLASH_WRITE,
63 ENERGEST_TYPE_SENSORS,
70 void energest_init(
void);
71 unsigned long energest_type_time(
int type);
72 #ifdef ENERGEST_CONF_LEVELDEVICE_LEVELS
73 unsigned long energest_leveldevice_leveltime(
int powerlevel);
75 void energest_type_set(
int type,
unsigned long value);
76 void energest_flush(
void);
80 extern energest_t energest_total_time[ENERGEST_TYPE_MAX];
81 extern rtimer_clock_t energest_current_time[ENERGEST_TYPE_MAX];
82 extern unsigned char energest_current_mode[ENERGEST_TYPE_MAX];
84 #ifdef ENERGEST_CONF_LEVELDEVICE_LEVELS
85 extern energest_t energest_leveldevice_current_leveltime[ENERGEST_CONF_LEVELDEVICE_LEVELS];
88 #define ENERGEST_ON(type) do { \
90 energest_current_time[type] = RTIMER_NOW(); \
91 energest_current_mode[type] = 1; \
95 #define ENERGEST_OFF(type) if(energest_current_mode[type] != 0) do { \
96 if (RTIMER_NOW() < energest_current_time[type]) energest_total_time[type].current += RTIMER_ARCH_SECOND; \
97 energest_total_time[type].current += (rtimer_clock_t)(RTIMER_NOW() - \
98 energest_current_time[type]); \
99 energest_current_mode[type] = 0; \
102 #define ENERGEST_OFF_LEVEL(type,level) do { \
103 if (RTIMER_NOW() < energest_current_time[type]) energest_total_time[type].current += RTIMER_ARCH_SECOND; \
104 energest_leveldevice_current_leveltime[level].current += (rtimer_clock_t)(RTIMER_NOW() - \
105 energest_current_time[type]); \
106 energest_current_mode[type] = 0; \
109 #define ENERGEST_OFF(type) if(energest_current_mode[type] != 0) do { \
110 energest_total_time[type].current += (rtimer_clock_t)(RTIMER_NOW() - \
111 energest_current_time[type]); \
112 energest_current_mode[type] = 0; \
115 #define ENERGEST_OFF_LEVEL(type,level) do { \
116 energest_leveldevice_current_leveltime[level].current += (rtimer_clock_t)(RTIMER_NOW() - \
117 energest_current_time[type]); \
118 energest_current_mode[type] = 0; \
124 #define ENERGEST_ON(type) do { } while(0)
125 #define ENERGEST_OFF(type) do { } while(0)
126 #define ENERGEST_OFF_LEVEL(type,level) do { } while(0)
Header file for the real-time timer module.