Skip to content

Binary log file structure

The log file that Ping Viewer provides has a header description structure that allows program to identify different types of information, the header structure is defined as the following:

  • Header (String)
  • Log structure version (int32)
  • Information about the program that have generated the log
  • Ping Viewer commit hash (String)
  • Ping Viewer build date (String)
  • Ping Viewer release tag (String)
  • Operating System name (String)
  • Operating System version (String)
  • Sensor information
  • Sensor type (int32)
  • Sensor model (int32)

Note: The binary file structure is done in big-endian.

Arrays (Strings) are defined with the following structure: - Array size (uint32) - Array data (byte_array[])

The source code that defines this structure can be found in Ping Viewer source code LogSensorStruct file.

Python example

You can check this minimal Python example (needs Python 3.7+).

It's necessary to install bluerobotics-ping python package before running it.

It outputs the Header content, and after an user input, it decodes some specific messages from the file. E.g:

    String: PingViewer sensor log file
    Version: 1
        hash: b0461486
        date: 2020-01-03T14:31:14-03:00
        tag: development
            name: Arch Linux
            version: unknown
        Family: 1
        Type: 2

Press Enter to continue and decode received messages...