void radioStress0_thread(void* arg) { message_t* m = (message_t*)arg; for(;;) { if(TOS_NODE_ID == 0) { amRadioReceive(m, 2000, 20); led0Toggle(); } else { if(amRadioSend(!TOS_NODE_ID, m, 0, 20) == SUCCESS) led0Toggle(); } } }
void blink0_thread(void* arg) { if(blink0_count++ == 0) led0Toggle(); tosthread_create(&thread_handler, blink1_thread, NULL, 100); tosthread_create(&thread_handler, blink2_thread, NULL, 100); tosthread_create(&thread_handler, blink0_thread, NULL, 100); }
void send_thread(void* arg) { for(;;) { barrier_block(&send_barrier); barrier_reset(&send_barrier, NUM_SENSORS + 1); if(amRadioSend(AM_BROADCAST_ADDR, &send_msg, sizeof(sensor_data_t), AM_SENSOR_DATA_MSG) == SUCCESS) { sensor_data->seq_no++; led0Toggle(); } //tosthread_sleep(SAMPLING_PERIOD); barrier_block(&sense_barrier); barrier_reset(&sense_barrier, NUM_SENSORS + 1); } }
// -------------------------------------------- // -------------------------------------------- void appMain(void) { serialEnableRX(PRINTF_SERIAL_ID); // serialSetReceiveHandle(PRINTF_SERIAL_ID, onSerRecv); serialSetPacketReceiveHandle(PRINTF_SERIAL_ID, onSerRecv, serBuffer, SER_BUF_SIZE); radioSetReceiveHandle(onRadioRecv); radioOn(); mdelay(200); // Send restart message to the phaser send_ctrl_msg(MSG_ACT_RESTART); while (1) { mdelay(RATE_DELAY); led0Toggle(); } }