Skip to main content

Configuration

Struct Configuration 

Source
pub struct Configuration {
    pub range_number: u8,
    pub conversion_time: ConversionTime,
    pub mode: Mode,
    pub overflow: bool,
    pub conversion_ready: bool,
    pub flag_high: bool,
    pub flag_low: bool,
    pub latch: Latch,
    pub polarity: Polarity,
    pub mask_exponent: bool,
    pub fault_count: FaultCount,
}
Expand description

A decoded OPT3001 configuration register.

Build one, set the fields, and turn it into the 16-bit register value with bits; or parse a register read with from_bits. Configuration::default is the power-on state, CONFIGURATION_RESET. The four status fields are read-only on the part and are ignored by bits.

§Examples

use pamoja_sensors::opt3001::{Configuration, Mode};

// Convert continuously with the range set automatically, everything else default.
let config = Configuration {
    mode: Mode::Continuous,
    ..Configuration::default()
};
assert_eq!(config.bits(), 0xCC10);
assert_eq!(Configuration::from_bits(0xCC10), config);

Fields§

§range_number: u8

The range number (bits 15:12): 0 to 11 for a fixed full-scale range, or RANGE_AUTOMATIC to let the part choose and report its choice in the result’s exponent.

§conversion_time: ConversionTime

The conversion time.

§mode: Mode

The mode of conversion operation.

§overflow: bool

Read-only: the last conversion overflowed its full-scale range.

§conversion_ready: bool

Read-only: a conversion has completed since the register was last read or written with a non-shutdown mode.

§flag_high: bool

Read-only: the result exceeded the high limit for the fault count.

§flag_low: bool

Read-only: the result fell below the low limit for the fault count.

§latch: Latch

The interrupt reporting style.

§polarity: Polarity

The INT pin polarity.

§mask_exponent: bool

Force the result’s exponent to zero on a fixed range, so the mantissa alone is the reading at that range’s LSB.

§fault_count: FaultCount

The consecutive faults required to trigger a report.

Implementations§

Source§

impl Configuration

Source

pub fn bits(self) -> u16

Assembles the 16-bit configuration register value.

The read-only status bits are written as zero, and the range number is truncated to its four bits.

§Returns

The register value to write, most significant byte first.

Source

pub fn from_bits(bits: u16) -> Configuration

Parses a 16-bit configuration register value.

§Arguments
  • bits - the register value, as read from the device.
§Returns

The decoded configuration, status flags included.

Source

pub fn is_automatic_range(&self) -> bool

Returns whether the range number selects automatic full-scale setting.

Trait Implementations§

Source§

impl Clone for Configuration

Source§

fn clone(&self) -> Configuration

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Configuration

Source§

impl Debug for Configuration

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Configuration

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for Configuration

Source§

impl PartialEq for Configuration

Source§

fn eq(&self, other: &Configuration) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Configuration

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.