diff options
Diffstat (limited to 'embassy-nrf')
| -rw-r--r-- | embassy-nrf/src/buffered_uarte.rs | 18 |
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..b368a3d33 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 = U::buffered_state(); | ||
| 773 | Ok(!state.rx_buf.is_empty()) | ||
| 774 | } | ||
| 769 | } | 775 | } |
| 770 | 776 | ||
| 771 | impl<'a, U: UarteInstance, T: TimerInstance> Drop for BufferedUarteRx<'a, U, T> { | 777 | impl<'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, U, 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 |
