From 9857af6eb45851ea8e68ee628db4c6e2bf25335b Mon Sep 17 00:00:00 2001 From: Stephen D <webmaster@scd31.com> Date: Thu, 16 Nov 2023 16:19:12 -0400 Subject: [PATCH] fix bug when switching from rx to tx --- src/lib.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 3b79878..61b8e56 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -71,6 +71,10 @@ where self.radio.get_rssi() } + pub fn sleep(&mut self) -> Result<(), RfError<Spi::Error>> { + self.radio.sleep() + } + pub fn set_channel(&mut self, channel: u8) { self.channel = channel; } @@ -160,6 +164,12 @@ where let len = tx_buf.len(); assert!(len < 8192, "Packet length cannot be above 8191 bytes"); + if matches!(self.state, InternalState::Rx { .. }) { + // if we're in the middle of rxing, we need to cancel that first + // otherwise it gets confused + self.radio.set_state(State::Sleep).txe()?; + } + self.radio.clear_fifo().txe()?; self.radio.clear_ph_and_modem_interrupts().txe()?; -- GitLab