Mavlink_ardupilotmega

Website:

https://github.com/reznikmm/mavlink_ardupilotmega

Authors:
  • Fil Andrii
  • Max Reznik
Maintainers:
  • Fil Andrii <root.fi36@gmail.com>
  • Max Reznik <reznikmm@gmail.com>
License:

MIT

Version:

3.0.0

Alire CI:

Dependencies: Dependents:

No dependents.

Badge:

MAVLink, ardupilotmega dialect

#embedded #network #drone

MAVLink – ArduPilotMega Dialect (Ada Bindings)

This crate provides an Ada binding for the MAVLink ardupilotmega dialect.

The code is generated, not hand-written. It comes straight from the official MAVLink XML message definitions via pymavlink’s mavgen tool with its Ada backend, then lightly post-processed. This keeps the binding faithful to the upstream specification and makes it straightforward to refresh whenever ardupilotmega.xml changes.

What you get

  • Strongly typed Ada records for every ardupilotmega message, with fields, arrays, enums and bitmasks represented as proper Ada types instead of raw bytes.
  • Marshalling/unmarshalling subprograms for each message, plus the frame header and CRC handling needed to talk MAVLink on the wire.
  • pragma Pure, bareboard-friendly packages, suitable for embedded targets (e.g. STM32) as well as desktop ground control software.

Wire protocol version

This crate targets the MAVLink 1.0 wire protocol. If you need the MAVLink 2.0 wire format (extended message IDs, message signing, extension fields), use the sibling crate mavlink_ardupilotmega_v2 instead – it exposes the same dialect messages, packed differently on the wire.

  • mavlink_shared – code shared by all the generated dialect crates (CRC, low-level float/byte helpers, etc.). Pulled in automatically as a dependency; you normally don’t need to depend on it directly.
  • mavlink_common – the shared common dialect with common messages.
  • mavlink_ardupilotmega_v2 – same dialect, MAVLink 2.0 wire protocol.