:Author: Gilman Tolle, Philip Levis, and David Gay
:Draft-Created: 30-Oct-2005
:Author: Gilman Tolle, Philip Levis, and David Gay
:Draft-Created: 30-Oct-2005
bits may be significant (e.g., a 12-bit value).
Because sensing is an integral part of high-level application logic,
bits may be significant (e.g., a 12-bit value).
Because sensing is an integral part of high-level application logic,
-the asynchronicity of these events means that high-level components
-must work with atomic section, even if the sampling rate is very low
+having asynchronous events means that high-level components
+must work with atomic sections, even if the sampling rate is very low
(e.g., every five minutes) and so could be easily placed in a
task. Race conditions are problematic and possible in any real time
multi-tasking design. Race conditions are a failure in design, and
(e.g., every five minutes) and so could be easily placed in a
task. Race conditions are problematic and possible in any real time
multi-tasking design. Race conditions are a failure in design, and
Additionally, not all sensors require ADC conversions from the MCU.
Many sensors today are digital. To sample these sensors, the MCU sends
Additionally, not all sensors require ADC conversions from the MCU.
Many sensors today are digital. To sample these sensors, the MCU sends
``val`` parameter MUST be filled with zeroes.
If the call to ``read`` has returned SUCCESS, but the ``readDone``
``val`` parameter MUST be filled with zeroes.
If the call to ``read`` has returned SUCCESS, but the ``readDone``
MUST return EBUSY or FAIL. This simple locking technique, as opposed
to a more complex system in which multiple read/readDone pairs may be
outstanding, is intended to reduce the complexity of SID client code.
MUST return EBUSY or FAIL. This simple locking technique, as opposed
to a more complex system in which multiple read/readDone pairs may be
outstanding, is intended to reduce the complexity of SID client code.
After posting at least one buffer, the client can call read() with a
specified sample period in terms of microseconds. The driver then
After posting at least one buffer, the client can call read() with a
specified sample period in terms of microseconds. The driver then
event when a buffer has been filled. The client MAY call postBuffer()
after read() in order to provide the device with new storage for
future reads.
event when a buffer has been filled. The client MAY call postBuffer()
after read() in order to provide the device with new storage for
future reads.