Struct AsyncBme680

Source
pub struct AsyncBme680<I2C, D> { /* private fields */ }
Available on crate feature embedded-hal-async only.
Expand description

Asynchronous BME680 sensor driver.

This struct is similar to the Bme680 type, except that it uses the embedded_hal_async crate’s I2c and Delay traits, rather than the embedded_hal versions of those traits.

§Notes

The AsyncBme680::new constructor is not asynchronous, and therefore — unlike the synchronous Bme680::new — it does not initialize the sensor. Instead, the sensor must be initialized using the AsyncBme680::initialize method before reading sensor data. Otherwise, the AsyncBme680::measure method will return BmeError::Uninitialized.

Implementations§

Source§

impl<I2C, D> AsyncBme680<I2C, D>
where I2C: I2c<SevenBitAddress>, D: DelayNs,

Source

pub fn new( i2c_interface: I2C, device_address: DeviceAddress, delayer: D, ambient_temperature: i32, ) -> Self

Creates a new instance of the Sensor

§Arguments
  • delayer - Used to wait for the triggered measurement to finish
  • ambient_temperature - Needed to calculate the heater target temperature
§Notes

This constructor is not asynchronous, and therefore — unlike the synchronous Bme680::new — it does not initialize the sensor. Instead, the sensor must be initialized using the AsyncBme680::initialize method before reading sensor data. Otherwise, the AsyncBme680::measure method will return BmeError::Uninitialized.

Source

pub async fn initialize( &mut self, sensor_config: &Configuration, ) -> Result<(), BmeError<I2C>>

Source

pub async fn put_to_sleep(&mut self) -> Result<(), BmeError<I2C>>

Source

pub fn into_inner(self) -> I2C

Returns the wrapped i2c interface

Source

pub async fn set_configuration( &mut self, config: &Configuration, ) -> Result<(), BmeError<I2C>>

Source

pub async fn measure(&mut self) -> Result<MeasurmentData, BmeError<I2C>>

Trigger a new measurement.

§Errors

If no new data is generated in 5 tries a Timeout error is returned.

Source

pub fn get_calibration_data(&self) -> Result<&CalibrationData, BmeError<I2C>>

Auto Trait Implementations§

§

impl<I2C, D> Freeze for AsyncBme680<I2C, D>
where I2C: Freeze, D: Freeze,

§

impl<I2C, D> RefUnwindSafe for AsyncBme680<I2C, D>

§

impl<I2C, D> Send for AsyncBme680<I2C, D>
where I2C: Send, D: Send,

§

impl<I2C, D> Sync for AsyncBme680<I2C, D>
where I2C: Sync, D: Sync,

§

impl<I2C, D> Unpin for AsyncBme680<I2C, D>
where I2C: Unpin, D: Unpin,

§

impl<I2C, D> UnwindSafe for AsyncBme680<I2C, D>
where I2C: UnwindSafe, D: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.