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 field_description() :: %{
  type: String.t(),
  ordinality: integer(),
  omit_arg: boolean(),
  is_extension: boolean(),
  constant_val: String.t() | nil,
  name: String.t(),
  enum: String.t(),
  display: :bitmask | nil,
  print_format: String.t() | nil,
  units: atom() | nil,
  description: String.t()
}
@type message_description() :: %{
  id: integer(),
  name: String.t(),
  description: String.t(),
  has_ext_fields: boolean(),
  fields: [field_description()]
}
@type param_description() :: %{index: integer(), description: String.t()}

Link to this section Functions

Link to this function

combine_definitions(list)

View Source
Link to this macro

xmlAttribute(args \\ [])

View Source (macro)
Link to this macro

xmlAttribute(record, args)

View Source (macro)
Link to this macro

xmlElement(args \\ [])

View Source (macro)
Link to this macro

xmlElement(record, args)

View Source (macro)
Link to this macro

xmlText(args \\ [])

View Source (macro)
Link to this macro

xmlText(record, args)

View Source (macro)