Message Model
The CATL message envelope, the seven message types, and the base entity model they carry.
The HIBW model is split into two modules:
base— the common data model: entities (contacts, tracks, plots, nodes), locations, tasking, types and constraints. None of these are sent on their own; they are the building blocks.catl— the Command And Tasking Layer: the wire-level message envelope and the concrete message set built on top ofbase.
The envelope
Every CATL message is a header plus a typed body.
The header carries the discriminating message_type, the originating node
(source, a GUID), a schema version, and time_sent. Concrete message types
(for example NodeDescription) extend the base Message with their own typed
body.
The seven message types
| Message type | Purpose |
|---|---|
NODE_DESCRIPTION | A node advertises its identity, endurance and capabilities. |
NODE_STATUS | A node reports its current state, including active tasks. |
TASK_ADMIN | Assign, modify or clear tasks for one or more nodes. |
TASK_FEEDBACK | A node reports progress / acceptance of tasks it was given. |
TASK_RESULT | A node returns the products / outcome of a completed task. |
DYNAMIC_UPDATE | Incremental create / update / delete of data products (tracks, contacts, volumes). |
CHAT | Free-text operator messaging. |
Browse the concrete message structs under
catl in the reference.
The base entity model
Reports about the world are entities. The core hierarchy is built on
BaseWhatWhereWhen — a thing, where it is, and when it was observed:
Plot— an observation that is not yet tracked.Track— a tracked detection, with a lifecycle (TrackPhase: dead-reckoned, lost, tracked, inactive).Contact— a track with a domain specialization (ASW, MCM, seabed warfare, …) and classification.
A TargetOrNode union lets a single field reference any detected object — a
contact, track, plot, reference or node — which is how tasking points at the
things it acts on.
These diagrams are hand-drawn summaries. The reference pages carry the full,
auto-generated class diagrams for every package, including inherited fields and
cross-links. Start at the base/track package.