DDS Topic-to-Service Integration Matrix

This page documents which LDM 10 DDS topics are published and subscribed to by each GVA platform service and application.

Legend

Symbol Meaning
PUB Service publishes this topic
SUB Service subscribes to this topic
P/S Service both publishes and subscribes
Not used by this service

Active Topics by PSM Module

Alarms (P_Alarms_PSM)

Under Def Stan 23-009 Arch-2 the alarms service is the sole publisher of C_Alarm and C_Alarm_Category_Definition. LRUs (including third-party apps that model an Alarm_Condition_Source) publish C_Alarm_Condition and, optionally, C_Alarm_Condition_Specification; the service falls back to alarm_specifications.json when the LRU does not supply a spec. Operator commands are published by the HMI (The_Authorised_Operator); the service replies on Alarms__CommandResponseType.

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | ------------------------------- | -------- | ------- | ------- | ---- | ------- | --------------- | ----------- | -------- | ----- | --- | | Alarm | — | PUB | SUB | — | SUB | SUB | — | — | — | — | | Alarm_Condition | — | SUB | SUB | — | SUB | PUB | — | — | — | — | | Alarm_Condition_Specification | — | PUB¹| SUB | — | SUB | PUB | — | — | — | — | | Alarm_Category_Definition | — | PUB | SUB | — | SUB | SUB | — | — | — | — | | Alarm__acknowledge | — | SUB | PUB | — | P/S | — | — | — | — | — | | Alarm__clearAlarm | — | SUB | PUB | — | P/S | — | — | — | — | — | | Alarm__annotate | — | SUB | PUB | — | P/S | — | — | — | — | — | | Alarm_Condition__override | — | SUB | PUB | — | P/S | — | — | — | — | — | | Alarm_Condition__removeOverride | — | SUB | PUB | — | SUB | — | — | — | — | — | | CommandResponseType | — | PUB | SUB | — | SUB | — | — | — | — | — |

¹ gva-alarms publishes C_Alarm_Condition_Specification only as a fallback when the LRU has not published its own spec within 10 s of service start (see alarm_specifications.json → fallbacks[]).

² 3rd Party Apps: gva-app-bms, gva-app-shield-protocol, gva-app-defense-grid-run, gva-app-drone-invaders

Resource ID Allocation (P_Resource_ID_Allocation_PSM)

The registration handshake and platform-wide "configured-with-registry" health view. See the Registration Service page for the semantics.

Topic Registry Alarms HMI UACM LdmX 3rd Party Apps² VoIP Server J1939 GW ONVIF
Configured_Platform_With_Registry PUB SUB SUB
..._requestResourceId SUB PUB¹ SUB PUB¹
..._unmapDescriptor SUB PUB P/S
Registered_Platform_Resource SUB (+P³) PUB¹ SUB PUB¹
..._supplyResourceId PUB SUB¹ SUB SUB¹
..._resetResource SUB¹ SUB SUB¹
Missing_Resource_Mapping PUB SUB P/S
..._mapDescriptor SUB PUB P/S PUB
Conflicted_Resource PUB SUB SUB
..._clearConflict SUB PUB SUB

¹ Via qt6-gva-resource-lib shared library (gva::GvaResource). ³ gva-registry also publishes an aggregate Registered_Platform_Resource stream by default for compatibility; disable with --disable-registry-aggregator for strict-compliance runs.

Platform Configuration (P_Platform_Configuration_PSM)

Platform-wide roles, resource specifications and operator commands. Registry publishes the state topics; HMI/operator drives the commands.

Topic Registry Alarms HMI UACM LdmX 3rd Party Apps² VoIP Server J1939 GW ONVIF
Configured_Platform_Specification PUB SUB SUB
Configured_Platform PUB SUB SUB
..._setOperatingMode SUB PUB P/S PUB
..._setCurrentRole SUB PUB P/S PUB
Role_Definition PUB SUB SUB
Discoverable_Resource_Specification PUB SUB SUB
Discoverable_Resource PUB SUB SUB
..._clearNewlyMapped SUB PUB SUB
..._clearVersionedItemsChanged SUB PUB SUB
Non_Discoverable_Resource_Specification PUB SUB SUB
Non_Discoverable_Resource PUB SUB SUB
..._setStatus SUB PUB SUB
..._setSerialNumber SUB PUB SUB
Platform_Resource_Specification SUB PUB¹ SUB PUB¹
Platform_Resource_setOperatingMode (optional §5.4.7) PUB SUB SUB¹

Display Extension (P_Display_Extension_PSM)

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | -------------------------- | -------- | ------ | ------- | ---- | ---- | --------------- | ----------- | -------- | ----- | --- | | Third_Party_Session | — | — | SUB | — | SUB | PUB | — | — | — | — | | Hard_Button_Label | — | — | SUB | — | SUB | PUB | — | — | — | — | | Hard_Button_Event | — | — | PUB | — | SUB | SUB | — | — | — | — | | Widget_Interaction_Event | — | — | PUB | — | SUB | SUB | — | — | — | — | | Soft_Button_Event | — | — | PUB | — | SUB | — | — | — | — | — | | Mouse_Event | — | — | — | — | SUB | — | — | — | — | — | | Third_Party_Page | — | — | PUB | — | SUB | SUB | — | — | — | — | | Extensible_HMI_Application | — | — | — | — | SUB | — | — | — | — | — |

Audio (P_Audio_PSM)

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | ------------------------ | -------- | ------ | --- | ---- | ---- | --------------- | ----------- | -------- | ----- | --- | | Audio_Group_Controller | — | — | — | — | — | — | PUB | — | — | — | | Audio_Channel_Controller | — | — | — | — | — | — | PUB | — | — | — | | createAudioGroup | — | — | — | — | — | — | SUB | — | — | — | | deleteAudioGroup | — | — | — | — | — | — | SUB | — | — | — | | updateAudioGroup | — | — | — | — | — | — | SUB | — | — | — | | joinAudioChannel | — | — | — | — | — | — | SUB | — | — | — | | leaveAudioChannel | — | — | — | — | — | — | SUB | — | — | — |

Actuators (P_Actuators_PSM)

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | ------------------------ | -------- | ------ | --- | ---- | ---- | --------------- | ----------- | -------- | ----- | --- | | Actuator | — | — | — | — | — | — | — | — | — | SUB | | Actuator_Numeric_Setting | — | — | — | — | — | — | — | — | — | SUB | | Generic_Actuator | — | — | — | — | — | — | — | — | — | SUB |

Usage & Condition Monitoring (P_Usage_And_Condition_Monitoring_PSM)

gva-uacm implements the SR-role Usage And Condition Monitoring Service (§2.5.4) plus a bridge role (§2.5.5–§2.5.7 / §7.2.1 / GVA_UCMR_003). It subscribes to the R-role specification/state surface, persists everything to PostGIS, derives Fault_Event samples from matching Fault_Code transitions, and answers O-role commands per GVA CRP v2.0 §3. See UACM Service.

State topics — R-role specifications (SUB) and service derivations (PUB)

Topic Registry Alarms HMI UACM LdmX 3rd Party Apps² VoIP J1939 GW ONVIF
Platform_With_Monitoring PUB SUB
Resource_With_Monitoring SUB SUB
Monitored_Resource SUB PUB SUB
Monitored_Resource_Specification SUB P/S³ SUB
Monitored_Characteristic PUB SUB
Monitored_Attribute_Specification SUB SUB
Monitored_Average_Specification SUB SUB
Monitored_Event_Count_Specification SUB SUB
Monitored_Powered_On_Specification SUB SUB
Monitored_Time_Specification SUB SUB
Fault_Code SUB SUB
Fault_Code_Specification SUB SUB
Fault_Event SUB PUB SUB
Fault_Event_Specification SUB P/S³ SUB
Characteristic_Usage SUB SUB
Characteristic_Usage_Specification SUB SUB
Expiry_Date_Usage SUB SUB
Expiry_Date_Usage_Specification SUB SUB
Instantaneous_Event SUB SUB
Instantaneous_Event_Specification SUB SUB
Interruptive_Built_In_Test SUB SUB SUB
Interruptive_Built_In_Test_Specification SUB SUB
Maintenance_Action SUB SUB
Maintenance_Action_Specification SUB SUB
Manual_Failure_Report PUB SUB
Threshold_Exceedance_Event SUB PUB SUB
Instantaneous_Threshold_Requirement SUB SUB
Rate_Of_Change_Threshold_Requirement SUB SUB
Change_Based_Monitoring_Requirement SUB SUB
Periodic_Monitoring_Requirement SUB SUB
Monitoring_Data_Source_Specification SUB SUB
Collection_Data_Set_Definition SUB SUB
Channel SUB SUB
Channel_Specification SUB SUB

Command topics — O-role driven, service replies via CommandResponseType

Topic Registry Alarms HMI UACM LdmX 3rd Party Apps² VoIP J1939 GW ONVIF
Monitored_Characteristic__supplyCharacteristicValue SUB SUB
Monitored_Characteristic__reset PUB SUB P/S
Fault_Event__setOperatorComment PUB SUB P/S
Fault_Event__remove PUB SUB P/S
Interruptive_Built_In_Test__startTest PUB SUB P/S
Interruptive_Built_In_Test__stopTest PUB SUB P/S
Maintenance_Action__complete PUB SUB P/S
Maintenance_Action__blocked PUB SUB P/S
Maintenance_Action__setComment PUB SUB P/S
Maintenance_Action__remove SUB P/S
Manual_Failure_Report__updateDescription PUB SUB P/S
Manual_Failure_Report__clear PUB SUB P/S
Platform_With_Monitoring__reportManualFailure PUB SUB P/S
Expiry_Date_Usage__setNewExpiryDate PUB SUB P/S
Characteristic_Usage__updateCurrentUsage PUB SUB P/S
Resource_Usage__resetUsage SUB P/S
Usage_And_Condition_Monitoring__CommandResponseType SUB PUB SUB

³ Monitored_Resource_Specification and Fault_Event_Specification are the bridge-role dual channels: gva-uacm subscribes to them as the wire-authority input for WIRE_LEARNED promotion (§2.5.4–§2.5.7) and publishes surrogate samples at grace-elapse for entries that remain in the BRIDGE_FALLBACK role. Which side wins is decided per (resourceId, instanceId) key using the fallback authority precedence rule in the UACM Service docs.

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | --------------------------------- | -------- | ------ | --- | ---- | ---- | --------------- | ----------- | -------- | ----- | --- | | Navigation_Resource | — | — | SUB | — | SUB | — | — | — | — | — | | Navigation_Resource_Specification | — | — | — | — | SUB | — | — | — | — | — | | Navigation_Integration_Service | — | — | — | — | SUB | — | — | — | — | — | | Position | — | — | SUB | — | SUB | — | — | — | — | — |

J1939 Automotive (P_J1939_Automotive_PSM)

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | --------------------------- | -------- | ------ | --- | ---- | ---- | --------------- | ----------- | -------- | ------- | --- | | Parameter | — | — | — | — | SUB | — | — | PUB | PUB | — | | Parameter_Group_Definition | — | — | — | — | — | — | — | PUB | PUB | — | | Data_Source | — | — | — | — | — | — | — | — | PUB | — | | Data_Source_Specification | — | — | — | — | — | — | — | — | PUB | — | | Application_Area_Definition | — | — | — | — | — | — | — | — | PUB | — |

Mount (P_Mount_PSM)

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | ---------------- | -------- | ------ | --- | ---- | ---- | --------------- | ----------- | -------- | ----- | --- | | Rotational_Mount | — | — | SUB | — | SUB | — | — | — | — | — |

Video (P_Video_PSM)

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | -------------- | -------- | ------ | --- | ---- | ---- | --------------- | ----------- | -------- | ----- | --- | | Optical_Sensor | — | — | SUB | — | SUB | — | — | — | — | — |

Battlespace Objects (P_Battlespace_Objects_PSM)

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | ------------------ | -------- | ------ | --- | ---- | ---- | --------------- | ----------- | -------- | ----- | --- | | Battlespace_Object | — | — | SUB | — | — | — | — | — | — | — | | Object_Location | — | — | SUB | — | — | — | — | — | — | — | | objectDeleted | — | — | SUB | — | — | — | — | — | — | — |

Routes (P_Routes_PSM)

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | ------------------------ | -------- | ------ | --- | ---- | ---- | --------------- | ----------- | -------- | ----- | --- | | Route | — | — | — | — | SUB | — | — | — | — | — | | Waypoint | — | — | — | — | SUB | — | — | — | — | — | | Platform_Following_Route | — | — | — | — | SUB | — | — | — | — | — |

Displays & Controls (P_Displays_And_Controls_PSM)

| Topic | Registry | Alarms | HMI | UACM | LdmX | 3rd Party Apps² | VoIP Server | J1939 GW | ONVIF | | --------------- | -------- | ------ | --- | ---- | ---- | --------------- | ----------- | -------- | ----- | --- | | HMI_Desktop | — | — | — | — | SUB | — | — | — | — | — | | HMI_Application | — | — | — | — | SUB | — | — | — | — | — | | Display_Panel | — | — | — | — | SUB | — | — | — | — | — | | Text_Display | — | — | — | — | SUB | — | — | — | — | — |

Third Party Application Breakdown

The "3rd Party Apps" column above aggregates multiple Display Extension client applications that share the same DDS topic pattern. Individual breakdown:

Topic BMS Shield Protocol Defense Grid Drone Invaders Wpn Sight
Third_Party_Session PUB PUB PUB PUB PUB
Hard_Button_Label PUB PUB PUB PUB PUB
Hard_Button_Event SUB SUB SUB SUB SUB
Widget_Interaction_Event SUB SUB
Third_Party_Page SUB SUB SUB SUB SUB
requestResourceId PUB¹ PUB¹ PUB¹ PUB¹
supplyResourceId SUB¹ SUB¹ SUB¹ SUB¹
mapDescriptor PUB PUB PUB PUB
setOperatingMode PUB PUB PUB PUB
setCurrentRole PUB PUB PUB PUB
Alarm PUB PUB PUB
Alarm_Condition PUB PUB PUB
Alarm_Condition_Specification PUB PUB PUB
Alarm_Category_Definition PUB PUB PUB

Service Roles Summary

graph LR subgraph Core Services REG[gva-registry] ALM[gva-alarms] UACM[gva-uacm] VOIP[gva-voip-server] end subgraph Applications HMI[gva-hmi] BMS[gva-app-bms] SHIELD[gva-app-shield-protocol] J1939[gva-gateway-j1939] ONVIF[gva-app-onvif] end subgraph Tools LDMX[ldmx] end REG -->|supplyResourceId| HMI REG -->|supplyResourceId| BMS HMI -->|requestResourceId| REG BMS -->|requestResourceId| REG ALM -->|Alarm, AlarmCondition| HMI HMI -->|acknowledge, clearAlarm| ALM SHIELD -->|Alarm, AlarmCondition| ALM UACM -->|MonitoredResource, FaultEvent| HMI BMS -->|ThirdPartySession, ButtonLabel| HMI SHIELD -->|ThirdPartySession, ButtonLabel| HMI HMI -->|HardButtonEvent, WidgetInteraction| BMS HMI -->|HardButtonEvent| SHIELD SIM -->|J1939 Parameter| LDMX J1939 -->|J1939 Parameter| LDMX VOIP -->|AudioGroupController| LDMX ONVIF -.->|subscribes Actuator topics| ONVIF LDMX -.->|monitors all topics| REG LDMX -.->|monitors all topics| ALM LDMX -.->|monitors all topics| UACM
Service Executable Role Pub Topics Sub Topics
Registry gva-registry Platform registration hub, resource ID allocation 6 6
Alarms gva-alarms Alarm lifecycle management 3 7
HMI gva-hmi Crew interface, display extension host 14 22
UACM gva-uacm Health & usage monitoring (SR-role + bridge role, GVA CRP v2.0 §3) 7 33
VoIP Server gva-voip-server Audio group/channel management (SIP) 2 5
LdmX ldmx DDS topic monitor/inspector 8 ~45
BMS App gva-app-bms Battle management display extension 7 5
Shield Protocol gva-app-shield-protocol Security display extension 10 4
Defense Grid gva-app-defense-grid-run Game display extension 10 4
Drone Invaders gva-app-drone-invaders Game display extension 6 3
Weapon Sight gva-app-wpn-sight Weapon sight display extension 7 5
J1939 Gateway gva-gateway-j1939 CAN bus to DDS bridge 5 0
ONVIF gva-app-onvif ONVIF camera PTZ control via DDS 0 3

Unimplemented PSM Modules

The following GVA Defence Standard PSM modules define DDS topics in the IDL but have no active service implementation:

PSM Module Topic Count Description
Acoustic_Detector_PSM 12 Acoustic threat detection
Ammunition_PSM 3 Ammunition nature and quantities
Annunciation_PSM 14 Audio/visual crew annunciations
Arbitration_PSM 22 Resource access arbitration
Automatic_Weapon_PSM 18 Automatic weapon fire control
Automotive_Message_Set_Specification_PSM 6 Automotive entity specifications
Distribution_Network_PSM 19 Power distribution network
Environmental_Control_PSM 31 HVAC and NBC protection
Environmental_Sensors_PSM 28 Environmental sensor data
Laser_Range_Finder_PSM 15 LRF control and measurement
Laser_Warning_System_PSM 8 Laser warning receiver
Manual_Weapon_PSM 12 Manual weapon control
Multimedia_Routing_PSM 20 Multimedia stream routing
Power_PSM 47 Power source management
Radar_PSM 37 Radar control and tracks
Single_Shot_Grenade_Launcher_Array_PSM 14 Smoke/grenade launchers
States_Modes_PSM 10 System state machines
Tactical_Effector_PSM 13 Fire control systems
Tactical_Object_Derivation_PSM 10 Threat correlation
Tactical_Sensor_PSM 14 Tactical sensor tracks
Video_Tracking_PSM 39 Video auto-tracker
Weapon_Location_PSM 27 Weapon locating radar