MAVLink2.Codec (mavlink2 v0.1.0)

Copy Markdown View Source

Message payloads from a wire layout (MAVLink2.XML): fields little endian, in wire order.

FieldElixir value
integer, scalar charinteger
float, doublefloat, or :nan, :infinity, :neg_infinity
char[n]binary, up to the first NUL; zero-padded or cut to n when encoded
other arrayslist of n values, zero-filled when shorter

decode/2 zero-extends a short payload first, as a v2 receiver must. encode/2 raises ArgumentError for an integer outside its type's range.

Summary

Functions

The field values in payload, as a keyword list in wire order.

The payload for values, a map or struct holding every field in layout.

A field's zero value.

Types

layout()

@type layout() :: [{atom(), MAVLink2.XML.base_type(), pos_integer() | nil}]

Functions

decode(layout, payload)

@spec decode(layout(), binary()) :: keyword()

The field values in payload, as a keyword list in wire order.

encode(layout, values)

@spec encode(layout(), map()) :: binary()

The payload for values, a map or struct holding every field in layout.

zero(type, n)

@spec zero(MAVLink2.XML.base_type(), pos_integer() | nil) :: term()

A field's zero value.