[Tinyos-devel] LPL API for protocols

Vlado Handziski handzisk at tkn.tu-berlin.de
Tue May 20 13:54:11 PDT 2008


I think that the potential alignment problems with uint24_t are not worth
the saved byte.

Vlado

On Tue, May 20, 2008 at 10:12 PM, David Moss <dmm at rincon.com> wrote:

> So what do people feel about a uint24_t sleep interval?  We'd use another
> byte of metadata, but it offers more flexibility and growth potential than
> the current uint16_t.
>
> -David
>
>
>
> -----Original Message-----
> From: Razvan Musaloiu-E. [mailto:razvanm at cs.jhu.edu]
> Sent: Tuesday, May 20, 2008 12:55 PM
> To: David Moss
> Cc: 'TinyOS Development'
> Subject: RE: [Tinyos-devel] LPL API for protocols
>
> Hi!
>
> On Tue, 20 May 2008, David Moss wrote:
>
> > Bumping up the uint16_t to a uint32_t will eat up 2 more bytes of
> metadata
> > per message_t.  For every asynchronous low power listening
> implementation,
> a
> > 1 minute sleep interval is no longer low power because the transmitter
> has
> > to transmit for that full minute, worst case.
>
> That is indeed the case for LPL but in LPP the role are reversed so it is
> feasible to have much bigger probing intervals.
>
> --
> Razvan ME
>
> > Practical sleep intervals I've worked with range from 100 ms (taking
> > advantage of WoR's efficiency) to 5 seconds (extremely low duty cycle
> with
> > no transmissions, a comatose put-it-on-the-shelf state).
> >
> > Now, synchronous low power implementations may be different.  An extra
> byte
> > (does a uint24_t exist?) would give us 4.5 hour sleep intervals, which
> would
> > only be possible to achieve on purely synchronous implementations, which
> we
> > do not have available right now to my knowledge.
> >
> > -David
> >
> >
> >
> > -----Original Message-----
> > From: Razvan Musaloiu-E. [mailto:razvanm at cs.jhu.edu]
> > Sent: Tuesday, May 20, 2008 11:38 AM
> > To: David Moss
> > Cc: 'TinyOS Development'
> > Subject: RE: [Tinyos-devel] LPL API for protocols
> >
> > Hi!
> >
> > On Tue, 20 May 2008, David Moss wrote:
> >
> >> Razvan -
> >>
> >> Sleep intervals are in milliseconds.  But the implementation may change
> the
> >> meaning of what a "millisecond" really is.  Using a TinyOS Timer, we're
> >> really in binary milliseconds.  Hardware implemented solutions, like
> Wake-on
> >> Radio, use true milliseconds.
> >
> > I'm asking this because the 16 bit will limit the interval between
> probing
> > to a maximum of ~1 minute.
> >
> >> The SplitControl events only get signaled out the top of the stack when
> your
> >> application has requested a change.  SplitControl is separated at the
> low
> >> power communications layer.  Even though that layer is control a
> >> Sub-SplitControl interface to manually turn the radio on and off, the
> events
> >> do not get signaled out the top of the stack unless the user explicitly
> >> requested a change.
> >
> > So the user application will never know when the radio is off and when
> > is on? :D
> >
> > Thanks for answers!
> > Razvan ME
> >
> >> -----Original Message-----
> >> From: Razvan Musaloiu-E. [mailto:razvanm at cs.jhu.edu]
> >> Sent: Tuesday, May 20, 2008 11:05 AM
> >> To: David Moss
> >> Cc: 'TinyOS Development'
> >> Subject: Re: [Tinyos-devel] LPL API for protocols
> >>
> >> Hi!
> >>
> >> On Tue, 20 May 2008, David Moss wrote:
> >>
> >>> Here's a new LowPowerListening interface I'm just throwing out to keep
> our
> >>> initial discussion rolling.  I think an explicit command,
> >>> setDefaultRxSleepInterval() in this example, could act as a reminder to
> the
> >>> developer that there is some default interval to be set (instead of
> relying
> >>> on your local sleep interval to be the default).  If you don't set it,
> the
> >>> default is assumed to be 0 (send to an always-on receiver).
> >>>
> >>> Calling getRxSleepInterval(msg) will return the default rx sleep
> interval if
> >>> the packet doesn't have a custom, overriding rx sleep interval set.
> >>>
> >>>
> >>> interface LowPowerListening {
> >>>
> >>>  command void setLocalSleepInterval(uint16_t sleepInterval);
> >>>
> >>>  command uint16_t getLocalSleepInterval();
> >>>
> >>>
> >>>  command void setRxSleepInterval(message_t *msg, uint16_t
> sleepInterval);
> >>>
> >>>  command uint16_t getRxSleepInterval(message_t *msg);
> >>>
> >>>
> >>>  command void setDefaultRxSleepInterval(uint16_t defaultSleepInterval);
> >>>
> >>>  command uint16_t getDefaultRxSleepInterval();
> >>>
> >>> }
> >>>
> >>> Thoughts?
> >>
> >> Here are two questions:
> >> - all sleep intervals are in miliseconds, right?
> >> - what is the exact semantic of setLocalSleepInterval in relation to the
> >> SplitControl of the radio?
> >>
> >> --
> >> Razvan ME
> >>
> >>
> >
> >
>
>
> _______________________________________________
> Tinyos-devel mailing list
> Tinyos-devel at millennium.berkeley.edu
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.millennium.berkeley.edu/pipermail/tinyos-devel/attachments/20080520/7a84b13f/attachment.htm 


More information about the Tinyos-devel mailing list