Skip to content

Integrate parts of libmav into MAVSDK and add MavlinkDirect plugin #2610

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 21 commits into
base: main
Choose a base branch
from

Conversation

julianoes
Copy link
Collaborator

@julianoes julianoes commented Jul 12, 2025

This is work towards MavlinkPassthrough for language wrappers called MavlinkDirect.

The work is based on a hard fork of libmav. The fork is required because:

  • MAVSDK doesn't work with C++ exceptions
  • rapidxml is replaced with tinyxml2 as rapidxml is not the right choice without exceptions
  • The connection classes are not required.
  • Header only is a poor way to manage dependencies and unnecessarily increases compile time for incremental builds.

The MavvlinkDirect allows you to:

  • Send and receive MAVLink messages based on just the message name and fields/data as JSON (strings which are easily forwarded to and parsed in language wrappers).
  • Add custom MAvlink xml to send and receive messages

While this seems to be working end to end in system tests, most of the work is Claude Code generated slop, so I will have to review this properly myself.

julianoes added 21 commits July 12, 2025 13:34
This will support something like MavlinkPassthrough for language
wrappers.
This will bring MavlinkPassthrough to the language wrappers.
This was somewhat duplicate, we can just use a subscription with empty
string to get all messages.
This is nice after auto-generation where a huge diff is just noise,
especially for an LLM to parse.
I don't actually like if dependency management has to be embedded within
the build. Imagine if we had to put conan, vcpkg, hunter, brew, pacman,
etc. you name it, all within cmake. It would be a mess.

We strive for just simple plain cmake instead.

The reason this is removed now is that I need to add the dependency
picosha2 and I can't find it in hunter. Also, I haven't seen any signs
that hunter support is actually (still) used out there in the wild.

For now, let's remove it. If this is still needed, someone will complain
and help add it back in.
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant