Ergonomic facade over the generated MAVLink binding.
MAVLink is the language drones speak: PX4 and ArduPilot autopilots and MAVSDK
ground stations all exchange MAVLink frames, so talking to a vehicle means
putting exactly the right bytes on the wire and trusting the bytes that come
back. This is that byte layer: v1 and v2 frames, the CRC-16/MCRF4XX checksum
every frame carries, the per-message CRC_EXTRA seed that catches a frame
whose shape does not match, and MAVLink 2 signing.
Nothing here is limited to the messages this build happens to know. The common
dialect's seeds are built in, and Dialect carries any others, derived
from a message definition the way the specification does.
Above the bytes sits the shape: MessageSchema names a message's fields, so a
MavlinkMessage is filled in and read back by name rather than by byte offset,
and MessageSchemaBuilder describes a message this build has never heard of.
Above the messages sit the exchanges: MissionSender and MissionReceiver
carry a plan between a station and a vehicle, CommandProtocol matches a command
to its acknowledgement and counts retries, and offboard builds setpoints. Each
takes a frame off the link and hands back the frame to send, with no IO or timers of its
own.
Ergonomic facade over the generated MAVLink binding.
MAVLink is the language drones speak: PX4 and ArduPilot autopilots and MAVSDK ground stations all exchange MAVLink frames, so talking to a vehicle means putting exactly the right bytes on the wire and trusting the bytes that come back. This is that byte layer: v1 and v2 frames, the CRC-16/MCRF4XX checksum every frame carries, the per-message
CRC_EXTRAseed that catches a frame whose shape does not match, and MAVLink 2 signing.Nothing here is limited to the messages this build happens to know. The common dialect's seeds are built in, and Dialect carries any others, derived from a message definition the way the specification does.
Above the bytes sits the shape: MessageSchema names a message's fields, so a MavlinkMessage is filled in and read back by name rather than by byte offset, and MessageSchemaBuilder describes a message this build has never heard of.
Above the messages sit the exchanges: MissionSender and MissionReceiver carry a plan between a station and a vehicle, CommandProtocol matches a command to its acknowledgement and counts retries, and offboard builds setpoints. Each takes a frame off the link and hands back the frame to send, with no IO or timers of its own.