Skip to Content
This documentation is provided with the HEAT environment and describes this HEAT instance.

Data produced by the Open DIS module

The payload is opaque

Every PDU this module accepts is published as a PDU message with a single payload field: the DIS-7 packet’s raw bytes, unmodified. This module does not parse entity state, fire events, radio traffic or anything else DIS defines - it only reads enough of the header to validate and route the packet (below). Recovering entity positions, detonations, or any other DIS concept from a session requires a DIS-7 decoder downstream; HEAT Capture and HEAT ProtoLib do not provide one.

The capture timestamp on the wrapping envelope is HEAT Capture’s own wall-clock time at the moment the module publishes the packet, not any timestamp carried inside the DIS PDU itself.

What is validated before publishing

A received datagram is published only if all of the following hold; otherwise it is dropped and counted, with a warning logged (except where noted):

CheckRule
Minimum sizeAt least 12 bytes (the DIS PDU header)
Protocol version (header byte 0)Between 5 and 50 - deliberately wider than the official DIS protocol version range, to tolerate vendor deviations
Exercise identifier (header byte 1)Non-zero
Protocol family (header byte 3)Not validated by this release
PDU size field (header bytes 8–9, big-endian)At least 12, and no greater than the datagram’s actual length
PDU type (header byte 2)Not checked. A range check existed in source but is deliberately disabled, per its own comment, because some vendor sources use custom PDU type values outside the standard range.
Sender addressIf LocalCaptureOnly is enabled, the sender must be one of the workstation’s own local IP addresses, or the packet is dropped silently (no warning logged)

A dropped packet is still counted in the module’s debug view (droppedPackets); the packet count does not distinguish which check failed.

PDU type and session control

The PduType enumeration (Configure) only affects whether a PDU starts or stops a capture session - it does not filter which PDUs get published. Every PDU that passes header validation is published regardless of its type, including a StopFreeze PDU: that one is published before the module acts on it to end the session.

Notable behavior

DIS broadcast networks routinely generate a Windows-specific socket error (WSAECONNRESET, from an ICMP “port unreachable” response) that is common enough in broadcast environments that the native receiver silently discards it rather than treating it as a receive failure. It never appears in HEAT Capture’s own logs or debug view.

Opens your browser's print dialog. Choose "Save as PDF" as the destination.