diff options
Diffstat (limited to 'embassy-net-esp-hosted/src/lib.rs')
| -rw-r--r-- | embassy-net-esp-hosted/src/lib.rs | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/embassy-net-esp-hosted/src/lib.rs b/embassy-net-esp-hosted/src/lib.rs index 8da0cd4dc..1fbed3e83 100644 --- a/embassy-net-esp-hosted/src/lib.rs +++ b/embassy-net-esp-hosted/src/lib.rs | |||
| @@ -10,9 +10,19 @@ use embassy_time::{Duration, Instant, Timer}; | |||
| 10 | use embedded_hal::digital::OutputPin; | 10 | use embedded_hal::digital::OutputPin; |
| 11 | 11 | ||
| 12 | use crate::ioctl::{PendingIoctl, Shared}; | 12 | use crate::ioctl::{PendingIoctl, Shared}; |
| 13 | use crate::proto::{CtrlMsg, CtrlMsgPayload}; | 13 | use crate::proto::{CtrlMsg, CtrlMsg_}; |
| 14 | 14 | ||
| 15 | mod proto; | 15 | mod proto { |
| 16 | #![allow(unused)] | ||
| 17 | #![allow(non_snake_case)] | ||
| 18 | #![allow(non_camel_case_types)] | ||
| 19 | #![allow(non_upper_case_globals)] | ||
| 20 | #![allow(missing_docs)] | ||
| 21 | #![allow(clippy::all)] | ||
| 22 | |||
| 23 | // Include the generated protobuf code from micropb-gen | ||
| 24 | include!(concat!(env!("OUT_DIR"), "/proto.rs")); | ||
| 25 | } | ||
| 16 | 26 | ||
| 17 | // must be first | 27 | // must be first |
| 18 | mod fmt; | 28 | mod fmt; |
| @@ -313,10 +323,12 @@ where | |||
| 313 | } | 323 | } |
| 314 | 324 | ||
| 315 | fn handle_event(&mut self, data: &[u8]) { | 325 | fn handle_event(&mut self, data: &[u8]) { |
| 316 | let Ok(event) = noproto::read::<CtrlMsg>(data) else { | 326 | use micropb::MessageDecode; |
| 327 | let mut event = CtrlMsg::default(); | ||
| 328 | if event.decode_from_bytes(data).is_err() { | ||
| 317 | warn!("failed to parse event"); | 329 | warn!("failed to parse event"); |
| 318 | return; | 330 | return; |
| 319 | }; | 331 | } |
| 320 | 332 | ||
| 321 | debug!("event: {:?}", &event); | 333 | debug!("event: {:?}", &event); |
| 322 | 334 | ||
| @@ -326,9 +338,9 @@ where | |||
| 326 | }; | 338 | }; |
| 327 | 339 | ||
| 328 | match payload { | 340 | match payload { |
| 329 | CtrlMsgPayload::EventEspInit(_) => self.shared.init_done(), | 341 | CtrlMsg_::Payload::EventEspInit(_) => self.shared.init_done(), |
| 330 | CtrlMsgPayload::EventHeartbeat(_) => self.heartbeat_deadline = Instant::now() + HEARTBEAT_MAX_GAP, | 342 | CtrlMsg_::Payload::EventHeartbeat(_) => self.heartbeat_deadline = Instant::now() + HEARTBEAT_MAX_GAP, |
| 331 | CtrlMsgPayload::EventStationDisconnectFromAp(e) => { | 343 | CtrlMsg_::Payload::EventStationDisconnectFromAp(e) => { |
| 332 | info!("disconnected, code {}", e.resp); | 344 | info!("disconnected, code {}", e.resp); |
| 333 | self.state_ch.set_link_state(LinkState::Down); | 345 | self.state_ch.set_link_state(LinkState::Down); |
| 334 | } | 346 | } |
