Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

To make it easier to read, we’ve split the FusionHub documentation into two sub-manuals:
LPVR-AIR Manual - LPVR-AIR Manual

LPVR-POS Manual - LPVR-POS Manual

Please refer to these for the most up-to-date documentation.

...

The WebSocket server can be accessed via 19358 port on the machine hosting the FusionHub service. To accelerate development download the Simple WebSocket Client Chrome plugin. This allows you to manually enter API commands and check the replies from the server.

Endpoint

Command

Sample Requests

Sample Response / Description

getConfig

Code Block
languagejson
{
  "command": "getConfig"
}
Get

Gets in memory configurations.

getSavedConfig

Code Block
languagejson
{
  "command": "getSavedConfig"
}
Get

Gets on disk configurations.

saveConfig

Code Block
languagejson
{
  "command": "saveConfig"
}
Save

Saves the in-memory configurations to the disk.

setConfig

Code Block
languagejson
{
  "command": "setConfig",
  "data": {
    "sources": {
      "optical": {
        "settings": {
          "port": 5005
        }
      }
    }
  }
}
Update

Updates in-memory configurations. This

api create

API creates new key-value pairs, or

update

updates the existing values.

It

does not

doesn't save configurations to

the

disk.

Note that in "data" you just need to specify the path to the json key to update:the

exmaple

example on the right would change the port to 5005 while everything else is left unchanged.

setConfigJsonPath

(available for JVC branch)

Code Block
languagejson
{

  
"command": "setConfigJsonPath",

  "data": [
    
{

      
"path": "/sinks/prediction/
2
0/settings/
predictionIntervalMS
predictionIntervalMs",

      "value": 40

    
}

  ]
}
Update

Updates the in-memory configuration given JSON path, and new value.

For more info about JSON path, please refer JSON Pointer - JSON for Modern C++ (nlohmann.me).

overwriteConfig

(disabled in JVC branch)

Code Block
languagejson
{
  "command": "overwriteConfig",
  "data": {
    "settings": { ... },
    "sources": { ... },
    "sinks": { ... }
  }
}
Overwrite

Overwrites the in-memory configurations. This is suitable when user want to remove a key from the configuration.

getIntercalibrationStatus

Code Block
languagejson
{
  "command": "getIntercalibrationStatus"
}
Get

Gets the current intercalibration status. Useful for refetching current status when the frontnend accidentally disconnects.

applyIntercalibrationResults

Code Block
languagejson
{
  "command": "applyIntercalibrationResults"
}
Apply

Applies the current intercalibration quaternion to the in-memory copy of config. This does

NOT

not save to disk.

restartBackend

Code Block
languagejson
{
  "command": "restartBackend"
}
Restart

Restarts the backend. Internally the while loop reset the DataBlock, causing all sources and sinks to be freed from memory, and instantiate them again.

startRecording

Code Block
languagejson
{
    "command": "startRecording",
    "data": {
        "endpoints": ["inproc://imu_data_source_1"],
        "format": "json",
        "filename": "subaruDrive"
    }
}
Listen

Listens to data published to endpoints, and write to a file of YYYYMMDD-HHMMSS-{comment}.{format}

stopRecording

Code Block
{
    "command": "stopRecording",
}
Stop

Stops the current recording.

listRecording

Code Block
languagejson
{
    "command": "listRecording",
}
List

Lists the recorded filenames since the FusionHub booted up.

getVersion

Code Block
languagejson
{
  "command": "getVersion"
}
Code Block
languagejson
{
  "command": "getVersion",
  "status": "ok",
  "data": {
    "version": "1.0.0"
  }
}

Sending FusionHub Data to External Applications via the ZeroMQ Interface

...