The whole frame, ready to put on the wire.
The addressing fields the frame carries.
The incompatibility flags a v2 frame declares.
The id of the message the frame carries.
The message payload.
A v2 frame drops trailing zero bytes, so a payload can arrive shorter than the message's full length; a decoder zero-extends it.
The signature block, or null when the frame is not signed.
Whether the frame carries a signature.
This says only that the frame was signed, not that the signature is good;
a Verifier decides that.
Which wire format this frame uses.
StaticencodeAssembles a v1 frame, for a peer that predates MAVLink 2.
A v1 frame only carries message ids below 256.
StaticencodeAssembles a v2 frame carrying a message.
This is the current wire format and what a modern autopilot expects.
StaticparseParses one frame, checking it against a known CRC_EXTRA.
Throws if the bytes are not a whole frame or the checksum does not match, which is what rejects a frame mangled in transit.
StaticparseParses one frame, looking its CRC_EXTRA up as it goes.
This is what a receiver holding many message types uses: the id comes out of the frame, and the seed comes from the dialect or the common registry.
StaticrawAssembles a v2 frame carrying a message this build does not type.
The escape hatch a private dialect needs: supply the id, the payload, and the seed, and the frame is built and checked like any other.
One MAVLink frame, assembled or received.