Skip to main content

RxPayload

Struct RxPayload 

Source
pub struct RxPayload {
    pub rssi_tenths_dbm: i16,
    pub snr_tenths_db: i16,
    pub freq_err_hz: i32,
    pub timestamp_us: u64,
    pub crc_valid: bool,
    pub packets_dropped: u16,
    pub origin: RxOrigin,
    pub data: Vec<u8, MAX_OTA_PAYLOAD>,
}
Expand description

RX event payload (PROTOCOL.md §6.9). Metadata is the 20-byte prefix; data is the OTA packet body (0..=MAX_OTA_PAYLOAD bytes).

Fields§

§rssi_tenths_dbm: i16

RSSI in tenths of a dBm.

§snr_tenths_db: i16

SNR in tenths of a dB.

§freq_err_hz: i32

Estimated LO offset in Hz.

§timestamp_us: u64

Microseconds since boot, captured at RxDone IRQ.

§crc_valid: bool

True if the radio reported CRC pass (or CRC was not configured).

§packets_dropped: u16

Packets dropped since the previous delivered RX. Cleared to 0 on every delivered event.

§origin: RxOrigin§data: Vec<u8, MAX_OTA_PAYLOAD>

Implementations§

Source§

impl RxPayload

Source

pub const METADATA_SIZE: usize = 20

Fixed part of the payload preceding the variable-length data.

Source

pub fn encode(&self, buf: &mut [u8]) -> Result<usize, DeviceMessageEncodeError>

Source

pub fn decode(buf: &[u8]) -> Result<Self, DeviceMessageParseError>

Trait Implementations§

Source§

impl Clone for RxPayload

Source§

fn clone(&self) -> RxPayload

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 RxPayload

Source§

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

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

impl Format for RxPayload
where RxOrigin: Format, Vec<u8, MAX_OTA_PAYLOAD>: Format,

Source§

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

Writes the defmt representation of self to fmt.
Source§

impl PartialEq for RxPayload

Source§

fn eq(&self, other: &RxPayload) -> 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 Eq for RxPayload

Source§

impl StructuralPartialEq for RxPayload

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.