Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 23:29
· 1 commit to master since this release
3f59c65

WireForge 0.4.0 reads MAVLink's own XML message definitions.

Import MAVLink dialects

pip install --upgrade wireforge
wireforge import-mavlink common.xml mavlink --name mavlink        # every message of the dialect
wireforge import-mavlink ardupilotmega.xml apm --name apm --message HEARTBEAT --message ATTITUDE
wireforge test mavlink -o build/mavlink                           # C++17 (or --language c) and its tests
  • Every message and enum of a dialect and the files it includes: common.xml (210 messages), ArduPilot's ardupilotmega.xml (301), or your own dialect. --message picks a subset.
  • The fields come in MAVLink's wire order, extension fields last, char and numeric arrays included; the CRC_EXTRA byte of every message is computed from its definition.
  • The project has the frame of the published MAVLink 2 model: the 24-bit message id, payloads without trailing zero bytes, the Wireshark hook that verifies the checksum.
  • Checked against pymavlink: all 19 dialects it ships import with the same CRC_EXTRA bytes and field order, and every message of common.xml encodes to the same bytes, with and without trailing zeros.

Not covered: message signing (signed frames are refused) and MAVLink 1 frames from XML.

Details: docs/IMPORT.md · How it compares · Tutorial

GitHub Action: uses: oguzhankynk/wireforge@v0.4.0. Free for development, evaluation and CI; the generated code and its runtime are yours under MIT.