Hi,

try to check:

1) whether the radio is turned on/off at appropriate instances of time, 
to be sure that it is working: for example it must be on when a packet 
is coming;
 if your nodes are not synchronized in time, it is possible that some 
node transmits a radio message assuming that another node is on, because 
it is already "10:30", but the receiver might be "asleep" at that 
moment, since the receiver may "think" that it is yet "10:29" and it is 
to early to wake up - this would results in lost message.
2) whether the packets sent by 40 motes interfere with one another or 
not - there should be time intervals between their transmissions to 
avoid collisions;

Also, take into account, that when a microcontroller issues the 
corresponding command to activate a radio, the radio is switched on only 
after some time (e.g. 2 milliseconds for TelosB with CC2420 radio chip). 
Also, don't forget that you can use your radio only after 
"AMRadioControl.startDone" event is signalled - you should handle it 
properly.

Anton.


Ruben Catteeuw wrote:
> Dear all,
>
> I'm a thesis student in my final year of university.
> My thesis mainly is about WSN and energy harvesting.
>
> I've implemented a test-application on the testbed of the university.
> The application is quite simple:
>
> About 40 motes send requests to a central controller-mote.
> This happens at random times in each one-second-interval.
> The controller sends replies back 200ms after receiving the requests.
> There are some buffers to be able to handle big request-bursts.
>
> Since I want to test energy harvesting on this application, it is 
> quite crucial that I can turn the radio on and off to save energy.
> To turn the radio off I currently defined a task:
>
> task void disableRadio()
> {   
>         if(call AMRadioControl.stop() != SUCCESS){
>             post disableRadio();
>         }
> }
>
> AMRadioControl wires splitcontrol to ActiveMessageC.
> A similar task is used to enable the radio.
> The same approach is used in the LPL-implementation from TinyOS.
> I tested this in a dummy application where I just put the radio on and 
> off every 100 ms.
> This dummy-application works just fine, I can measure the energy-use 
> of the motes and the results show a square-signal with the 100 ms 
> period, so the radio is correctly turned on and off.
> However when I use this in my star-topology application above, the 
> application stops running.
> The tasks are posted for example: after a message is send and senddone 
> is signalled (radio off), after a 200ms timer expires (radio back on), 
> when the reply is received (radio off).
> In my application there is a counter. Normally the application would 
> have to run for 100 cycles, but already after the first cycle the 
> program stops working (it works correctly when the state of the radio 
> is not changed).
> What could be the cause of this behaviour and how can I find out? My 
> mentor also has not found the answer to this and I've been looking for 
> this for a while.
> This is the only place I can ask my question, so any help would be 
> greatly appreciated.
>
> Kind regards and thanks in advance!
>
> Ruben
> ------------------------------------------------------------------------
> Vanaf nu heb je je vrienden overal bij! Messenger voor Mobile 
> <http://www.windowslivemobile.msn.com/?mkt=nl-be>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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