Hello,

I have a question regarding a message transmission problem that I encounter. I
run a TinyOS application with 200 nodes, with the following configuration file:

configuration test_filter {
}
implementation {
  components Main, test_filterM, SingleTimer, LedsC, PotC, GenericComm as Comm,
RandomLFSR;
   
  Main.StdControl -> SingleTimer.StdControl;
  Main.StdControl -> test_filterM.StdControl;
  
  test_filterM.Timer -> SingleTimer.Timer;
  test_filterM.Leds -> LedsC;
  test_filterM.CommControl -> Comm;
  test_filterM.SendMsg -> Comm.SendMsg[1];
  test_filterM.ReceiveMsg -> Comm.ReceiveMsg[1];
  test_filterM.Random -> RandomLFSR;
}

A am building a routing tree over those nodes, using a sparse bit error graph
(about 10 neighbors have 0 bit-errors, and the rest have 0.5) and the problem is
that after multiple message broadcasts, well into the process, I encounter a
case where a node repeatedly transmits a message (using call SendMsg.send) and
its intended recipient does not register it (using event ReceiveMsg.receive).
There are no other nodes that transmit at this time, just node A which tries to
send a message to node B, which is targeted specifically to B (not a broadcast).
The bit error between them is 0, and yet node B does not register the message. B
has previously received messages from A before the current attempt on A's
behalf. Source code and status logs can be provided on request.

Why does this situation arise? Is it possible that there is some kind of
overflow of internal message queues? Is it because of the methods use to send
and receive? Can you suggest an alternative?

Svilen Mihaylov



----- End forwarded message -----


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

Reply via email to