esp-hosted: print events.

This commit is contained in:
Dario Nieuwenhuis 2023-06-21 18:13:19 +02:00
parent 6c123596b7
commit ec2c095a76
4 changed files with 90 additions and 11 deletions

View file

@ -112,6 +112,8 @@ impl<'a> Control<'a> {
} }
async fn ioctl(&mut self, req: CtrlMsg) -> CtrlMsg { async fn ioctl(&mut self, req: CtrlMsg) -> CtrlMsg {
debug!("ioctl req: {:?}", &req);
let mut buf = [0u8; 128]; let mut buf = [0u8; 128];
let req_len = noproto::write(&req, &mut buf).unwrap(); let req_len = noproto::write(&req, &mut buf).unwrap();
@ -136,6 +138,9 @@ impl<'a> Control<'a> {
ioctl.defuse(); ioctl.defuse();
noproto::read(&buf[..resp_len]).unwrap() let res = noproto::read(&buf[..resp_len]).unwrap();
debug!("ioctl resp: {:?}", &res);
res
} }
} }

View file

@ -94,7 +94,7 @@ impl IoctlState {
} }
pub async fn do_ioctl(&self, buf: &mut [u8], req_len: usize) -> usize { pub async fn do_ioctl(&self, buf: &mut [u8], req_len: usize) -> usize {
debug!("IOCTL Request: {:02x}", Bytes(&buf[..req_len])); trace!("ioctl req bytes: {:02x}", Bytes(&buf[..req_len]));
self.state.set(IoctlStateInner::Pending(PendingIoctl { buf, req_len })); self.state.set(IoctlStateInner::Pending(PendingIoctl { buf, req_len }));
self.wake_runner(); self.wake_runner();
@ -103,7 +103,7 @@ impl IoctlState {
pub fn ioctl_done(&self, response: &[u8]) { pub fn ioctl_done(&self, response: &[u8]) {
if let IoctlStateInner::Sent { buf } = self.state.get() { if let IoctlStateInner::Sent { buf } = self.state.get() {
debug!("IOCTL Response: {:02x}", Bytes(response)); trace!("ioctl resp bytes: {:02x}", Bytes(response));
// TODO fix this // TODO fix this
(unsafe { &mut *buf }[..response.len()]).copy_from_slice(response); (unsafe { &mut *buf }[..response.len()]).copy_from_slice(response);

View file

@ -8,6 +8,7 @@ use embedded_hal::digital::{InputPin, OutputPin};
use embedded_hal_async::digital::Wait; use embedded_hal_async::digital::Wait;
use embedded_hal_async::spi::SpiDevice; use embedded_hal_async::spi::SpiDevice;
use ioctl::IoctlState; use ioctl::IoctlState;
use proto::CtrlMsg;
use crate::ioctl::PendingIoctl; use crate::ioctl::PendingIoctl;
@ -194,8 +195,6 @@ where
tx_buf[0..12].copy_from_slice(&header.to_bytes()); tx_buf[0..12].copy_from_slice(&header.to_bytes());
header.checksum = checksum(&tx_buf[..26 + req_len]); header.checksum = checksum(&tx_buf[..26 + req_len]);
tx_buf[0..12].copy_from_slice(&header.to_bytes()); tx_buf[0..12].copy_from_slice(&header.to_bytes());
debug!("====== SENDING IOCTL");
} }
Either3::Second(packet) => { Either3::Second(packet) => {
tx_buf[12..][..packet.len()].copy_from_slice(packet); tx_buf[12..][..packet.len()].copy_from_slice(packet);
@ -270,25 +269,46 @@ where
}, },
// serial // serial
2 => { 2 => {
debug!("serial rx: {:02x}", payload); trace!("serial rx: {:02x}", payload);
if payload.len() < 14 { if payload.len() < 14 {
warn!("serial rx: too short"); warn!("serial rx: too short");
return; return;
} }
if &payload[..12] != b"\x01\x08\x00ctrlResp\x02" {
warn!("serial rx: bad tlv"); let isEvent = match &payload[..12] {
return; b"\x01\x08\x00ctrlResp\x02" => false,
} b"\x01\x08\x00ctrlEvnt\x02" => true,
_ => {
warn!("serial rx: bad tlv");
return;
}
};
let len = u16::from_le_bytes(payload[12..14].try_into().unwrap()) as usize; let len = u16::from_le_bytes(payload[12..14].try_into().unwrap()) as usize;
if payload.len() < 14 + len { if payload.len() < 14 + len {
warn!("serial rx: too short 2"); warn!("serial rx: too short 2");
return; return;
} }
self.ioctl_state.ioctl_done(&payload[14..][..len]); let data = &payload[14..][..len];
if isEvent {
self.handle_event(data);
} else {
self.ioctl_state.ioctl_done(data);
}
} }
_ => warn!("unknown iftype {}", if_type_and_num), _ => warn!("unknown iftype {}", if_type_and_num),
} }
} }
fn handle_event(&self, data: &[u8]) {
let Ok(event) = noproto::read::<CtrlMsg>(data) else {
warn!("failed to parse event");
return
};
debug!("event: {:?}", &event);
}
} }
fn checksum(buf: &[u8]) -> u16 { fn checksum(buf: &[u8]) -> u16 {

View file

@ -3,6 +3,7 @@ use heapless::{String, Vec};
/// internal supporting structures for CtrlMsg /// internal supporting structures for CtrlMsg
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct ScanResult { pub struct ScanResult {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub ssid: String<32>, pub ssid: String<32>,
@ -17,6 +18,7 @@ pub struct ScanResult {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct ConnectedStaList { pub struct ConnectedStaList {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub mac: String<32>, pub mac: String<32>,
@ -26,12 +28,14 @@ pub struct ConnectedStaList {
/// * Req/Resp structure * /// * Req/Resp structure *
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqGetMacAddress { pub struct CtrlMsgReqGetMacAddress {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub mode: u32, pub mode: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespGetMacAddress { pub struct CtrlMsgRespGetMacAddress {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub mac: String<32>, pub mac: String<32>,
@ -40,9 +44,11 @@ pub struct CtrlMsgRespGetMacAddress {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqGetMode {} pub struct CtrlMsgReqGetMode {}
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespGetMode { pub struct CtrlMsgRespGetMode {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub mode: u32, pub mode: u32,
@ -51,27 +57,32 @@ pub struct CtrlMsgRespGetMode {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqSetMode { pub struct CtrlMsgReqSetMode {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub mode: u32, pub mode: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespSetMode { pub struct CtrlMsgRespSetMode {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqGetStatus {} pub struct CtrlMsgReqGetStatus {}
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespGetStatus { pub struct CtrlMsgRespGetStatus {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqSetMacAddress { pub struct CtrlMsgReqSetMacAddress {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub mac: String<32>, pub mac: String<32>,
@ -80,15 +91,18 @@ pub struct CtrlMsgReqSetMacAddress {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespSetMacAddress { pub struct CtrlMsgRespSetMacAddress {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqGetApConfig {} pub struct CtrlMsgReqGetApConfig {}
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespGetApConfig { pub struct CtrlMsgRespGetApConfig {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub ssid: String<32>, pub ssid: String<32>,
@ -105,6 +119,7 @@ pub struct CtrlMsgRespGetApConfig {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqConnectAp { pub struct CtrlMsgReqConnectAp {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub ssid: String<32>, pub ssid: String<32>,
@ -119,6 +134,7 @@ pub struct CtrlMsgReqConnectAp {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespConnectAp { pub struct CtrlMsgRespConnectAp {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
@ -127,9 +143,11 @@ pub struct CtrlMsgRespConnectAp {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqGetSoftApConfig {} pub struct CtrlMsgReqGetSoftApConfig {}
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespGetSoftApConfig { pub struct CtrlMsgRespGetSoftApConfig {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub ssid: String<32>, pub ssid: String<32>,
@ -150,6 +168,7 @@ pub struct CtrlMsgRespGetSoftApConfig {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqStartSoftAp { pub struct CtrlMsgReqStartSoftAp {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub ssid: String<32>, pub ssid: String<32>,
@ -168,6 +187,7 @@ pub struct CtrlMsgReqStartSoftAp {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespStartSoftAp { pub struct CtrlMsgRespStartSoftAp {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
@ -176,9 +196,11 @@ pub struct CtrlMsgRespStartSoftAp {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqScanResult {} pub struct CtrlMsgReqScanResult {}
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespScanResult { pub struct CtrlMsgRespScanResult {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub count: u32, pub count: u32,
@ -189,9 +211,11 @@ pub struct CtrlMsgRespScanResult {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqSoftApConnectedSta {} pub struct CtrlMsgReqSoftApConnectedSta {}
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespSoftApConnectedSta { pub struct CtrlMsgRespSoftApConnectedSta {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub num: u32, pub num: u32,
@ -202,36 +226,43 @@ pub struct CtrlMsgRespSoftApConnectedSta {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqOtaBegin {} pub struct CtrlMsgReqOtaBegin {}
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespOtaBegin { pub struct CtrlMsgRespOtaBegin {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqOtaWrite { pub struct CtrlMsgReqOtaWrite {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub ota_data: Vec<u8, 1024>, pub ota_data: Vec<u8, 1024>,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespOtaWrite { pub struct CtrlMsgRespOtaWrite {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqOtaEnd {} pub struct CtrlMsgReqOtaEnd {}
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespOtaEnd { pub struct CtrlMsgRespOtaEnd {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqVendorIeData { pub struct CtrlMsgReqVendorIeData {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub element_id: u32, pub element_id: u32,
@ -246,6 +277,7 @@ pub struct CtrlMsgReqVendorIeData {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqSetSoftApVendorSpecificIe { pub struct CtrlMsgReqSetSoftApVendorSpecificIe {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub enable: bool, pub enable: bool,
@ -258,27 +290,32 @@ pub struct CtrlMsgReqSetSoftApVendorSpecificIe {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespSetSoftApVendorSpecificIe { pub struct CtrlMsgRespSetSoftApVendorSpecificIe {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqSetWifiMaxTxPower { pub struct CtrlMsgReqSetWifiMaxTxPower {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub wifi_max_tx_power: u32, pub wifi_max_tx_power: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespSetWifiMaxTxPower { pub struct CtrlMsgRespSetWifiMaxTxPower {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqGetWifiCurrTxPower {} pub struct CtrlMsgReqGetWifiCurrTxPower {}
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespGetWifiCurrTxPower { pub struct CtrlMsgRespGetWifiCurrTxPower {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub wifi_curr_tx_power: u32, pub wifi_curr_tx_power: u32,
@ -287,6 +324,7 @@ pub struct CtrlMsgRespGetWifiCurrTxPower {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgReqConfigHeartbeat { pub struct CtrlMsgReqConfigHeartbeat {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub enable: bool, pub enable: bool,
@ -295,6 +333,7 @@ pub struct CtrlMsgReqConfigHeartbeat {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgRespConfigHeartbeat { pub struct CtrlMsgRespConfigHeartbeat {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
@ -302,24 +341,28 @@ pub struct CtrlMsgRespConfigHeartbeat {
/// * Event structure * /// * Event structure *
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgEventEspInit { pub struct CtrlMsgEventEspInit {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub init_data: Vec<u8, 64>, pub init_data: Vec<u8, 64>,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgEventHeartbeat { pub struct CtrlMsgEventHeartbeat {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub hb_num: u32, pub hb_num: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgEventStationDisconnectFromAp { pub struct CtrlMsgEventStationDisconnectFromAp {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsgEventStationDisconnectFromEspSoftAp { pub struct CtrlMsgEventStationDisconnectFromEspSoftAp {
#[noproto(tag = "1")] #[noproto(tag = "1")]
pub resp: u32, pub resp: u32,
@ -328,6 +371,7 @@ pub struct CtrlMsgEventStationDisconnectFromEspSoftAp {
} }
#[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)] #[derive(Debug, Default, Clone, Eq, PartialEq, noproto::Message)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct CtrlMsg { pub struct CtrlMsg {
/// msg_type could be req, resp or Event /// msg_type could be req, resp or Event
#[noproto(tag = "1")] #[noproto(tag = "1")]
@ -345,6 +389,7 @@ pub struct CtrlMsg {
/// union of all msg ids /// union of all msg ids
#[derive(Debug, Clone, Eq, PartialEq, noproto::Oneof)] #[derive(Debug, Clone, Eq, PartialEq, noproto::Oneof)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlMsgPayload { pub enum CtrlMsgPayload {
/// * Requests * /// * Requests *
#[noproto(tag = "101")] #[noproto(tag = "101")]
@ -446,6 +491,7 @@ pub enum CtrlMsgPayload {
/// Enums similar to ESP IDF /// Enums similar to ESP IDF
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)] #[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)]
#[repr(u32)] #[repr(u32)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlVendorIeType { pub enum CtrlVendorIeType {
#[default] #[default]
Beacon = 0, Beacon = 0,
@ -457,6 +503,7 @@ pub enum CtrlVendorIeType {
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)] #[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)]
#[repr(u32)] #[repr(u32)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlVendorIeid { pub enum CtrlVendorIeid {
#[default] #[default]
Id0 = 0, Id0 = 0,
@ -465,6 +512,7 @@ pub enum CtrlVendorIeid {
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)] #[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)]
#[repr(u32)] #[repr(u32)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlWifiMode { pub enum CtrlWifiMode {
#[default] #[default]
None = 0, None = 0,
@ -475,6 +523,7 @@ pub enum CtrlWifiMode {
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)] #[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)]
#[repr(u32)] #[repr(u32)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlWifiBw { pub enum CtrlWifiBw {
#[default] #[default]
BwInvalid = 0, BwInvalid = 0,
@ -484,6 +533,7 @@ pub enum CtrlWifiBw {
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)] #[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)]
#[repr(u32)] #[repr(u32)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlWifiPowerSave { pub enum CtrlWifiPowerSave {
#[default] #[default]
PsInvalid = 0, PsInvalid = 0,
@ -493,6 +543,7 @@ pub enum CtrlWifiPowerSave {
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)] #[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)]
#[repr(u32)] #[repr(u32)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlWifiSecProt { pub enum CtrlWifiSecProt {
#[default] #[default]
Open = 0, Open = 0,
@ -508,6 +559,7 @@ pub enum CtrlWifiSecProt {
/// enums for Control path /// enums for Control path
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)] #[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)]
#[repr(u32)] #[repr(u32)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlStatus { pub enum CtrlStatus {
#[default] #[default]
Connected = 0, Connected = 0,
@ -520,6 +572,7 @@ pub enum CtrlStatus {
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)] #[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)]
#[repr(u32)] #[repr(u32)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlMsgType { pub enum CtrlMsgType {
#[default] #[default]
MsgTypeInvalid = 0, MsgTypeInvalid = 0,
@ -531,6 +584,7 @@ pub enum CtrlMsgType {
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)] #[derive(Debug, Default, Clone, Copy, Eq, PartialEq, Hash, PartialOrd, Ord, noproto::Enumeration)]
#[repr(u32)] #[repr(u32)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum CtrlMsgId { pub enum CtrlMsgId {
#[default] #[default]
MsgIdInvalid = 0, MsgIdInvalid = 0,