2026-09-05 12:54:14 +09:00
|
|
|
{
|
|
|
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
|
|
|
"$id": "https://yukart/schema/envelope.json",
|
|
|
|
|
"title": "Signal envelope",
|
2026-10-12 16:33:15 +09:00
|
|
|
"description": "Every decoded signal published on yukart/vehicle/*, yukart/gnss/* and yukart/host/*. Raw CAN uses the binary frame encoding instead.",
|
2026-09-05 12:54:14 +09:00
|
|
|
"type": "object",
|
|
|
|
|
"required": [
|
|
|
|
|
"timestamp",
|
|
|
|
|
"monotonic",
|
|
|
|
|
"value",
|
|
|
|
|
"unit"
|
|
|
|
|
],
|
|
|
|
|
"additionalProperties": false,
|
|
|
|
|
"properties": {
|
|
|
|
|
"timestamp": {
|
|
|
|
|
"type": "integer",
|
|
|
|
|
"description": "UTC epoch microseconds. Absolute reference. Subject to NTP steps; use monotonic for ordering."
|
|
|
|
|
},
|
|
|
|
|
"monotonic": {
|
|
|
|
|
"type": "integer",
|
|
|
|
|
"description": "Nanoseconds from CLOCK_MONOTONIC. Authoritative for ordering and for any interval within a session. Not comparable across boots."
|
|
|
|
|
},
|
|
|
|
|
"value": {
|
|
|
|
|
"type": [
|
|
|
|
|
"number",
|
|
|
|
|
"string",
|
|
|
|
|
"boolean",
|
|
|
|
|
"null"
|
|
|
|
|
],
|
|
|
|
|
"description": "null means the signal is known but currently has no value."
|
|
|
|
|
},
|
|
|
|
|
"unit": {
|
|
|
|
|
"type": "string",
|
|
|
|
|
"description": "Derived from signals.json. Never authored per message."
|
|
|
|
|
},
|
|
|
|
|
"quality": {
|
|
|
|
|
"enum": [
|
|
|
|
|
"ok",
|
|
|
|
|
"stale",
|
|
|
|
|
"invalid"
|
|
|
|
|
],
|
|
|
|
|
"default": "ok",
|
|
|
|
|
"description": "Omitted when ok."
|
|
|
|
|
},
|
|
|
|
|
"mock": {
|
|
|
|
|
"type": "boolean",
|
|
|
|
|
"default": false,
|
|
|
|
|
"description": "Present and true when synthesised. Must be rendered visibly by any display."
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|