Skip to main content

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;
18#[cfg(feature = "serial")]
19pub use serialport;
20#[cfg(feature = "spi")]
21pub use spidev;
22
23#[cfg(feature = "gpio_sysfs")]
24pub use sysfs_gpio;
25
26#[cfg(feature = "gpio_cdev")]
27pub use gpio_cdev;
28#[cfg(feature = "gpio_sysfs")]
29/// Sysfs Pin wrapper module
30mod sysfs_pin;
31
32#[cfg(feature = "gpio_cdev")]
33/// Cdev Pin wrapper module
34mod cdev_pin;
35
36#[cfg(feature = "gpio_cdev")]
37/// Cdev pin re-export
38pub use cdev_pin::{CdevPin, CdevPinError};
39
40#[cfg(feature = "gpio_sysfs")]
41/// Sysfs pin re-export
42pub use sysfs_pin::{SysfsPin, SysfsPinError};
43
44mod delay;
45#[cfg(feature = "i2c")]
46mod i2c;
47#[cfg(feature = "serial")]
48mod serial;
49#[cfg(feature = "spi")]
50mod spi;
51mod timer;
52
53pub use crate::delay::Delay;
54#[cfg(feature = "i2c")]
55pub use crate::i2c::{I2CError, I2cdev};
56#[cfg(feature = "serial")]
57pub use crate::serial::{Serial, SerialError};
58#[cfg(feature = "spi")]
59pub use crate::spi::{SPIError, SpidevBus, SpidevDevice};
60pub use crate::timer::{CountDown, Periodic, SysTimer};