44 #include "collect-view.h" 
   50 collect_view_construct_message(
struct collect_view_data_msg *msg,
 
   51                                const linkaddr_t *parent,
 
   53                                uint16_t current_rtmetric,
 
   54                                uint16_t num_neighbors,
 
   55                                uint16_t beacon_interval)
 
   57   static unsigned long last_cpu, last_lpm, last_transmit, last_listen;
 
   58   unsigned long cpu, lpm, transmit, listen;
 
   61   msg->len = 
sizeof(
struct collect_view_data_msg) / sizeof(uint16_t);
 
   63 #if TIMESYNCH_CONF_ENABLED 
   66   msg->timesynch_time = 0;
 
   71   cpu = energest_type_time(ENERGEST_TYPE_CPU) - last_cpu;
 
   72   lpm = energest_type_time(ENERGEST_TYPE_LPM) - last_lpm;
 
   73   transmit = energest_type_time(ENERGEST_TYPE_TRANSMIT) - last_transmit;
 
   74   listen = energest_type_time(ENERGEST_TYPE_LISTEN) - last_listen;
 
   78   while(cpu >= 65536ul || lpm >= 65536ul ||
 
   79         transmit >= 65536ul || listen >= 65536ul) {
 
   88   msg->transmit = transmit;
 
   91   last_cpu = energest_type_time(ENERGEST_TYPE_CPU);
 
   92   last_lpm = energest_type_time(ENERGEST_TYPE_LPM);
 
   93   last_transmit = energest_type_time(ENERGEST_TYPE_TRANSMIT);
 
   94   last_listen = energest_type_time(ENERGEST_TYPE_LISTEN);
 
   96   memcpy(&msg->parent, &parent->u8[LINKADDR_SIZE - 2], 2);
 
   97   msg->parent_etx = parent_etx;
 
   98   msg->current_rtmetric = current_rtmetric;
 
   99   msg->num_neighbors = num_neighbors;
 
  100   msg->beacon_interval = beacon_interval;
 
  102   memset(msg->sensors, 0, 
sizeof(msg->sensors));
 
  103   collect_view_arch_read_sensors(msg);
 
    Header file for a simple time synchronization mechanism  
 
    Header file for the Rime stack  
 
rtimer_clock_t timesynch_time(void)
Get the current time-synchronized time. 
 
CCIF clock_time_t clock_time(void)
Get the current clock time. 
 
    Header file for the Contiki radio neighborhood management