/*---------------------------------------------------------------------------*/ static void init(void) { radio_is_on = 0; PT_INIT(&pt); #if NURTIMER rtimer_setup(&rt, RTIMER_HARD, (void (*)(struct rtimer *, void *, int status))powercycle, NULL); rtimer_schedule(&rt, CYCLE_TIME, 1); #else rtimer_set(&rt, RTIMER_NOW() + CYCLE_TIME, 1, (void (*)(struct rtimer *, void *))powercycle, NULL); #endif contikimac_is_on = 1; #if WITH_PHASE_OPTIMIZATION phase_init(&phase_list); #endif /* WITH_PHASE_OPTIMIZATION */ #if CONTIKIMAC_CONF_ANNOUNCEMENTS announcement_register_listen_callback(listen_callback); ctimer_set(&announcement_cycle_ctimer, ANNOUNCEMENT_TIME, cycle_announcement, NULL); #endif /* CONTIKIMAC_CONF_ANNOUNCEMENTS */ }
/*---------------------------------------------------------------------------*/ static void init(void) { restart_dutycycle(random_rand() % OFF_TIME); lpp_is_on = 1; announcement_register_listen_callback(listen_callback); memb_init(&queued_packets_memb); list_init(queued_packets_list); list_init(pending_packets_list); }
/*---------------------------------------------------------------------------*/ const struct mac_driver * lpp_init(const struct radio_driver *d) { radio = d; radio->set_receive_function(input_packet); restart_dutycycle(random_rand() % OFF_TIME); lpp_is_on = 1; announcement_register_listen_callback(listen_callback); memb_init(&queued_packets_memb); list_init(queued_packets_list); list_init(pending_packets_list); return &lpp_driver; }
/*---------------------------------------------------------------------------*/ static void init(void) { radio_is_on = 0; waiting_for_packet = 0; PT_INIT(&pt); rtimer_set(&rt, RTIMER_NOW() + xmac_config.off_time, 1, (void (*)(struct rtimer *, void *))powercycle, NULL); xmac_is_on = 1; #if WITH_ENCOUNTER_OPTIMIZATION list_init(encounter_list); memb_init(&encounter_memb); #endif /* WITH_ENCOUNTER_OPTIMIZATION */ #if XMAC_CONF_ANNOUNCEMENTS announcement_register_listen_callback(listen_callback); ctimer_set(&announcement_cycle_ctimer, ANNOUNCEMENT_TIME, cycle_announcement, NULL); #endif /* XMAC_CONF_ANNOUNCEMENTS */ }
/*---------------------------------------------------------------------------*/ void cxmac_init(void) { radio_is_on = 0; waiting_for_packet = 0; PT_INIT(&pt); /* rtimer_set(&rt, RTIMER_NOW() + cxmac_config.off_time, 1, (void (*)(struct rtimer *, void *))powercycle, NULL);*/ cxmac_is_on = 1; #if WITH_ENCOUNTER_OPTIMIZATION list_init(encounter_list); memb_init(&encounter_memb); #endif /* WITH_ENCOUNTER_OPTIMIZATION */ #if CXMAC_CONF_ANNOUNCEMENTS announcement_register_listen_callback(listen_callback); ctimer_set(&announcement_cycle_ctimer, ANNOUNCEMENT_TIME, cycle_announcement, NULL); #endif /* CXMAC_CONF_ANNOUNCEMENTS */ CSCHEDULE_POWERCYCLE(DEFAULT_OFF_TIME); }