Namespace MavNet.Protocol
Classes
- Crc16
CRC-16/MCRF4XX — the checksum MAVLink uses on every frame. The MAVLink community commonly calls this "CRC-16/X.25", but the reference C implementation omits the X.25 final XOR (xorout=0x0000), which is formally CRC-16/MCRF4XX (poly=0x1021, init=0xFFFF, refin/refout=true, check=0x6F91). Match the reference implementation byte-for-byte so PX4 accepts our outbound frames. Public because the code generator (tools/MavNet.CodeGen) reuses it for CRC_EXTRA computation.
Structs
- MavlinkFrame
MAVLink v2 wire frame: [0xFD][len][incompat][compat][seq][sysid][compid][msgid(3)][payload][crc(2)].
- MessageInfo
Per-message metadata required by the MAVLink wire protocol. Returned from
MessageRegistry.TryGet; used by the frame parser for CRC validation, by encoders for truncation, and by inspection/replay tooling.
Interfaces
- IMavlinkMessage<TSelf>
Contract implemented by every generated MAVLink message type. Lets senders encode and frame the message without runtime dictionary lookups (the protocol metadata is known at the call site through static abstracts).
Implementations are
readonly record structs emitted bytools/MavNet.CodeGen. Library users normally never write one by hand — they're produced from a dialect XML.
Enums
- MessageCapabilities
Capability hints sourced from the dialect XML. Cheap to extend without breaking ABI.