1#![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}