Download PDF
Download page Status output.
Status output
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:
Parameter | Type | Optional | Description |
---|---|---|---|
category | string | Message category that identifies which step is issuing this status/progress message. | |
type | string | Message type that defines the specific operation or type of information. | |
payload | object | 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.
Category | Type | Payload |
---|---|---|
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 |
baseStation | info | Returns 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.
Field | Type | Optional | Description |
---|---|---|---|
| string | 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 ..."
}
}
Standard Error Payload
This is the standard payload to return an error.
Field | Type | Optional | Description |
---|---|---|---|
| enum | Defines the criticality, it could be:
| |
| string | 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."
}
}
Standard Progression Payload
This standard payload returns a simple progression in percent.
Field | Type | Optional | Description |
---|---|---|---|
| integer | Integral progression between 0 and 100 |
The following example shows the pre-processing step progression
{
"category": "processing",
"type": "preprocess",
"payload": {
"progress": 22
}
}
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.
Field | Type | Optional | Description |
---|---|---|---|
| object | Forward processing step status as describe in the object below. | |
| object | 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.
Field | Type | Optional | Description |
---|---|---|---|
| integer | Global progression for this processing step from 0 to 100. | |
| integer | Processing step current pass number | |
| integer | Processing step total number of pass | |
| integer | 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,
}
}
}
Export Payload
The export payload lets you monitor the overall export operation progression as well as the individual progression of each export job.
Field | Type | Optional | Description |
---|---|---|---|
progress | integer | General progression for all export jobs from 0 to 100. | |
jobs[].name | string | The export job name as defined in the Export block | |
jobs[].progress | integer | 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
}
]
}
}
Multi-Line Messages
Qinertia CLI can report information or error messages using multi-line strings. However, the JSON format doesn't support multi-line string natively. The JSON recommends to use an array of strings to support multi-line strings.
Qinertia CLI follows this recommendation and uses an array of string each time there are more than one line to output. Please find below the same JSON block but one reporting a single line message whereas the second one has a multi-line message.
Single Line Example
{
"category": "licensing",
"type": "error",
"payload": {
"message": "Unable to find license H9ZLHDPG3I"
}
}
Multi-Line Example
{
"category": "licensing",
"type": "error",
"payload": {
"message": [
"Unable to find license H9ZLHDPG3I",
"The license server couldn't be reached.",
"Please check your internet connection."
]
}
}