linux_embedded_hal/
lib.rs

1//! Implementation of [`embedded-hal`] traits for Linux devices
2//!
3//! [`embedded-hal`]: https://docs.rs/embedded-hal
4//!
5//! # Drivers
6//!
7//! This crate lets you use a bunch of platform agnostic drivers that are based on the
8//! `embedded-hal` traits. You can find them on crates.io by [searching for the embedded-hal
9//! keyword][0].
10//!
11//! [0]: https://crates.io/keywords/embedded-hal
12
13#![deny(missing_docs)]
14
15#[cfg(feature = "i2c")]
16pub use i2cdev;
17pub use nb;
18pub use serialport;
19#[cfg(feature = "spi")]
20pub use spidev;
21
22#[cfg(feature = "gpio_sysfs")]
23pub use sysfs_gpio;
24
25#[cfg(feature = "gpio_cdev")]
26pub use gpio_cdev;
27#[cfg(feature = "gpio_sysfs")]
28/// Sysfs Pin wrapper module
29mod sysfs_pin;
30
31#[cfg(feature = "gpio_cdev")]
32/// Cdev Pin wrapper module
33mod cdev_pin;
34
35#[cfg(feature = "gpio_cdev")]
36/// Cdev pin re-export
37pub use cdev_pin::{CdevPin, CdevPinError};
38
39#[cfg(feature = "gpio_sysfs")]
40/// Sysfs pin re-export
41pub use sysfs_pin::{SysfsPin, SysfsPinError};
42
43mod delay;
44#[cfg(feature = "i2c")]
45mod i2c;
46mod serial;
47#[cfg(feature = "spi")]
48mod spi;
49mod timer;
50
51pub use crate::delay::Delay;
52#[cfg(feature = "i2c")]
53pub use crate::i2c::{I2CError, I2cdev};
54pub use crate::serial::{Serial, SerialError};
55#[cfg(feature = "spi")]
56pub use crate::spi::{SPIError, SpidevBus, SpidevDevice};
57pub use crate::timer::{CountDown, Periodic, SysTimer};