robohouse-delft / dynamixel2-rs

Rust implementation of the dynamixel protocol 2.0
BSD 2-Clause "Simplified" License
13 stars 4 forks source link

Moved to generic transports and no_std #16

Closed omelia-iliffe closed 1 month ago

omelia-iliffe commented 2 months ago

Moving towards the goal of a no_std compatible crate, this pr adds System and Transport traits which can differ between system and serial port implementations.

omelia-iliffe commented 2 months ago

I wanted to use the StdSystem as the default generic System in Bus but this was going to be really messy once StdSystem was moved to a feature.

omelia-iliffe commented 2 months ago

whoops realised my branch wasn't up to date with main so rebased and force pushed.

omelia-iliffe commented 1 month ago

Lots more changes as I introduce feature gates to get a no_std compile working.

omelia-iliffe commented 1 month ago

I've also created a no_std example for the rp2040, its avaliable on the no_std_example branch if you want to have a look: https://github.com/omelia-iliffe/dynamixel2-rs/tree/no_std_example

omelia-iliffe commented 1 month ago

I'm jumping ahead but I've also created a device branch with an integration test that passes :) https://github.com/omelia-iliffe/dynamixel2-rs/tree/device

de-vri-es commented 1 month ago

Very cool! I'll do a final review hopefully on friday (I should have time then). And probably I'll leave the bike shedding over names until after your second PR, so that I can bikeshed with the whole picture, and so that you don't get merge conflicts :)

de-vri-es commented 1 month ago

Looks good! I do think I want to make some tweaks and thing about naming more, but since you're already working on embedded and the client/device side I will do all of that afterwards. No need to get merge conflicts in the mean time :)

Thanks for working on this!