Sam Crow
Sam Crow
All the data type definitions and serialization code are hand-written. The existing [Nunavut tool](https://github.com/UAVCAN/nunavut/) can automatically generate code for some languages. With some changes, it could also generate Rust code...
This was inspired by https://github.com/OpenCyphal/pydsdl/pull/97 .
See https://forum.opencyphal.org/t/amendment-to-the-transfer-reception-state-machine-implementations/1870 * See if there's already a test for this * Add a test if necessary * Fix the code if necessary
Some fixed-size struct DSDL types produce generated Rust code with zero-copy serialization and deserialization. [Note](https://docs.rs/canadensis_data_types/0.3.0/canadensis_data_types/reg/udral/physics/acoustics/note_0_1/struct.Note.html) is one example. These types are marked `#[repr(C, packed)]` to ensure they will not have...
The current transmit code [allocates a temporary buffer](https://github.com/samcrow/canadensis/blob/16f54be3663c41946cc41907ce6993ccb3d39adc/canadensis/src/serialize.rs) for each outgoing transfer and serializes the transfer there before splitting it into frames. The current receive code does something similar: it...
[The generated SubjectIdList Rust type](https://docs.rs/canadensis_data_types/0.3.0/canadensis_data_types/uavcan/node/port/subject_id_list_1_0/enum.SubjectIDList.html) uses about 1024 bytes of memory for the Mask variant. The `BasicNode` periodically publishes a [port list](https://docs.rs/canadensis_data_types/0.3.0/canadensis_data_types/uavcan/node/port/list_1_0/struct.List.html), which contains two subject ID lists and two...
A lot of the Cyphal implementation code in this repository has interfaces that look confusing and are difficult to use correctly. In particular: * Clock, Instant, and Duration types wind...
Follow-up from https://github.com/samcrow/canadensis/issues/33 # Choose hardware The hardware should be reasonably low-cost and common. The ideal board would have a microcontroller with CAN FD built in, and a CAN FD...
From #55 I learned that people are using canadensis on microcontrollers with very limited memory. Release 0.5.0 made canadensis_can use more memory, but I didn't know at first that the...
As you can tell, I haven't directly done anything for this project in years. It has potential, but I've moved on to other projects. I don't want to keep holding...