Unless you have some randomisation before you transmit packets, sounds like
your packets are interfering with each other. SendDone can be signaled even
if packet's lost in propagation (I think..).

> -----Original Message-----
> From: tinyos-help-boun...@millennium.berkeley.edu
> [mailto:tinyos-help-boun...@millennium.berkeley.edu]on Behalf Of Simon
> Eberz
> Sent: 28 October 2010 18:42
> To: tinyos-help@millennium.berkeley.edu
> Subject: [Tinyos-help] Broadcast packet not received by all motes
> 
> 
> Hi,
> 
> I'm implementing a simple message exchange between two motes 
> (to measure 
> the RSSI, but this is not of interest) and
> send the messages as broadcasts.
> I'm using the TinyOS Basestation application with the Listen-Tool to 
> check which messages have been sent.
> Here's the problem: I have two motes (call them A and B) with nearly 
> identical code flashed to them.
> A sends a message (broadcast), and after that each mote will 
> send a new 
> broadcast after receiving a packet.
> All messages sent by A are also received, and thus displayed, by the 
> BaseStation-mote, and the LEDs indicate that
> all messages are also received by B [otherwise only one 
> message would be 
> sent anyway].
> But, when B sends a message, it seems to be received by A [as 
> A responds 
> with yet another packet], but is not displayed
> by the BaseStation-App. I tried to verify this by flashing a 
> third mote 
> with custom code, same issue.
> If I just call the SendProbe-method [see below] on mote B it 
> works fine 
> and switching motes doesn't help either.
> LEDs suggest that the SendDone-Event is triggered on both motes.
> Ultimately, it seems that the broadcasts are only received by 
> the mote 
> from which the last message was received (?).
> Is there any property of broadcasts that I am not aware of?
> Here is the (relevant) code I use:
> 
>      void SendProbe(){
>      probe = (ProbeMsg*)(call Packet.getPayload(&pkt,NULL));
>      probe->source = 1;
>      probe->counter = counter;
>      call AMSend.send(AM_BROADCAST_ADDR, &pkt, sizeof(ProbeMsg));
>      }
> 
>      event message_t * Receive.receive(message_t *msg, void *payload, 
> uint8_t len){
>      if(len==sizeof(ProbeMsg)){
>          probe = (ProbeMsg*)payload;
>          call Timer.startOneShot(DELAY_BETWEEN_PROBES);
>      }
>      return msg;
>      }
> 
>      event void Timer.fired(){
>          SendProbe();
>      }
> 
> 
> Thanks for your help
> _______________________________________________
> Tinyos-help mailing list
> Tinyos-help@millennium.berkeley.edu
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/t
inyos-help

Please consider the environment before printing a hard copy of this 
e-mail. 
 
The information contained in this e-mail is confidential. It is intended 
only for the stated addressee(s) and access to it by any other person is 
unauthorised. If you are not an addressee, you must not disclose, copy, 
circulate or in any other way use or rely on the information contained in 
this e-mail. Such unauthorised use may be unlawful. If you have received 
this e-mail in error, please inform us immediately on +44 (0)118 986 8601 
and delete it and all copies from your system. 
 
Thales Research and Technology (UK) Limited. A company registered in 
England and Wales. Registered Office: 2 Dashwood Lang Road, The Bourne 
Business Park, Addlestone, Weybridge, Surrey KT15 2NX. Registered Number: 
774298 
 
Thales UK Limited. A company registered in England and Wales. Registered 
Office: 2 Dashwood Lang Road, The Bourne Business Park, Addlestone, 
Weybridge, Surrey KT15 2NX. Registered Number: 868273 
_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to