Hi , Can anyone help me on below question? Is there anything which I am doing wrong ? Plz help.
Thanks. Jenis ________________________________________ From: Modi, Jenis Sent: 08 March 2013 14:40 To: [email protected] Subject: Radio to serial communication on Motelab 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->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)); 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
