Repository navigation
v0.4.0
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'sardupilotmega.xml(301), or your own dialect.--messagepicks 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.xmlencodes 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.