RxControlInfo

Struct RxControlInfo 

Source
pub struct RxControlInfo {
Show 19 fields pub rssi: i32, pub rate: u32, pub sig_mode: u32, pub mcs: u32, pub cwb: u32, pub smoothing: u32, pub not_sounding: u32, pub aggregation: u32, pub stbc: u32, pub fec_coding: u32, pub sgi: u32, pub ampdu_cnt: u32, pub channel: u32, pub secondary_channel: u32, pub timestamp: u32, pub noise_floor: i32, pub ant: u32, pub sig_len: u32, pub rx_state: u32,
}
Available on crate feature wifi and non-esp32c6 and (crate features esp-now or sniffer) and crate feature unstable only.
Expand description

The radio metadata header of the received packet, which is the common header at the beginning of all RX callback buffers in promiscuous mode.

Fields§

§rssi: i32

Received Signal Strength Indicator (RSSI) of the packet, in dBm.

§rate: u32

PHY rate encoding of the packet. Only valid for non-HT (802.11b/g) packets.

§sig_mode: u32

Protocol of the received packet: 0 for non-HT (11bg), 1 for HT (11n), 3 for VHT (11ac).

§mcs: u32

Modulation and Coding Scheme (MCS). Indicates modulation for HT (11n) packets.

§cwb: u32

Channel bandwidth of the packet: 0 for 20MHz, 1 for 40MHz.

§smoothing: u32

Channel estimate smoothing: 1 recommends smoothing; 0 recommends per-carrier-independent estimate.

§not_sounding: u32

Sounding indicator: 0 for sounding PPDU (used for channel estimation); 1 for non-sounding PPDU.

§aggregation: u32

Aggregation status: 0 for MPDU packet, 1 for AMPDU packet.

§stbc: u32

Space-Time Block Coding (STBC) status: 0 for non-STBC packet, 1 for STBC packet.

§fec_coding: u32

Forward Error Correction (FEC) status: indicates if LDPC coding is used for 11n packets.

§sgi: u32

Short Guard Interval (SGI): 0 for long guard interval, 1 for short guard interval.

§ampdu_cnt: u32

Number of subframes aggregated in an AMPDU packet.

§channel: u32

Primary channel on which the packet is received.

§secondary_channel: u32

Secondary channel on which the packet is received: 0 for none, 1 for above, 2 for below.

§timestamp: u32

Timestamp of when the packet is received, in microseconds. Precise only if modem sleep or light sleep is not enabled.

§noise_floor: i32

Noise floor of the Radio Frequency module, in dBm.

§ant: u32

Antenna number from which the packet is received: 0 for antenna 0, 1 for antenna 1.

§sig_len: u32

Length of the packet including the Frame Check Sequence (FCS).

§rx_state: u32

State of the packet: 0 for no error, other values indicate error codes.

Implementations§

Source§

impl RxControlInfo

Source

pub unsafe fn from_raw(rx_cntl: *const wifi_pkt_rx_ctrl_t) -> Self

Create an instance from a raw pointer to wifi_pkt_rx_ctrl_t.

§Safety

When calling this, you must ensure, that rx_cntl points to a valid instance of wifi_pkt_rx_ctrl_t.

Trait Implementations§

Source§

impl Clone for RxControlInfo

Source§

fn clone(&self) -> RxControlInfo

Returns a duplicate of the value. Read more
1.0.0§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for RxControlInfo

Source§

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

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

impl Format for RxControlInfo

Source§

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

Writes the defmt representation of self to fmt.
Source§

impl Copy for RxControlInfo

Auto Trait Implementations§

§

impl Freeze for RxControlInfo

§

impl RefUnwindSafe for RxControlInfo

§

impl Send for RxControlInfo

§

impl Sync for RxControlInfo

§

impl Unpin for RxControlInfo

§

impl UnwindSafe for RxControlInfo

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

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

§

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
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

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
§

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

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

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

§

type Error = <U as TryFrom<T>>::Error

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

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.