feat: log the error with the wifi config

This commit is contained in:
2026-08-17 17:37:59 -05:00
parent 02a4559268
commit 8695d0abfa
+16 -9
View File
@@ -4,20 +4,25 @@ use embassy_futures::select::Either::First;
use embassy_futures::select::select;
use embassy_net::{Runner, Stack};
use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
use embassy_sync::channel::{Channel, Sender};
use embassy_sync::{channel::Channel};
use embassy_time::{Duration, Timer};
use esp_hal::peripherals::WIFI;
use esp_radio::wifi::sta::StationConfig;
use esp_radio::wifi::{ControllerConfig, Interface, WifiController, WifiError};
use esp_radio::wifi::{ControllerConfig, Interface, WifiController};
pub enum WifiCommand<'a> {
SetStationConfig(
esp_radio::wifi::Config,
Sender<'a, CriticalSectionRawMutex, Result<(), WifiError>, 1>,
),
pub enum WifiCommand {
SetStationConfig(esp_radio::wifi::Config),
SetDhcpConfig(embassy_net::DhcpConfig),
}
impl WifiCommand {
pub async fn set_station_config(config: esp_radio::wifi::Config) {
WIFI_CH
.send(WifiCommand::SetStationConfig(config))
.await;
}
}
pub static WIFI_CH: Channel<CriticalSectionRawMutex, WifiCommand, 4> = Channel::new();
pub fn start_wifi(spawner: Spawner, wifi: WIFI<'static>) -> Stack<'static> {
@@ -57,8 +62,10 @@ async fn handler(mut controller: WifiController<'static>, net_stack: Stack<'stat
let receiver = WIFI_CH.receiver();
loop {
match select(receiver.receive(), connection(&mut controller, net_stack)).await {
First(WifiCommand::SetStationConfig(config, res)) => {
res.send(controller.set_config(&config)).await;
First(WifiCommand::SetStationConfig(config)) => {
if controller.set_config(&config).is_err() {
error!("Set WiFi config failed: {:?}", config);
};
}
First(WifiCommand::SetDhcpConfig(dhcp_config)) => {
net_stack.set_config_v4(embassy_net::ConfigV4::Dhcp(dhcp_config));