Hi,
I'm playing around with changing the local wakeup interval of LPL during
runtime and I noticed that if I set the wakeup interval to 0, to keep
the radio on all the time and then put it back to a different value
later, then the radio stays on and does not start duty-cycling.
Duty-cycling only resumes after the node receives or sends a message. I
believe the problem is with the setLocalWakeupInterval command:
command void LowPowerListening.setLocalWakeupInterval(uint16_t
interval)
{
if( interval < MIN_SLEEP )
interval = 0;
sleepInterval = interval;
if( (state == LISTEN && sleepInterval == 0) || state ==
SLEEP_WAIT )
{
call Timer.stop();
--state;
post transition();
}
}
What happens is that state == LISTEN, but sleepInterval > 0 and the
Timer is already stopped, so the only effect is the change in
sleepInterval, but it is not acted upon. Cycling resumes once a send or
receive restarts the timer. Removing sleepInterval == 0 from the if
statement fixes the problem for me, but I'm not certain, that this is
how it should be handled.
Raido
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help