diff options
author | Diego Barrios Romero <eldruin@gmail.com> | 2021-07-29 23:14:25 +0200 |
---|---|---|
committer | Diego Barrios Romero <eldruin@gmail.com> | 2021-07-29 23:14:25 +0200 |
commit | 28126fee8ce253e67ab737927ff0d89ebc24e419 (patch) | |
tree | 503e6056682296c3ac3ead637cad7f5c2e6da8a3 /examples | |
parent | deb65c3a794bdc4e5c534983c8753072cec10adf (diff) | |
download | ads1x1x-async-28126fee8ce253e67ab737927ff0d89ebc24e419.tar.gz ads1x1x-async-28126fee8ce253e67ab737927ff0d89ebc24e419.tar.xz ads1x1x-async-28126fee8ce253e67ab737927ff0d89ebc24e419.zip |
Add value-based one-shot trait to ease driver usage in functions
Diffstat (limited to 'examples')
-rw-r--r-- | examples/trait.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/examples/trait.rs b/examples/trait.rs new file mode 100644 index 0000000..eda1f37 --- /dev/null +++ b/examples/trait.rs @@ -0,0 +1,24 @@ +// This example demonstrates the use of a type alias for the `Ads1x1x` struct +// to ease usage in signatures. + +use linux_embedded_hal::I2cdev; +use nb::block; + +use ads1x1x::{Ads1x1x, ChannelSelection, DynamicOneShot, SlaveAddr}; + +/// Read a single value from channel A. +/// Returns 0 on Error. +pub fn read<E, A: DynamicOneShot<Error = E>>(adc: &mut A) -> i16 { + block!(adc.read(ChannelSelection::SingleA0)).unwrap_or(0) +} + +fn main() { + let dev = I2cdev::new("/dev/i2c-1").unwrap(); + let address = SlaveAddr::default(); + let mut adc = Ads1x1x::new_ads1115(dev, address); + + let value = read(&mut adc); + println!("Measurement: {}", value); + // get I2C device back + let _dev = adc.destroy_ads1115(); +} |