Skip to main content

RxMeta

Struct RxMeta 

Source
#[non_exhaustive]
pub struct RxMeta {
Show 19 fields pub timestamp_us: u64, pub rssi: i8, pub noise_floor: i8, pub channel: u8, pub secondary: Secondary, pub bandwidth: Option<Bandwidth>, pub ppdu: PpduFormat, pub mcs: Option<u8>, pub stbc: Option<bool>, pub sgi: Option<bool>, pub n_rx: u8, pub n_ss: Option<u8>, pub antenna: Option<u8>, pub sig_len: u16, pub rx_state: u8, pub not_sounding: Option<bool>, pub aggregation: Option<bool>, pub frame_seq: Option<u16>, pub vendor: VendorRx,
}
Expand description

Normalised receive metadata: the fields every source can state in the same units.

A field is an Option when some source cannot state it. The Espressif 802.11ax-generation MAC (C5/C6), for instance, reports no MCS, STBC, guard-interval or antenna bit, and an absent value is None rather than a guess.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§timestamp_us: u64

Receive time on the node’s clock, microseconds. 64-bit: it does not wrap within a session.

§rssi: i8

Received signal strength, dBm.

§noise_floor: i8

Noise floor, dBm.

§channel: u8

Primary channel number.

§secondary: Secondary

Position of the secondary channel, for a 40 MHz-capable channel.

§bandwidth: Option<Bandwidth>

Bandwidth of the measured PPDU, when the source reports or implies it.

§ppdu: PpduFormat

Format of the measured PPDU.

§mcs: Option<u8>

MCS index, for HT/VHT/HE PPDUs where the source reports it.

§stbc: Option<bool>

Whether the PPDU used space-time block coding.

§sgi: Option<bool>

Whether the PPDU used a short guard interval.

§n_rx: u8

Receive chains the measurement covers.

§n_ss: Option<u8>

Spatial streams in the measured PPDU, when known.

§antenna: Option<u8>

Index of the antenna the PPDU was received on, when reported.

§sig_len: u16

Length of the received PPDU including its FCS, bytes.

§rx_state: u8

Receive state: 0 = no error, others are source-specific error codes.

§not_sounding: Option<bool>

Whether the PPDU was not a sounding PPDU (Some(false) = sounding, i.e. an NDP), when the source distinguishes them.

§aggregation: Option<bool>

Whether the MPDU arrived inside an A-MPDU, when reported.

§frame_seq: Option<u16>

The 12-bit 802.11 sequence number of the measured MPDU, when the source reports it. Assigned by the transmitter, per TID, and repeated on retries, so it measures loss on the air per transmitter. Use Envelope::stream_seq to count loss between node and host.

§vendor: VendorRx

Fields specific to the source’s chip family.

Trait Implementations§

Source§

impl Clone for RxMeta

Source§

fn clone(&self) -> Self

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 Debug for RxMeta

Source§

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

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

impl<'de> Deserialize<'de> for RxMeta

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl MaxSize for RxMeta

Source§

const POSTCARD_MAX_SIZE: usize

The maximum possible size that the serialization of this type can have, in bytes.
Source§

impl PartialEq for RxMeta

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for RxMeta

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for RxMeta

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.