Hi Guys,

I have wrote code for radio to serial communication. When I check this code 
manually on motes, it gives me correct data, but when I execute the same code 
on Harvard's motelab - for sender's address , I get "1" instead of different 
sender addresses. Plz help. 

RadioCountToLedsC.nc (Modified original code to make it work for my work)


module RadioCountToLedsC @safe() {
  uses {
    interface Leds;
    interface Boot;
    interface Receive;
    interface AMSend;
    interface Timer<TMilli> as MilliTimer;
    interface SplitControl as AMControl;
    interface Packet;
    interface SplitControl as SerialControl;
    interface AMSend as SerialSend;
    interface AMPacket;
    interface CC2420Packet;
  }
}
implementation {

    message_t packet;
    bool locked;
    uint16_t counter = 0;
    am_addr_t senderAdd;
    int8_t rssiValue=0;

  event void Boot.booted() {
    call AMControl.start();
    call SerialControl.start();
  }

  event void AMControl.startDone(error_t err) {
    if (err == SUCCESS) {
      call MilliTimer.startPeriodic(250);
    }
    else {
      call AMControl.start();
    }
  }
  event void SerialControl.startDone(error_t err) {
    if (err == SUCCESS) {
    //  call MilliTimer.startPeriodic(250);
    }
    else {
      call SerialControl.start();
    }
  }


  event void AMControl.stopDone(error_t err) {
    // do nothing
  }
  event void SerialControl.stopDone(error_t err) {
    // do nothing
  }

  event void MilliTimer.fired() {
        counter++;
        dbg("RadioCountToLedsC", "RadioCountToLedsC: timer fired, counter is 
%hu.\n", counter);
        if (locked) {
                return;
        }
        else {
        radio_count_msg_t* rcm = (radio_count_msg_t*)call 
Packet.getPayload(&packet, sizeof(radio_count_msg_t));

     
        if (rcm == NULL) {
          return;
        }

//      rcm->nodeid = TOS_NODE_ID;
//      rcm->nodeid = TOS_LOCAL_ADDRESS;

//      senderAdd = (am_addr_t) call AMPacket.source(&packet);
//      senderAdd = TOS_NODE_ID;
//        rcm->senderAdd = senderAdd;
//      rcm->senderAdd = TOS_NODE_ID;


        rcm->counter = counter;

        if (call AMSend.send(AM_BROADCAST_ADDR, &packet, 
sizeof(radio_count_msg_t)) == SUCCESS) {
          dbg("RadioCountToLedsC", "RadioCountToLedsC: packet sent.\n", 
counter);             locked = TRUE;
        }
      }
  }

  event message_t* Receive.receive(message_t* bufPtr, 
                                   void* payload, uint8_t len) {
    
        dbg("RadioCountToLedsC", "Received packet of length %hhu.\n", len);
  
        if (len != sizeof(radio_count_msg_t)) {return bufPtr;}
        else {

        
        radio_count_msg_t* rcm1 = (radio_count_msg_t*)call 
Packet.getPayload(&packet, sizeof(radio_count_msg_t));


/*
        if (rcm->counter & 0x1) {
                call Leds.led0On();
        }
        else {
                call Leds.led0Off();
        }
        if (rcm->counter & 0x2) {
                call Leds.led1On();
        }               
        else {
                call Leds.led1Off();
        }
        if (rcm->counter & 0x4) {
                call Leds.led2On();
        }
        else {
                call Leds.led2Off();
        }
*/


        rcm1->senderAdd = (am_addr_t)call AMPacket.source(bufPtr);
        rcm1->rssiValue = call CC2420Packet.getRssi(bufPtr);

        if (call SerialSend.send(AM_BROADCAST_ADDR, &packet, 
sizeof(radio_count_msg_t)) == SUCCESS) {
//              locked = TRUE;
        }       

        return bufPtr;
        }
  }

  event void AMSend.sendDone(message_t* bufPtr, error_t error) {
        if (&packet == bufPtr) {
                locked = FALSE;
        }
  }
  
  event void SerialSend.sendDone(message_t* bufPtr, error_t error) {
   // if (&packet == bufPtr) {
    //  locked = FALSE;
   // }
  }

}


This is what I get data from Motelab :

counter senderAdd       rssiValue       insert_time     motelabMoteID   
motelabSeqNo
0       1       -25     2013-03-07 22:27:11     3       1
0       1       -29     2013-03-07 22:27:11     2       2
0       1       -22     2013-03-07 22:27:11     4       3
1       1       -21     2013-03-07 22:27:11     1       4
1       1       -22     2013-03-07 22:27:11     4       5
1       1       -29     2013-03-07 22:27:11     2       6
1       1       -25     2013-03-07 22:27:11     3       7
2       1       -21     2013-03-07 22:27:11     1       8
2       1       -22     2013-03-07 22:27:11     4       9
2       1       -25     2013-03-07 22:27:11     3       10
2       1       -29     2013-03-07 22:27:11     2       11
3       1       -21     2013-03-07 22:27:11     1       12
3       1       -22     2013-03-07 22:27:11     4       13
3       1       -29     2013-03-07 22:27:11     2       14
3       1       -25     2013-03-07 22:27:11     3       15
4       1       -21     2013-03-07 22:27:11     1       16
4       1       -22     2013-03-07 22:27:11     4       17
4       1       -24     2013-03-07 22:27:11     3       18
4       1       -29     2013-03-07 22:27:12     2       19
5       1       -21     2013-03-07 22:27:12     1       20
5       1       -29     2013-03-07 22:27:12     2       21
5       1       -22     2013-03-07 22:27:12     4       22
5       1       -24     2013-03-07 22:27:12     3       23
6       1       -21     2013-03-07 22:27:12     1       24
6       1       -29     2013-03-07 22:27:12     2       25
6       1       -22     2013-03-07 22:27:12     4       26
6       1       -25     2013-03-07 22:27:12     3       27
7       1       -23     2013-03-07 22:27:12     1       28
7       1       -25     2013-03-07 22:27:12     3       29
7       1       -29     2013-03-07 22:27:12     2       30
7       1       -22     2013-03-07 22:27:12     4       31
8       1       -21     2013-03-07 22:27:12     1       32
8       1       -22     2013-03-07 22:27:12     4       33

Thanks.
Jenis




_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to