ContinuousSensorSync

Trait ContinuousSensorSync 

Source
pub trait ContinuousSensorSync {
    type Error: Debug;
    type Measurement: Measurement;

    // Required methods
    fn start_measuring(&mut self) -> Result<(), Self::Error>;
    fn stop_measuring(&mut self) -> Result<(), Self::Error>;
    fn measurement_interval_us(&mut self) -> Result<u32, Self::Error>;
    fn current_measurement(
        &mut self,
    ) -> Result<Option<Self::Measurement>, Self::Error>;
    fn is_measurement_ready(&mut self) -> Result<bool, Self::Error>;
    fn next_measurement(&mut self) -> Result<Self::Measurement, Self::Error>;
}
Expand description

A sensor supporting continuous measurement mode.

If the hardware device itself doesn’t support continuous measurements but they can be meaningfully emulated by using a one-shot mode without drawbacks, it may also implement this trait.

Required Associated Types§

Source

type Error: Debug

The error type which may occur on associated functions

Source

type Measurement: Measurement

A type holding the measurements obtained by this sensor

Required Methods§

Source

fn start_measuring(&mut self) -> Result<(), Self::Error>

Starts continuous measurement.

If the device supports several measurement modes, this function attempts to switch to continuous mode on best effort.

Source

fn stop_measuring(&mut self) -> Result<(), Self::Error>

Stops continuous measurement.

The mode in which the device is left afterwards is not specified further, but if possible, a sleep mode or equivalent mode should be preferred.

Source

fn measurement_interval_us(&mut self) -> Result<u32, Self::Error>

Expected amount of time between measurements in microseconds. This may need to communicate with the device to determine the interval based on device settings.

Source

fn current_measurement( &mut self, ) -> Result<Option<Self::Measurement>, Self::Error>

Returns the most recent measurement. If the sensor cannot provide the measurement current/last measurement at any time (e.g. the register is cleared after it is read), this should return None when there is no new data available.

Source

fn is_measurement_ready(&mut self) -> Result<bool, Self::Error>

Check if new measurements are available. If the device does not support checking for availability of new measurements (e.g. via some form of data ready indicator), this method should always return true.

Source

fn next_measurement(&mut self) -> Result<Self::Measurement, Self::Error>

Wait indefinitely until new measurements are available and return them. If the device does not support checking for new measurements (e.g. via some form of data ready indicator), this method should wait for Self::measurement_interval_us and read the measurement opportunistically.

Implementors§

Source§

impl<D: DelayNs, I: CommandInterfaceSync> ContinuousSensorSync for SCD40Sync<D, I>

Source§

impl<D: DelayNs, I: CommandInterfaceSync> ContinuousSensorSync for SCD41Sync<D, I>

Source§

impl<D: DelayNs, I: CommandInterfaceSync> ContinuousSensorSync for SCD43Sync<D, I>

Source§

impl<D: DelayNs, I: CommandInterfaceSync> ContinuousSensorSync for SEN60Sync<D, I>

Source§

impl<D: DelayNs, I: CommandInterfaceSync> ContinuousSensorSync for SEN63CSync<D, I>

Source§

impl<D: DelayNs, I: CommandInterfaceSync> ContinuousSensorSync for SEN65Sync<D, I>

Source§

impl<D: DelayNs, I: CommandInterfaceSync> ContinuousSensorSync for SEN66Sync<D, I>

Source§

impl<D: DelayNs, I: CommandInterfaceSync> ContinuousSensorSync for SEN68Sync<D, I>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for MAX31865Sync<D, I>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for BL0942Sync<D, I>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for BME280CommonSync<D, I, false>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for BME280CommonSync<D, I, true>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for BMP390Sync<D, I>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for MCP9808Sync<D, I>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for INA219Sync<D, I>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for INA226Sync<D, I>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for INA228Sync<D, I>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for TMP102Sync<D, I>

Source§

impl<D: DelayNs, I: RegisterInterfaceSync> ContinuousSensorSync for TMP117Sync<D, I>