Horizontal Situation Indicator Widget
Widget Type: rc-hsi

A compass/HSI display showing heading, optional sector ring, and configurable directional markers (arrow, dot, home, wind, line).
Configuration
mode Compass mode. northUp keeps north at the top; noseUp rotates the dial so the aircraft heading is always at the top.
inset Inset from the widget edge as a fraction (0–1).
aircraftColor (optional) Color of the aircraft marker. Any theme color (e.g. red, blue).
headingConfig (optional) Telemetry source that provides the aircraft heading in degrees (0–360).
sourceType:telemetrysource: telemetry pathexpression: stringified JavaScript function returning a number
sectorConfig (optional) Telemetry source providing the sector ring values (array of numbers 0–1, one per sector). Same shape as headingConfig.
sectorOffset (optional) Rotation in degrees applied to the sector ring.
markerConfigs (optional) Array of marker descriptors. Each marker has:
sourceType+source+expression: telemetry source feeding the marker's headingtype:arrow,dot,home,wind, orlineheading: initial heading in degreescolor: theme colorradius: position on the compass face (0= center,1= edge)
initialState (optional) Initial values: { "heading": 0, "markers": [...], "sectors": [...] }.
Example
{
"mode": "northUp",
"inset": 0.2,
"aircraftColor": "red",
"sectorOffset": -45,
"headingConfig": {
"sourceType": "telemetry",
"source": "/rocos/agent/telemetry/heading?int=200ms",
"expression": "(msg) => msg.payload?.heading"
},
"markerConfigs": [
{
"sourceType": "telemetry",
"source": "/rocos/agent/telemetry/target?int=1s",
"expression": "(msg) => msg.payload?.bearing",
"type": "arrow",
"heading": 0,
"color": "green",
"radius": 1
},
{
"sourceType": "telemetry",
"source": "/rocos/agent/telemetry/home?int=1s",
"expression": "(msg) => msg.payload?.bearing",
"type": "home",
"heading": 30,
"color": "red",
"radius": 0.3
}
],
"initialState": {
"heading": 0,
"sectors": [0.09, 0.32, 0.5, 0.66]
}
}