Expand description
§MAVLink protocol
MAVLink protocol abstractions.
We also re-export from mavspec::rust::spec
crate to provide a full specification of
MAVLink-related types.
§Frames
The key MAVLink entity is a Frame
, that represents a packet containing message body and
additional metadata as specified by MAVLink serialization
protocol. Each frame has a header
and payload
. Frames can
be decoded into messages using Frame::decode
. To build a frame you need a FrameBuilder
that provides an interface for constructing valid frames both manually and from existing
messages.
§Message Signing
MAVLink 2
protocol is capable of signing frames allowing the receiver to authenticate frame’s
sender. To sign a frame you can either use Frame<V2>::add_signature
or
SigningConf::apply
. The latter will sign only MAVLink 2
frames keeping MAVLink 1
frames untouched.
The signing algorithm is split into Sign
and Signer
. The former is a trait that provides
sha256_48
, a MAVLink 2
specific hashing algorithm. The latter takes an implementor of
Sign
and feeds frame data into it. This library provides and implementor of Sign
, the
MavSha256
, for std
targets. All no_std
targets should implement
their own algorithm based on their platform-specific access to random value generators.
Structs§
- Return type for operations which require attention from the caller.
MAVLink 2
compatibility flags.- Manages frame compatibility.
- Builder for
CompatProcessor
. mavspec
Dialect specification.- MAVLink device with defined
ID
and internal frame sequence counter. - MAVLink frame.
- Builder for
Frame
. - MAVLink frame header.
- Builder for
Header
. - Represents
Header
encoded as a sequence of bytes. MAVLink 2
incompatibility flags.- MAVLink device
ID
. - A 48-bit timestamp used for
MAVLink 2
packet signing. mavspec
Generic information about MAVLink message.mavspec
MAVlink message payload.MAVLink 2
signature secret key.- Incremental MAVLink frame sequence.
MAVLink 2
packet signature.- Frame signer.
- Message signing configuration for
Frame
. - A marker for generic types that specifies a variant of something being not specified.
- Marks entities which are strictly
MAVLink 1
protocol compliant. - Marks entities which are strictly
MAVLink 2
protocol compliant. - Marker for entities which are not constrained by a specific MAVLink protocol version.
Enums§
- Defines, how to process compatibility and incompatibility flags.
- Version-agnostic MAVLink frame, that can be matched according to its protocol version.
mavspec
MAVLink protocol version.- Packet start marker.
Traits§
mavspec
Interface for autogenerated or custom MAVLink dialect specification.- A trait for entities, that can be converted to
CompatProcessor
. mavspec
MAVLink message encoder.- Converts value into a
Sequencer
. - 🔒 Marks structures which may or may not have a specified MAVLink protocol version.
mavspec
MAVLink message implementation.mavspec
Generic MAVLink message specification.- Interface for
MAVLink 2
frames signing algorithm. ⚠
Implementors of this trait can update frame data in-place.⚠
This trait should be implemented in order to useUpdateFrame
trait and update frames in-place.- 🔒 Marks entities which have a specified MAVLink protocol version.
Type Aliases§
- MAVLink packet checksum.
- MAVLink component
ID
. mavspec
MAVLink extra CRC byte.MAVLink 1
header as array of bytes.MAVLink 2
header as array of bytes.mavspec
MAVLink message ID regardless of protocol.- Payload length.
- Packet sequence number.
MAVLink 2
signature as array of bytes.MAVLink 2
signature timestamp.MAVLink 2
signature value.MAVLink 2
signed linkID
.- MAVLink system
ID
.