[Tinyos-8051wg] Re: Re[4]: [Tinyos-2.0wg] Aligning TEP 101 (ADC)
with TEP 108 (Resource Arbitration) and 109 (Sensorboards)
Phil Levis
pal at cs.berkeley.edu
Wed May 18 15:49:57 PDT 2005
On Wed, 2005-05-18 at 15:12, David Gay wrote:
> After some further (...) discussion with Phil, we managed to come up
> to some furthe degree of agreement (I think this is also closer to the
> TU Berlin view, comment if it isn't ;-)):
>
> - the HAL for an ADC should provide parameterised AcquireData,
> AcquireDataNow, AcquireDataBuffered interfaces
> Motivation: this conversion is going to have to happen somewhere,
> might as well do it once in the HAL
>
> - Having a standard name (ADCC) for a HAL-level component that
> provides these AcquireData/etc interfaces is NOT useful
>
> - The AcquireDataRoundRobinM , AcquireDataNowRoundRobinM are good
> components to place in lib/adc (these are generic modules to
> round-robin arbitration on parameterised AcquireData/Now interfaces)
>
> - The ADC*.nc components currently in tos/system should be in
> platforms/mica or chips/ATmega128 (they are the ones which refer to
> the actual A/D conversion component)
The basic notions here are:
1) The ADC itself is not an HIL level component. Named sensors compose
the HIL interface (e.g., InternalTempC, HamamatsuC), etc.
o In the case where there are abstract sensors (e.g., the UCLA
mega-sensor board), they are given abstract names: MDASensorOne,
MDASensorTwo. Of course, in the MDA case, presenting them in such a
manner is kind of sketchy (generic sensors would requires configuration,
or HAL access), but you could do so, if you wanted.
2) Components in lib/adc should not refer to HAL components.
o In the earlier implementation, AcquireDataRoundRobin wired to ADCC;
this meant that if your platform (for one of a variety of reasons) did
not have an ADCC component, you could not use lib/adc. Platform
independent names for HAL components is not a good route to go down.
o Instead, the idea is that AquireDataRoundRobin is a generic module,
which the HAL can use. For example, platform/telosb might instantiation
an AcquireDataRoundRobin, which it puts InternalTemp, InternalVoltage,
and RadioSignalStrength on top of.
Phil
_______________________________________________
Tinyos-2.0wg mailing list
Tinyos-2.0wg at Mail.Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-2.0wg
More information about the Tinyos-8051wg
mailing list