diff --git a/Cargo.toml b/Cargo.toml index ea7c9ea..5b871ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,8 +17,10 @@ embedded-hal = "0.2.5" nb = "1" [dev-dependencies] -linux-embedded-hal = "0.3" embedded-hal-mock = "0.8" +[target.'cfg(target_os = "linux")'.dev-dependencies] +linux-embedded-hal = "0.3" + [profile.release] lto = true diff --git a/examples/linux.rs b/examples/linux.rs index 45ba58a..47ae29b 100644 --- a/examples/linux.rs +++ b/examples/linux.rs @@ -1,11 +1,20 @@ -use linux_embedded_hal::I2cdev; -use lsm303agr::{AccelOutputDataRate, Lsm303agr}; +#[cfg(not(target_os = "linux"))] +fn main() { + // This exists to let `cargo test` succeed on non-linux platforms + panic!("This example can only run on linux"); +} +#[cfg(target_os = "linux")] fn main() { + use linux_embedded_hal::I2cdev; + use lsm303agr::{AccelOutputDataRate, Lsm303agr}; + let dev = I2cdev::new("/dev/i2c-1").unwrap(); let mut sensor = Lsm303agr::new_with_i2c(dev); + sensor.init().unwrap(); sensor.set_accel_odr(AccelOutputDataRate::Hz50).unwrap(); + loop { if sensor.accel_status().unwrap().xyz_new_data { let data = sensor.accel_data().unwrap(); diff --git a/src/lib.rs b/src/lib.rs index fe8c1a0..407cae4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -70,14 +70,21 @@ //! //! ### Connect through I2C, initialize and take some measurements //! -//! ```no_run +#![cfg_attr( + not(target_os = "linux"), + doc = "**note**: the following example will only compile on linux" +)] +#![cfg_attr(not(target_os = "linux"), doc = "```ignore")] +#![cfg_attr(target_os = "linux", doc = "```no_run")] //! use linux_embedded_hal::I2cdev; //! use lsm303agr::{AccelOutputDataRate, Lsm303agr}; //! //! let dev = I2cdev::new("/dev/i2c-1").unwrap(); //! let mut sensor = Lsm303agr::new_with_i2c(dev); +//! //! sensor.init().unwrap(); //! sensor.set_accel_odr(AccelOutputDataRate::Hz10).unwrap(); +//! //! loop { //! if sensor.accel_status().unwrap().xyz_new_data { //! let data = sensor.accel_data().unwrap(); @@ -88,7 +95,12 @@ //! //! ### Connect through SPI, initialize and take some measurements //! -//! ```no_run +#![cfg_attr( + not(target_os = "linux"), + doc = "**note**: the following example will only compile on linux" +)] +#![cfg_attr(not(target_os = "linux"), doc = "```ignore")] +#![cfg_attr(target_os = "linux", doc = "```no_run")] //! use linux_embedded_hal::{Spidev, Pin}; //! use lsm303agr::{AccelOutputDataRate, Lsm303agr}; //! @@ -96,8 +108,10 @@ //! let accel_cs = Pin::new(17); //! let mag_cs = Pin::new(27); //! let mut sensor = Lsm303agr::new_with_spi(dev, accel_cs, mag_cs); +//! //! sensor.init().unwrap(); //! sensor.set_accel_odr(AccelOutputDataRate::Hz10).unwrap(); +//! //! loop { //! if sensor.accel_status().unwrap().xyz_new_data { //! let data = sensor.accel_data().unwrap();