Introduction

Qinertia CLI can report, in real time, progress and status information. This is done using JSON lines format where each status is returned as a standalone JSON object.

The status report system has been designed to allow a calling process to easily receive and extract status and progress information. The status JSON lines are transmitted through the process pipe according to the --status-output command line option.

JSON Block Specification

Each JSON line status output uses the following JSON schema:

ParameterTypeOptionalDescription
categorystring(error)Message category that identifies which step is issuing this status/progress message.
typestring(error)Message type that defines the specific operation or type of information.
payloadobject(error)

Specific message payload that contains some status and progress indications.

Please refer to the messages definition below to get the payload format description.

Messages

Please find below the list of messages that can be output by Qinertia CLI. A message is defined by a category and a type and each message has a specific payload.

CategoryTypePayload

authentication

login

Report a success or failure for user authentication. See info payload and error payload

licensing

info

Returns information about Qinertia license fetching and validity. See info payload and error payload

creation

import

Used to monitor progress and errors when importing data and creating the project. See progress payload and error payload

baseStationinfoReturns base station conversion and download status. See info payload and error payload

processing

preprocess

Returns pre-processing step progress. The pre-processing step is applicable for INS tightly coupled and GNSS only solutions.
This status is send every second. See the progress payload or the error payload.

processing

process

Returns both the forward and backward processing progression.

This status is send every second. See the process payload or the error payload.

processing

merge

Returns the merge operation progression. This step merges the forward and backward solutions to get optimal post processed results.
This status is send every second. See the progress payload or the error payload.

export

export

Returns the merge operation progression. This step merges the forward and backward solutions to get optimal post processed results.
This status is send every second. See the export payload or the error payload.

report

report

This is the finaly processing report that describes all operations results and provide quality indicators.

See Session report for more details about the payload part itself.

Payloads definitions

Standard Info Payload

This is the standard payload to return generic information and status.

FieldTypeOptionalDescription

message

string(error)Single line information message

The following example shows the JSON line output when Qinertia CLI is trying to retrieve a license.

{
  "category": "licensing",
  "type": "info",
  "payload": {
    "message": "Fetching license H9ZLHDPG3I ..."
  }
}
JS

Standard Error Payload

This is the standard payload to return an error.

FieldTypeOptionalDescription

level

enum(error)

Defines the criticality, it could be:

  • error: This is a fatal error and the processing is stopped
  • warning: Reports an unusual behavior but the processing can continue

message

string(error)Error message

The following example shows the JSON line output if there is an error during GNSS base station conversion.

{
  "category": "baseStation",
  "type": "import",
  "payload": {
    "level": "error",
    "message": "Unable to import base station file 30232770.16Q, invalid file format."
  }
}
JS

Standard Progression Payload

This standard payload returns a simple progression in percent.

FieldTypeOptionalDescription

progress

integer(error)Integral progression between 0 and 100

The following example shows the pre-processing step progression

{
  "category": "processing",
  "type": "preprocess",
  "payload": {
    "progress": "22"
  }
}
JS

Process Payload

Payload used to report the forward and optionally the backward processing progress. Because the forward and backward processing are done at the same time, this payload reports both progressions in the same payload.

FieldTypeOptionalDescription

forward

object

(error)Forward processing step status as describe in the object below.

backward

object

(tick)

Backward processing step status as describe in the object below.

This object is only included for processing modes that have backward computation.

Processing step status payload

Forward and backward processing can compute up to three times the same data to improve the solution stability and accuracy. This is called multi-pass processing and it's the default mode for all INS post processed solutions.

FieldTypeOptionalDescription

progress

integer(error)Global progression for this processing step from 0 to 100.

currentPass

integer(error)Processing step current pass number

numPass

integer(error)Processing step total number of pass

passProgress

integer(error)

Current pass progression between 0 and 100

Example

The following example shows a forward and backward progression. The forward has done the first pass and has processed 9% of the second pass. The backward processing has not completed the first pass yet.

{
  "category": "processing",
  "type": "process",
  "payload": {
    "forward": {
      "progress": 36,
      "currentPass": 2,
      "numPass": 3,
      "passProgress": 9,
    },
    "backward": {
      "progress": 32,
      "currentPass": 1,
      "numPass": 3,
      "passProgress": 96,
    }
  }
}
JS

Export Payload

The export payload lets you monitor the overall export operation progression as well as the individual progression of each export job.

FieldTypeOptionalDescription
progressinteger(error)General progression for all export jobs from 0 to 100.
jobs[].namestring(error)The export job name as defined in the Export block
jobs[].progressinteger(error)The export job progression from 0 to 100.

The following example shows an ASCII and SBET export progression:

{
  "category": "export",
  "type": "export",
  "payload": {
    "progress": 48,
    "jobs": [
      {
        "name": "ASCII Export",
        "progress": 32
      },
      {
        "name": "SBET 200 Hz",
        "progress": 65
      }
    ]
  }
}
JS