[−][src]Crate ruuvi_sensor_protocol
ruuvi-sensor-protocol implements parser for Ruuvi Sensor Protocols used by the RuuviTag sensor beacon.
Parsing a set of values from manufacturer specific data
Parsing may return an error due to unknown manufacturer id, unsupported data format version or invalid data in value field.
use ruuvi_sensor_protocol::{ParseError, SensorValues}; let id = 0x0499; let value = &[ 0x07, 0x17, 0x01, 0x45, 0x35, 0x58, 0x03, 0xE8, 0x04, 0xE7, 0x05, 0xE6, 0x08, 0x86, ]; let result = SensorValues::from_manufacturer_specific_data(id, value); assert_eq!(result, Err(ParseError::UnsupportedFormatVersion(7)));
A successful parse returns a SensorValue
structure with a set of values.
use ruuvi_sensor_protocol::{ Acceleration, AccelerationVector, BatteryPotential, Humidity, Pressure, SensorValues, Temperature, }; let id = 0x0499; let value = &[ 0x03, 0x17, 0x01, 0x45, 0x35, 0x58, 0x03, 0xE8, 0x04, 0xE7, 0x05, 0xE6, 0x08, 0x86, ]; let values = SensorValues::from_manufacturer_specific_data(id, value)?; assert_eq!(values.humidity_as_ppm(), Some(115_000)); assert_eq!(values.temperature_as_millicelsius(), Some(1690)); assert_eq!(values.pressure_as_pascals(), Some(63656)); assert_eq!(values.acceleration_vector_as_milli_g(), Some(AccelerationVector(1000, 1255, 1510))); assert_eq!(values.battery_potential_as_millivolts(), Some(2182));
See SensorValues
documentation for a description of each value.
Structs
AccelerationVector | a 3-dimensional vector which represents acceleration of each dimension in milli-G |
SensorValues | Represents a set of values read from sensors on the device |
Enums
ParseError | Errors which can occur during parsing of the manufacturer specific data |
Traits
Acceleration | |
BatteryPotential | |
Humidity | |
MacAddress | |
MeasurementSequenceNumber | |
MovementCounter | |
Pressure | |
Temperature | |
TransmitterPower |