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 by tools/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.