[][src]Crate ruuvi_sensor_protocol

ruuvi-sensor-protocol implements parser for Ruuvi Sensor Protocols used by RuuviTag sensor beacon.

Parsing a set of values from manufacturer specific data

Parsing return an error due to unknown manufacturer id, unsupported tdata 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)));

Successful parse returns a SensorValue structure with a set of values.

use ruuvi_sensor_protocol::{AccelerationVector, SensorValues};

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, Some(115_000));
assert_eq!(values.temperature, Some(1690));
assert_eq!(values.pressure, Some(63656));
assert_eq!(values.acceleration, Some(AccelerationVector(1000, 1255, 1510)));
assert_eq!(values.battery_potential, Some(2182));

See SensorValues documentation for a description of each value.

Structs

AccelerationVector

3-dimensional vector which represents acceleration in 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 manufacturer specific data