/*---------------------------------------------------------------------------*/ PROCESS_THREAD(cc2420_process, ev, data) { PROCESS_BEGIN(); PRINTF("cc2420_process: started\n"); while(1) { PROCESS_YIELD_UNTIL(ev == PROCESS_EVENT_POLL); #if CC2420_TIMETABLE_PROFILING TIMETABLE_TIMESTAMP(cc2420_timetable, "poll"); #endif /* CC2420_TIMETABLE_PROFILING */ if(receiver_callback != NULL) { PRINTF("cc2420_process: calling receiver callback\n"); receiver_callback(&cc2420_driver); #if CC2420_TIMETABLE_PROFILING TIMETABLE_TIMESTAMP(cc2420_timetable, "end"); timetable_aggregate_compute_detailed(&aggregate_time, &cc2420_timetable); timetable_clear(&cc2420_timetable); #endif /* CC2420_TIMETABLE_PROFILING */ } else { PRINTF("cc2420_process not receiving function\n"); flushrx(); } } PROCESS_END(); }
/*---------------------------------------------------------------------------*/ PROCESS_THREAD(cc2420_process, ev, data) { int len; PROCESS_BEGIN(); PRINTF("cc2420_process: started\n"); while(1) { PROCESS_YIELD_UNTIL(ev == PROCESS_EVENT_POLL); #if CC2420_TIMETABLE_PROFILING TIMETABLE_TIMESTAMP(cc2420_timetable, "poll"); #endif /* CC2420_TIMETABLE_PROFILING */ PRINTF("cc2420_process: calling receiver callback\n"); packetbuf_clear(); packetbuf_set_attr(PACKETBUF_ATTR_TIMESTAMP, last_packet_timestamp); len = cc2420_read(packetbuf_dataptr(), PACKETBUF_SIZE); packetbuf_set_datalen(len); NETSTACK_RDC.input(); #if CC2420_TIMETABLE_PROFILING TIMETABLE_TIMESTAMP(cc2420_timetable, "end"); timetable_aggregate_compute_detailed(&aggregate_time, &cc2420_timetable); timetable_clear(&cc2420_timetable); #endif /* CC2420_TIMETABLE_PROFILING */ } PROCESS_END(); }
/* Process to handle input packets * Receive interrupts cause this process to be polled * It calls the core MAC layer which calls rf230_read to get the packet */ PROCESS_THREAD(nrf24l01_process, ev, data) { PROCESS_BEGIN(); while(1) { PROCESS_YIELD_UNTIL(ev == PROCESS_EVENT_POLL); #if RF230_TIMETABLE_PROFILING TIMETABLE_TIMESTAMP(rf230_timetable, "poll"); #endif /* RF230_TIMETABLE_PROFILING */ if(receiver_callback != NULL) { receiver_callback(&nrf24l01_driver); #if RF230_TIMETABLE_PROFILING TIMETABLE_TIMESTAMP(rf230_timetable, "end"); timetable_aggregate_compute_detailed(&aggregate_time, &rf230_timetable); timetable_clear(&rf230_timetable); #endif /* RF230_TIMETABLE_PROFILING */ } else { PRINTF("nrf24l01_process not receiving function\n"); //flushrx(); } } PROCESS_END(); }