opendis-parser (Transform Node)
The opendis-parser node parses one or more DIS PDUs from upstream binary payloads and converts them into JSON.
Use this node when upstream data is a DIS byte stream and downstream nodes need structured JSON instead of raw protocol bytes.
Configuration Schema
| Property | Type | Required | Description |
|---|---|---|---|
dataSourceName | string | Yes (manifest) | Declared in node template schema. |
Notes:
- Manifest requires
dataSourceName. - Current processor implementation does not actively consume config fields during parse; it validates successfully with no config checks.
acceptsMultipleInputsisfalsein manifest.
How it works
At runtime, the processor:
- Fetches latest upstream inputs.
- Iterates input payload bytes.
- Splits contiguous DIS streams into PDUs using the DIS header length field.
- Converts each parsed PDU to dictionary form using
opendis_service.pdu_to_dict. - Returns:
- a single object when exactly one PDU is parsed
- an array of objects when multiple PDUs are parsed
The parser tolerates incomplete trailing PDUs and waits for complete payload data on later runs.
Input requirements
- Upstream payload must be DIS protocol bytes.
- Each PDU must include a valid 12-byte DIS header.
- Byte offsets 8-9 in each header must contain valid big-endian total PDU length.
Runtime failure behavior
The node fails when:
- No inputs are available.
- Parsing the DIS stream raises an exception.
Behavior to be aware of:
- Empty payload entries are skipped.
- If parsing yields zero complete PDUs, the node logs a warning and returns
None. - Malformed or incomplete trailing PDU bytes are ignored by stream splitting logic.
Output examples
Single parsed PDU:
{
"pduType": 1,
"entityID": {
"site": 1,
"application": 1,
"entity": 42
}
}Multiple parsed PDUs:
[
{ "pduType": 1 },
{ "pduType": 3 }
]Integration in a session template
- Place
opendis-parserafter the node that outputs raw DIS bytes. - Configure
dataSourceNameper manifest requirements. - Connect downstream JSON-processing nodes (
json-filter,dashboard, or others).