opendis-decode
opendis-decode reshapes the OpenDIS Protocol Data Unit (PDU) output of hydrate-protobuf into the pdu list that entity-state-to-records reads. It has no configuration.
hydrate-protobuf with targetProtoType: "HEAT.OpenDISModule.PDU" already decodes each PDU into a JSON object and emits an open_dis_pdu array. This node copies every entry that has a pdu object into a new list with a sequential index, and carries the packet time stamp through when present.
It does not decode DIS bytes. For raw DIS recordings see opendis-parser on the dashboard-tools runner.
When to use
Use this node between hydrate-protobuf in PDU mode and entity-state-to-records.
Pipeline position
hydrate-protobuf (PDU) -> opendis-decode -> entity-state-to-records -> entity-state-to-mapdisplayThe node reads the latest output of one parent.
Configuration
None. The configuration schema has no properties and validation always passes.
Output
The node accepts an open_dis_pdu array, or a pdu array when the former is absent. It emits a JSON object with one pdu array.
{
"pdu": [
{
"index": 0,
"byte_offset": 0,
"length_bytes": 0,
"pdu": { "__class__": "EntityStatePdu", "entityID": { "siteID": 121, "applicationID": 110, "entityID": 7009 } },
"packet_timestamp_unix_ms": 1780568643000
}
]
}| Field | Description |
|---|---|
index | Position of the entry in the source list. |
byte_offset | Always 0. |
length_bytes | Always 0. |
pdu | The decoded PDU object, unchanged. |
packet_timestamp_unix_ms | Present only when the source entry carried it. |
Limitations
- One parent, latest output only.
- Entries without a
pduobject are dropped silently. Theindexof the remaining entries still reflects their position in the source list. - The node fails when the input has neither an
open_dis_pdunor apdulist.
Related
-
DIS pipelines, the whole path from the network to a dashboard
-
hydrate-protobuf produces the PDU input.
-
entity-state-to-records consumes the output.
-
opendis-parser splits raw DIS byte streams instead.