samcrow / canadensis

A Rust implementation of Cyphal
Apache License 2.0
44 stars 5 forks source link

Support .dsdl extension #12

Closed chemicstry closed 2 years ago

chemicstry commented 2 years ago

Dsdl now uses .dsdl extension instead of .uavcan: https://github.com/OpenCyphal/pydsdl/issues/78

For compatibility purposes it is desirable to support both .uavcan and .dsdl and I don't see any reasons not to.

Also updated public_regulated_data_types to test generation. Should I update all other tests too and leave just one .uavcan as compatibility test?

Some related questions:

samcrow commented 2 years ago

That sounds good. Thanks for contributing.

Why is canadensis_data_types pregenerated instead of using the canadensis_macro?

The main reason is that the macro is experimental and I'm not sure if it actually provides a better user experience.

With the macro, everyone has to compile the DSDL parser and everything, run it on all the DSDL files, and generate the code at build time. IDEs are also generally less helpful with macro-generated code.

Any reason for not using git submodules for public_regulated_data_types and similar?

I was not thinking about that earlier, but you're right that it makes sense in this situation.


The tests are failing because some of the examples have zero-sized containers. The new version of heapless does not allow that. I'll fix that later.

samcrow commented 2 years ago

Just to check, should I merge this now or are you still planning to make the other change you mentioned?

chemicstry commented 2 years ago

I wasn't sure if I should make them. If you'd like I can rename the rest of the DSDLs in the upcoming days, but otherwise this is ready to merge.