/* * This method broadcast a radio message over the radio * * @param msg The packet that is sent over the radio */ error_t sendRadioMsg(message_t* msg) { am_addr_t source = amRadioGetSource(msg); uint8_t len = radioGetPayloadLength(msg); radioClear(msg); amRadioSetSource(msg, source); return amRadioSend(AM_BROADCAST_ADDR, msg, len, AM_BLINKTORADIOMSG); }
void radioStress2_thread(void* arg) { message_t* m = (message_t*)arg; for(;;) { if(TOS_NODE_ID == 0) { amRadioReceive(m, 2000, 22); led2Toggle(); } else { if(amRadioSend(!TOS_NODE_ID, m, 0, 22) == SUCCESS) led2Toggle(); } } }
void bounceThread1_start(void *arg) { message_t msg1; for(;;) { while (amRadioSend(AM_BROADCAST_ADDR, &msg1, 0, 21) == EBUSY) {} led1Off(); if(amRadioReceive(&msg1, 5000, 21) == SUCCESS) { led1On(); } tosthread_sleep(500); } }
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); } }