passing by value is inefficient, such as a two-axis digital
accelerometer.
-3.3 Metadata and Shifting
---------------------------------------------------------------------
-
-Generally, simple types are made up of octets. However, sensor values
-often have levels of precision besides a multiple of 8. Any value
-contained in a simple type MUST be left shifted so that it covers as
-much of the type's range as possible. For example, if a 12-bit ADC
-reading is presented as a 16-bit Read interface::
-
- component DemoSensorC {
- provides interface Read<uint16_t>;
- }
-
-then the 12-bit value MUST be shifted left so that its range is 0x0000
-- 0xfff0, rather than 0x0000 - 0x0fff. A device MAY specify the
-precision of one of its interfaces with the DeviceMetadata interface::
-
- interface DeviceMetadata {
- command uint8_t getSignificantBits();
- }
-
-The name of the instance of DeviceMetadata SHOULD clearly indicate
-which interface it corresponds to.
-
3.4 Single-Phase Scalar I/O
--------------------------------------------------------------------