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