Conversation
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
|
Hey, just wanted to let you know I haven't forgotten about this yet. I'm a bit busy, but I will definitely make time for this. /edit: And of course, thanks for opening the PR! :) |
|
I see that the build fails because of the |
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
Signed-off-by: gabrik <gabriele.baldoni@gmail.com>
|
It should be fine now, tested locally, and on my fork, I had issues with the |
|
I haven't done an in-depth review yet, but it looks like now, enabling a feature changes the existing Bus into an In general, enabling features should not break code that doesn't need/use the feature. This is especially important because two crates might use the same dependency with different sets of features. It's not very likely for this crate, but we should still support it. So I suggest a slightly different approach: each feature should enable a new submodule that contains the implementation for that back-end. So the The current implementation could be moved to a |
|
Another thing that I was considering: it would be cool to see if we can still re-use the decode code. Maybe an internal The different async/sync implementations would then all call the same encode/decode functions, but take care of the reading/writing/buffer-clearing. |
|
Thanks for the comments, I'll rearrange the code as you suggested |
Hi, as mentioned in #1 here is a PR that implements asynchronous operations for interacting using the Dynamixel2 protocol.
Features
syncfeature for the current behavior and interfaceasync_smolfeature for asynchronous operation withinasync_stdasync_tokiofeature for asynchronous operation withintokioThere is still (a lot) a code copy-pasted from sync to async implementation, mostly because of the different signatures and
awaithere and there.I tested it on my MacBook with a OpenCR board, I'm really open to feedbacks