1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
#![deny(missing_docs)] //! Interface to the LSM303 digital accelerometer and magnetometer. //! //! - [Datasheet](http://www.st.com/resource/en/datasheet/lsm303dlhc.pdf) //! - [Application notes](http://www.st.com/content/ccc/resource/technical/document/application_note/e6/f0/fa/af/94/5e/43/de/CD00269797.pdf/files/CD00269797.pdf/jcr:content/translations/en.CD00269797.pdf) //! //! ```no_run //! # use std::time::Duration; //! # fn main() { test().unwrap(); } //! # fn test() -> lsm303::Result<()> { //! let device = "/dev/i2c-1"; //! let mut accelerometer = //! lsm303::Accelerometer::new(device)?; //! let mut magnetometer = //! lsm303::Magnetometer::new(device)?; //! //! loop { //! let accel = accelerometer.read_acceleration()?; //! let mag = magnetometer.read_magnetic_field()?; //! println!("Accel: ({}, {}, {}) || Mag: ({}, {}, {})", //! accel.x, accel.y, accel.z, //! mag.x, mag.y, mag.z); //! std::thread::sleep(Duration::from_millis(100)); //! } //! # Ok(()) //! # } //! ``` // External crates #[macro_use] extern crate bitflags; extern crate byteorder; extern crate dimensioned; #[macro_use] extern crate error_chain; extern crate i2cdev; // Exports pub mod common; mod errors; pub use errors::{Error, ErrorKind, Result, ResultExt}; #[macro_use] pub mod registers; pub mod accelerometer; pub use accelerometer::Accelerometer; pub mod magnetometer; pub use magnetometer::Magnetometer;