aboutsummaryrefslogtreecommitdiff
path: root/embassy-embedded-hal/src/adapter
diff options
context:
space:
mode:
authorROMemories <[email protected]>2025-07-23 16:51:33 +0200
committerROMemories <[email protected]>2025-07-24 09:26:19 +0200
commitf819b0d63c4b670f2aef3e8e9b35b0745090052d (patch)
tree5c6e5d228c22aff0900bb81d78028eb8fbc3503b /embassy-embedded-hal/src/adapter
parentf63e2fe7d41ad8939eea9525a83f6b60472b6f4f (diff)
feat(embedded-hal)!: rely on v1.0 traits for `SpiBus` on `BlockingAsync`
Diffstat (limited to 'embassy-embedded-hal/src/adapter')
-rw-r--r--embassy-embedded-hal/src/adapter/blocking_async.rs18
1 files changed, 7 insertions, 11 deletions
diff --git a/embassy-embedded-hal/src/adapter/blocking_async.rs b/embassy-embedded-hal/src/adapter/blocking_async.rs
index bafc31583..bc965fbdd 100644
--- a/embassy-embedded-hal/src/adapter/blocking_async.rs
+++ b/embassy-embedded-hal/src/adapter/blocking_async.rs
@@ -63,16 +63,16 @@ where
63 63
64impl<T, E> embedded_hal_async::spi::ErrorType for BlockingAsync<T> 64impl<T, E> embedded_hal_async::spi::ErrorType for BlockingAsync<T>
65where 65where
66 E: embedded_hal_1::spi::Error, 66 E: embedded_hal_async::spi::Error,
67 T: blocking::spi::Transfer<u8, Error = E> + blocking::spi::Write<u8, Error = E>, 67 T: embedded_hal_1::spi::SpiBus<Error = E>,
68{ 68{
69 type Error = E; 69 type Error = E;
70} 70}
71 71
72impl<T, E> embedded_hal_async::spi::SpiBus<u8> for BlockingAsync<T> 72impl<T, E> embedded_hal_async::spi::SpiBus<u8> for BlockingAsync<T>
73where 73where
74 E: embedded_hal_1::spi::Error + 'static, 74 E: embedded_hal_async::spi::Error,
75 T: blocking::spi::Transfer<u8, Error = E> + blocking::spi::Write<u8, Error = E>, 75 T: embedded_hal_1::spi::SpiBus<Error = E>,
76{ 76{
77 async fn flush(&mut self) -> Result<(), Self::Error> { 77 async fn flush(&mut self) -> Result<(), Self::Error> {
78 Ok(()) 78 Ok(())
@@ -84,21 +84,17 @@ where
84 } 84 }
85 85
86 async fn read(&mut self, data: &mut [u8]) -> Result<(), Self::Error> { 86 async fn read(&mut self, data: &mut [u8]) -> Result<(), Self::Error> {
87 self.wrapped.transfer(data)?; 87 self.wrapped.read(data)?;
88 Ok(()) 88 Ok(())
89 } 89 }
90 90
91 async fn transfer(&mut self, read: &mut [u8], write: &[u8]) -> Result<(), Self::Error> { 91 async fn transfer(&mut self, read: &mut [u8], write: &[u8]) -> Result<(), Self::Error> {
92 // Ensure we write the expected bytes 92 self.wrapped.transfer(read, write)?;
93 for i in 0..core::cmp::min(read.len(), write.len()) {
94 read[i] = write[i].clone();
95 }
96 self.wrapped.transfer(read)?;
97 Ok(()) 93 Ok(())
98 } 94 }
99 95
100 async fn transfer_in_place(&mut self, data: &mut [u8]) -> Result<(), Self::Error> { 96 async fn transfer_in_place(&mut self, data: &mut [u8]) -> Result<(), Self::Error> {
101 self.wrapped.transfer(data)?; 97 self.wrapped.transfer_in_place(data)?;
102 Ok(()) 98 Ok(())
103 } 99 }
104} 100}