Skip to content
Snippets Groups Projects
Select Git revision
  • mavlink-orion-upd
  • mavlink-update
  • master default protected
  • hermes-v1-telemetry
4 results

mavdecoder

  • Clone with SSH
  • Clone with HTTPS
  • Mavdecoder

    Decoder for binary mavlink messag sequences

    Mavdecoder is an utility used to parse binary files containg raw mavlink messages (eg. files containing every byte received by the Ground Station over the radio link with the rocket) and decode them into csv tables.

    Usage

    1. Compile the sources using make

    2. Decode the messages using ./mavdecoder <input_file>

    The output will be located in the out/ directory.

    Updating message definitions

    1. Sync the mavlink_skyward_lib submodule

    2. Generate the new sources:
      python3 generate.py <mavlink_lib>
      Where mavlink_lib is the name of a mavlink message library (the name of one of the folders in mavlink_skyward_lib/mavlink_lib/, eg. hermes)

    3. Copy the contents of messages_generated.h into messages.h, then modify the print(...) functions as needed.
      Attention: Make sure not to overwrite already existing manual edits present in messages.h

    Note

    Mavdecoder does not use the build in mavlink parser, but implements its own in order to be able to decode even corrupt messages. Corrupt messages are common when receiving telemetry from a rocket in-flight, and these messages are usually very easy to restore.

    In particular, mavdecoder ignores:

    • CRC verification
    • Message lenght field
    • System & component field

    In this way, messages are correctly decoded even if the CRC is wrong and/or the lenght, component id and system id fields are corrupt.
    This obviosly leads to some false positives, that can, however, be easily detected and discarded (manually).