Skip to main content

Interface

Struct Interface 

Source
pub struct Interface { /* private fields */ }
Available on crate feature wifi only.
Expand description

Wi-Fi interface.

This implements the embassy-net-driver trait for up to three latest versions of that crate. While that crate isn’t stable we make an exception here from the API Guidelines in exposing unstable dependencies.

Each interface mode (station, access point) is a singleton — only one instance of each can exist at a time. Create interfaces via Interface::station() or Interface::access_point() before or after calling WifiController::new(). Dropping the interface releases the singleton so it can be created again.

Implementations§

Source§

impl Interface

Source

pub fn station() -> Self

Creates the station-mode interface.

§Panics

Panics if a station interface already exists. Use try_station() for a non-panicking alternative.

Source

pub fn try_station() -> Option<Self>

Tries to create the station-mode interface.

Returns None if a station interface already exists.

Source

pub fn access_point() -> Self

Creates the access-point-mode interface.

§Panics

Panics if an access-point interface already exists. Use try_access_point() for a non-panicking alternative.

Source

pub fn try_access_point() -> Option<Self>

Tries to create the access-point-mode interface.

Returns None if an access-point interface already exists.

Source

pub fn mac_address(&self) -> [u8; 6]

Retrieves the MAC address of the Wi-Fi device.

§Example
let _controller = esp_radio::wifi::WifiController::new(peripherals.WIFI, Default::default())?;

let station = esp_radio::wifi::Interface::station();
let mac = station.mac_address();

println!("Station MAC: {:02x?}", mac);

Trait Implementations§

Source§

impl Debug for Interface

Source§

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

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

impl Driver for Interface

Source§

type RxToken<'a> = WifiRxToken where Self: 'a

A token to receive a single network packet.
Source§

type TxToken<'a> = WifiTxToken where Self: 'a

A token to transmit a single network packet.
Source§

fn receive( &mut self, cx: &mut Context<'_>, ) -> Option<(Self::RxToken<'_>, Self::TxToken<'_>)>

Construct a token pair consisting of one receive token and one transmit token. Read more
Source§

fn transmit(&mut self, cx: &mut Context<'_>) -> Option<Self::TxToken<'_>>

Construct a transmit token. Read more
Get the link state. Read more
Source§

fn capabilities(&self) -> Capabilities

Get a description of device capabilities.
Source§

fn hardware_address(&self) -> HardwareAddress

Get the device’s hardware address. Read more
Source§

impl Drop for Interface

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more
Source§

impl Eq for Interface

Source§

impl Format for Interface
where InterfaceType: Format,

Source§

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

Writes the defmt representation of self to fmt.
Source§

impl Hash for Interface

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given [Hasher]. Read more
1.3.0§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given [Hasher]. Read more
Source§

impl PartialEq for Interface

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable)§

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 StructuralPartialEq for Interface

Auto Trait Implementations§

§

impl Freeze for Interface

§

impl RefUnwindSafe for Interface

§

impl Send for Interface

§

impl Sync for Interface

§

impl Unpin for Interface

§

impl UnsafeUnpin for Interface

§

impl UnwindSafe for Interface

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> 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, 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.