embedded_devices/
lib.rs

1//! Device driver implementations for many embedded sensors and devices
2//!
3#![cfg_attr(not(doctest), doc = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/README.md")))]
4#![cfg_attr(not(feature = "std"), no_std)]
5
6pub mod device;
7pub mod devices;
8pub mod sensor;
9pub mod utils;
10
11pub use uom;
12
13#[cfg(test)]
14mod tests {
15    #[cfg(feature = "bosch-bme280")]
16    #[test]
17    fn register_bme280_reset() {
18        use crate::devices::bosch::bme280::registers::{ResetMagic, ResetUnpacked};
19        let value = ResetUnpacked {
20            magic: ResetMagic::Reset,
21        };
22
23        let reg = value.pack();
24        assert_eq!(reg.0, [0xb6]);
25        assert_eq!(reg.unpack(), value);
26    }
27
28    #[cfg(feature = "bosch-bmp390")]
29    #[test]
30    fn register_bmp390_error() {
31        use crate::devices::bosch::bmp390::registers::ErrorUnpacked;
32        let value = ErrorUnpacked {
33            fatal_err: true,
34            cmd_err: false,
35            conf_err: true,
36        };
37
38        let reg = value.pack();
39        assert_eq!(reg.0, [0b00000101]);
40        assert_eq!(reg.unpack(), value);
41    }
42
43    #[cfg(feature = "bosch-bmp390")]
44    #[test]
45    fn register_bmp390_pressure() {
46        use crate::devices::bosch::bmp390::registers::PressureUnpacked;
47        let value = PressureUnpacked { value: 0x123456 };
48
49        let reg = value.pack();
50        assert_eq!(reg.0, [0x56, 0x34, 0x12]);
51        assert_eq!(reg.unpack(), value);
52    }
53
54    #[cfg(feature = "texas_instruments-ina228")]
55    #[test]
56    fn register_defaults() {
57        use crate::devices::texas_instruments::ina228::registers::AdcConfiguration;
58        let reg = AdcConfiguration::default();
59        assert!(reg.read_enable_temperature());
60    }
61
62    #[cfg(feature = "bosch-bmp390")]
63    #[test]
64    fn register_bmp390_fifo_length() {
65        use crate::devices::bosch::bmp390::registers::FifoLengthUnpacked;
66        let value = FifoLengthUnpacked { length: 0b110000101 };
67
68        let reg = value.pack();
69        assert_eq!(reg.0, [0b10000101, 0b00000001]);
70        assert_eq!(reg.unpack(), value);
71    }
72}