#![deny(unsafe_code)]
#![no_std]
use core::marker::PhantomData;
mod accel_settings;
mod device_impl;
mod gyro_settings;
pub mod interface;
mod mag_compensation;
mod mag_settings;
mod types;
use register_address::{
BgwSpi3WdtG, BwG, IntEn0G, IntEn1A, OpmOdrStM, PmuRangeA, PwrCntl1M, RangeG,
};
use types::TrimData;
pub use crate::types::{
mode, AccelBandwidth, AccelMode, AccelRange, Acceleration, AccelerometerId, Error,
GyroFilterBandwidth, GyroMode, GyroRange, GyroscopeId, ModeChangeError, Status,
};
mod register_address;
use crate::register_address::PmuBwA;
#[allow(dead_code)]
#[derive(Debug)]
pub struct Bmx055<DI, MODE> {
iface: DI,
int_en_1_a: IntEn1A,
pmu_range_a: PmuRangeA,
pmu_bw_a: PmuBwA,
int_en_0_g: IntEn0G,
bgw_spi3_wdt_g: BgwSpi3WdtG,
bw_g: BwG,
range_g: RangeG,
pwr_cntl_1_m: PwrCntl1M,
opm_odr_st_m: OpmOdrStM,
mag_trim_data: Option<TrimData>,
_mag_mode: PhantomData<MODE>,
}
mod private {
use crate::interface;
pub trait Sealed {}
impl<SPI, CSXL, CSGYR, CSMAG> Sealed for interface::SpiInterface<SPI, CSXL, CSGYR, CSMAG> {}
impl<I2C> Sealed for interface::I2cInterface<I2C> {}
}