aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-nrf/src/buffered_uarte.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs
index 8e4064aaa..ef34e2e32 100644
--- a/embassy-nrf/src/buffered_uarte.rs
+++ b/embassy-nrf/src/buffered_uarte.rs
@@ -766,6 +766,12 @@ impl<'d, U: UarteInstance, T: TimerInstance> BufferedUarteRx<'d, U, T> {
766 rx.pop_done(amt); 766 rx.pop_done(amt);
767 U::regs().intenset.write(|w| w.rxstarted().set()); 767 U::regs().intenset.write(|w| w.rxstarted().set());
768 } 768 }
769
770 /// we are ready to read if there is data in the buffer
771 fn read_ready() -> Result<bool, Error> {
772 let state = T::buffered_state();
773 Ok(!state.rx_buf.is_empty())
774 }
769} 775}
770 776
771impl<'a, U: UarteInstance, T: TimerInstance> Drop for BufferedUarteRx<'a, U, T> { 777impl<'a, U: UarteInstance, T: TimerInstance> Drop for BufferedUarteRx<'a, U, T> {
@@ -827,6 +833,18 @@ mod _embedded_io {
827 } 833 }
828 } 834 }
829 835
836 impl<'d, U: UarteInstance, T: TimerInstance + 'd> embedded_io_async::ReadReady for BufferedUarte<'d, U, T> {
837 fn read_ready(&mut self) -> Result<bool, Self::Error> {
838 BufferedUarteRx::<'d, T>::read_ready()
839 }
840 }
841
842 impl<'d, U: UarteInstance, T: TimerInstance + 'd> embedded_io_async::ReadReady for BufferedUarteRx<'d, U, T> {
843 fn read_ready(&mut self) -> Result<bool, Self::Error> {
844 Self::read_ready()
845 }
846 }
847
830 impl<'d, U: UarteInstance, T: TimerInstance> embedded_io_async::BufRead for BufferedUarte<'d, U, T> { 848 impl<'d, U: UarteInstance, T: TimerInstance> embedded_io_async::BufRead for BufferedUarte<'d, U, T> {
831 async fn fill_buf(&mut self) -> Result<&[u8], Self::Error> { 849 async fn fill_buf(&mut self) -> Result<&[u8], Self::Error> {
832 self.fill_buf().await 850 self.fill_buf().await