[Tinyos-devel] start/stop with lpl

Razvan Musaloiu-E. razvanm at cs.jhu.edu
Wed Dec 17 22:28:27 PST 2008


Hi!

Below are some updates after the core meeting from today.

On Sat, 13 Dec 2008, Razvan Musaloiu-E. wrote:

> Hi!
>
> On Sat, 13 Dec 2008, Philip Levis wrote:
>
>>
>> On Dec 12, 2008, at 10:10 PM, Omprakash Gnawali wrote:
>>
>>> During net2 meeting today, Razvan brought up an interesting
>>> observation. With LPL, stdcontrol.start means turn the radio off.
>>> stdcontrol.startdone means the radio has turned off. To someone who
>>> just knows that LPL means dutycycling but does not know the
>>> mechanisms, this seems opposite of what those names suggest.
>>
>> I don't understand; can you be clearer? SplitControl on what
>> component? How is the radio on without calling start?
>>
>
> The SplitControl in discussion is the one implemented by PowerCycleC
> (which gets wired to ActiveMessageC through DefaultLplC and
> CC2420ActiveMessageC). The confusion comes from the interaction between
> the the SplitControl and the setLocalSleepInterval command from the
> LowPowerListening Interface.
>
> Here are some questions that shows this.
>
>   What happens when a call to LowPowerListening.setLocalSleepInterval is
>   made? Does the duty-cycles starts immediately or I still need to do call
>   SplitControl.start?

The call to SplitControl.start in order to start the duty-cycling. If the 
start is not called the radio is still completely off.

>   If I'm duty-cyclying and I make a call to SplitControl.stop what will
>   happen? Will the radio be turned on and a SplitControl.stopDone
>   signaled?

Yes. After a stop/stopDone the radio will be again completely off.

>   If I'm calling LowPowerListening.setLocalSleepInterval with a value of
>   zero what will happen? The interface comments in the interface says that
>   the radio will always on but will I get a signal what let's me know when
>   the radio reach that state? Will it be startDone or stopDone? Which one?

Calling setLocalSleepInterval with a value of zero is ambiguous if the 
duty-cycling is already turned on because the call is not slit phase. 
A way to avoid this is to turn the duty-cycle off, set the sleep interval 
to zero and then turn the duty-cycle back on. Conceptually the same 
problem applies when asking for a duty-cycle or 0% but that case might 
be disallowed anyway.

--
Razvan ME


More information about the Tinyos-devel mailing list