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

Reply via email to