sx126x 0.3.0

A driver for the SX126X Family of LoRa modems
Documentation
#[derive(Copy, Clone)]
pub struct DeviceErrors {
    inner: u16,
}

impl core::fmt::Debug for DeviceErrors {
    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
        let rc64k_calib_err = self.rc64k_calib_err();
        let rc13m_calib_err = self.rc13m_calib_err();
        let pll_calib_err = self.pll_calib_err();
        let adc_calib_err = self.adc_calib_err();
        let img_calib_err = self.img_calib_err();
        let xosc_start_err = self.xosc_start_err();
        let pll_lock_err = self.pll_lock_err();
        let pa_ramp_err = self.pa_ramp_err();
        write!(
            f,
            "DeviceErrors {{inner: {:#016b}, rc64k_calib_err: {}, rc13m_calib_err: {}, pll_calib_err: {}, adc_calib_err: {}, img_calib_err: {}, xosc_start_err: {}, pll_lock_err: {}, pa_ramp_err: {}}}",
            self.inner,
            rc64k_calib_err,
            rc13m_calib_err,
            pll_calib_err,
            adc_calib_err,
            img_calib_err,
            xosc_start_err,
            pll_lock_err,
            pa_ramp_err,
        )
    }
}

impl From<u16> for DeviceErrors {
    fn from(val: u16) -> Self {
        Self { inner: val }
    }
}

impl DeviceErrors {
    pub fn rc64k_calib_err(self) -> bool {
        (self.inner & 1 << 0) > 0
    }

    pub fn rc13m_calib_err(self) -> bool {
        (self.inner & 1 << 1) > 0
    }

    pub fn pll_calib_err(self) -> bool {
        (self.inner & 1 << 2) > 0
    }

    pub fn adc_calib_err(self) -> bool {
        (self.inner & 1 << 3) > 0
    }

    pub fn img_calib_err(self) -> bool {
        (self.inner & 1 << 4) > 0
    }

    pub fn xosc_start_err(self) -> bool {
        (self.inner & 1 << 5) > 0
    }

    pub fn pll_lock_err(self) -> bool {
        (self.inner & 1 << 6) > 0
    }

    pub fn pa_ramp_err(self) -> bool {
        (self.inner & 1 << 8) > 0
    }
}