Skip to content

len0rd/mavlib_gen

Repository files navigation

Mavlib Gen

Library checks Library coverage

A MAVLink generator with a permissive MIT license. This project is for a MAVLink generator ONLY. No additional features or tools will be included in this project.

Language Support

Language Generator Status Notes
C 40%
Python 10%
Graphviz 100% Generates message structure diagrams for documentation
Embedded C++ 20% C++ implementation with no STL or dynamic allocation
ReStructuredText 95% Sphinx-compatible RST docs of messages that can also utilize the dot files produced by the graphviz generator

Features

Complex Include Trees

One feature I've wanted in pymavlink for quite some time is the ability to generate mavlink code from more advanced include trees, such as the one below.

example_of_complex_tree

Such support allows developers to better isolate specific modules of a MAVLink message system. Thus avoiding large, hard to navigate definition files.

Simple, lean helper methods

Stuff about parsing based on char arrays instead of single character

Thorough unit tests

Thorough tests on both the generator and the generated code mean user can have assurances the library will work as expected with every update

Versioned releases

Proper release versioning means compatibility can break between major versions. This becomes increasingly important as the project ages to help keep code uncluttered and readable.

TODO

  • yaml-based generation configuration
  • Use @dataclass for python-generated message classes
  • generator option to only regen on CRC_EXTRA changes

About

A new mavlink generator that supports complex include trees

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published