View Source MAVLink.Parser (xmavlink v0.1.0)
Parse a mavlink xml file into an idiomatic Elixir representation:
%{
version: 2,
dialect: 0,
enums: [
%{
name: :mav_autopilot,
description: "Micro air vehicle...",
entries: [
%{
value: 0,
name: :mav_autopilot_generic, (use atoms for identifiers)
description: "Generic autopilot..."
params: [ (only used by commands)
%{
index: 0,
description: ""
},
... more entry params
]
},
... more enum entries
]
},
... more enums
],
messages: [
%{
id: 0,
name: "optical_flow",
description: "Optical flow...",
fields: [
%{
type: "uint16_t",
ordinality: 1,
name: "flow_x",
units: "dpixels", (note: string not atom)
description: "Flow in pixels..."
},
... more message fields
]
},
... more messages
]
}
Link to this section Summary
Link to this section Types
@type entry_description() :: %{ value: integer() | nil, name: atom(), description: String.t(), params: [param_description()] }
@type enum_description() :: %{ name: atom(), description: String.t(), entries: [entry_description()] }
@type message_description() :: %{ id: integer(), name: String.t(), description: String.t(), has_ext_fields: boolean(), fields: [field_description()] }
Link to this section Functions
@spec parse_mavlink_xml(String.t()) :: %{ version: integer(), dialect: integer(), enums: [enum_description()], messages: [message_description()] } | {:error, :enoent}