/*
 * 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);
}
Example #2
0
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();
    }
  }
}
Example #3
0
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);
  }
}