ssd1331
ssd1331 copied to clipboard
Asyncify flush
Draft for discussion. Could support multiple traits, this could be the 'embassy' feature instead of async...
this could be the 'embassy' feature instead of async
I think this is a good idea - Embassy might go away one day. Maybe call it async-embassy? That way we can have async-whatever for other executors if we need it.
Fixed the trait, but pr is still a bit of a mess
- had to duplicate basically all of the
sendfn to make asend_asyncfn. I cant think of a good way to have the enum discriminants pulled into a From impl or something - I dont have a good dev board for the stm32f1 with an ssd1331 to attempt the embassy so its nrf52840 and optionally using multiple hals isnt a good solution.
But check it out does seem to work
It would be awesome if eventually there were a rutime-agnostic set of async traits. We're not ready yet (need more experimentation) but it would be cool if just the traits from embassy became managed by embedded-wg or similar so that if someone wants to use a different runtime they can.
Id track here https://github.com/rust-embedded/embedded-hal/pull/285
and after that we need Prs to help the hals asyncify
Well this is one way to do multiple target examples
I just looked into trying to use this, but it seems like sync operations are still used for non-flush operations?
Unfortunately I think that means that it can't be used with a proxy object from shared-bus, since it only provides async OR sync traits, but not both at the same time.
On the bright side, the async traits are now closer to standardized with the embedded-hal-async crate.