Skip to main content

OrientationConfig

Struct OrientationConfig 

Source
pub struct OrientationConfig {
    pub upside_down_enabled: bool,
    pub mode: OrientationMode,
    pub blocking: FeatureBlockingMode,
    pub theta: u8,
    pub hold_time: u8,
    pub slope_threshold: u8,
    pub hysteresis: u8,
    pub report_mode: EventReportMode,
    pub interrupt_hold: u8,
}
Expand description

Configuration for the BMI323 orientation-detection feature.

Fields§

§upside_down_enabled: bool

Whether upside-down orientation detection is enabled.

§mode: OrientationMode

Portrait/landscape spread mode.

§blocking: FeatureBlockingMode

Blocking behavior to suppress orientation changes during large movement.

§theta: u8

Maximum allowed tilt angle for orientation classification.

Unit: degrees Encoding: nonlinear Field width: 6 bits

The datasheet interpretation is (tan(theta)^2) * 64.

§hold_time: u8

Minimum time the device must remain in the new orientation before an event is asserted.

Unit: seconds Scaling: raw / 50 Range: 0 ..= 31, corresponding to approximately 0.0s ..= 0.62s

§slope_threshold: u8

Minimum slope between consecutive acceleration samples used for blocking orientation changes during large movement.

Unit: g Scaling: raw / 512 Range: 0 ..= 255, corresponding to approximately 0.0g ..= 0.498g

§hysteresis: u8

Hysteresis of acceleration for orientation change detection.

Unit: g Scaling: raw / 512 Range: 0 ..= 255, corresponding to approximately 0.0g ..= 0.498g

§report_mode: EventReportMode

Event reporting behavior shared across feature-engine interrupts.

§interrupt_hold: u8

Shared feature-engine interrupt hold-time exponent.

Implementations§

Source§

impl OrientationConfig

Source

pub fn hold_time_from_seconds(seconds: f32) -> u8

Convert a hold time in seconds to the BMI323 field encoding.

Source

pub fn hold_time_to_seconds(raw: u8) -> f32

Convert a raw hold-time field value back to seconds.

Source

pub fn slope_threshold_from_g(g: f32) -> u8

Convert a slope threshold in g to the BMI323 field encoding.

Source

pub fn slope_threshold_to_g(raw: u8) -> f32

Convert a raw slope-threshold field value back to g.

Source

pub fn hysteresis_from_g(g: f32) -> u8

Convert a hysteresis in g to the BMI323 field encoding.

Source

pub fn hysteresis_to_g(raw: u8) -> f32

Convert a raw hysteresis field value back to g.

Source

pub fn interrupt_hold_from_millis(millis: f32) -> u8

Convert an interrupt hold time in milliseconds to the BMI323 field encoding.

Source

pub fn interrupt_hold_to_millis(raw: u8) -> f32

Convert a raw interrupt-hold field value back to milliseconds.

Trait Implementations§

Source§

impl Clone for OrientationConfig

Source§

fn clone(&self) -> OrientationConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for OrientationConfig

Source§

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

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

impl Format for OrientationConfig

Source§

fn format(&self, f: Formatter<'_>)

Writes the defmt representation of self to fmt.
Source§

impl PartialEq for OrientationConfig

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Copy for OrientationConfig

Source§

impl Eq for OrientationConfig

Source§

impl StructuralPartialEq for OrientationConfig

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.