[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