Dear Urs,

This is very strange. Can you program a second IRIS mote with the
apps/tests/rf230/RF230Sniffer program to record all communications and
dump that to a PC? Just upload it, connect it to a PC and on the PC
run the java net.tinyos.util.DiagMsg command? You can specify the
communication port in the usual format with -comm <source>. This will
dump all traffic to the console together with microsecond precision
timestamps.

Would be nice to compare the message traces of the 4 setups.

Best,
Miklos

On Wed, Apr 22, 2009 at 3:18 PM, Urs Hunkeler <[email protected]> wrote:
> Hi,
>
> I have written a very simple test app to verify the proper operation of
> the acknowledgment mechanism in TinyOS (see below). The program running
> on a mote with an ID > 0 sends every second a packet to the mote 0 and
> toggles LED 0. If it receives an Ack, it also toggles LED 1. It appears
> that:
>
> TelosB -> TelosB: ack received
> TelosB -> Iris  : ack received
> Iris   -> Iris  : ack received
>
> But:
> Iris   -> TelosB: NO ack
>
> Is there an incompatibility between the two chips? Any other known
> issues? Ideas on how to solve this problem?
>
> Cheers,
> Urs
>
> -------------------------------------
> #include "test.h"
>
> module TestC {
>     uses interface Leds;
>     uses interface Boot;
>     uses interface SplitControl as RadioControl;
>     uses interface AMSend as Send;
>     uses interface Timer<TMilli> as Timer;
>     uses interface PacketAcknowledgements as Ack;
> }
> implementation {
>     message_t rpacket;
>
>     event void Boot.booted() {
>         call RadioControl.start();
>     }
>
>     event void Timer.fired() {
>         error_t error;
>         TestMsg* msg;
>
>         call Leds.led0Toggle();
>
>         msg = (TestMsg*)call Send.getPayload(&rpacket, sizeof(TestMsg));
>         if(msg == NULL) {
>             call Leds.led2On();
>             return;
>         }
>
>         msg->data = TOS_NODE_ID;
>
>         error = call Ack.requestAck(&rpacket);
>         if(error != SUCCESS) {
>             call Leds.led2On();
>             return;
>         }
>
>         error = call Send.send(0, &rpacket, sizeof(TestMsg));
>         if(error != SUCCESS) {
>             call Leds.led2On();
>         }
>     }
>
>     event void RadioControl.startDone(error_t error) {
>         if(error == SUCCESS) {
>             if(TOS_NODE_ID > 0) {
>                 call Timer.startPeriodic(1024);
>             }
>         } else {
>             call Leds.led2On();
>         }
>     }
>
>     event void Send.sendDone(message_t* msg, error_t error) {
>         if(error != SUCCESS) {
>             call Leds.led2On();
>         }
>         if(call Ack.wasAcked(msg)) {
>             call Leds.led1Toggle();
>         }
>     }
>
>     event void RadioControl.stopDone(error_t error) {
>         if(error != SUCCESS) {
>             call Leds.led2On();
>         }
>     }
> }
> -------------------------------------
>
> _______________________________________________
> Tinyos-help mailing list
> [email protected]
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>

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

Reply via email to