GVA Registration Service¶
The Registration Service is the foundation of GVA system interoperability. It enables automatic discovery of systems, capability exchange, and health monitoring across the vehicle network.
Overview¶
Every GVA-compliant system must register with the network to:
- Announce its presence and capabilities
- Receive information about other systems
- Maintain health status visibility
- Enable coordinated operations
Registration Concepts¶
graph LR
subgraph "Vehicle Network"
REG[Registry Service]
subgraph "Registered Systems"
HMI[HMI]
BMS[BMS]
WPN[Weapons]
NAV[Navigation]
EXT[External App]
end
end
HMI -->|Register| REG
BMS -->|Register| REG
WPN -->|Register| REG
NAV -->|Register| REG
EXT -->|Register| REG
REG -->|System List| HMI
REG -->|System List| BMS
REG -->|System List| WPN
REG -->|System List| NAV
REG -->|System List| EXT
Message Sequence¶
System Registration¶
sequenceDiagram
participant App as Application
participant DDS as DDS Network
participant Reg as Registry Service
participant Other as Other Systems
Note over App: Application starts
App->>DDS: Publish Registration
Note right of App: systemId, name, type,
capabilities, status=ONLINE DDS->>Reg: Receive Registration Reg->>Reg: Validate & Store Reg-->>DDS: Acknowledge DDS->>Other: Registration Notification Note right of Other: Other systems learn
about new system loop Heartbeat (every 5s) App->>DDS: Publish Registration Note right of App: status=ONLINE,
updated timestamp DDS->>Reg: Update status Reg->>Reg: Reset timeout end Note over App: Application stops App->>DDS: Publish Registration Note right of App: status=OFFLINE DDS->>Reg: Deregistration Reg->>Reg: Mark offline DDS->>Other: Status change notification
capabilities, status=ONLINE DDS->>Reg: Receive Registration Reg->>Reg: Validate & Store Reg-->>DDS: Acknowledge DDS->>Other: Registration Notification Note right of Other: Other systems learn
about new system loop Heartbeat (every 5s) App->>DDS: Publish Registration Note right of App: status=ONLINE,
updated timestamp DDS->>Reg: Update status Reg->>Reg: Reset timeout end Note over App: Application stops App->>DDS: Publish Registration Note right of App: status=OFFLINE DDS->>Reg: Deregistration Reg->>Reg: Mark offline DDS->>Other: Status change notification
Health Monitoring¶
sequenceDiagram
participant Reg as Registry Service
participant Sys as Registered System
participant Mon as Monitoring System
Note over Reg,Mon: Normal Operation
loop Every 5 seconds
Sys->>Reg: Heartbeat (status=ONLINE)
Reg->>Reg: Update last_seen
end
Note over Reg,Mon: System Failure
Sys--xReg: No heartbeat (system crashed)
Reg->>Reg: Timeout detected (>15s)
Reg->>Mon: Status change: TIMEOUT
Mon->>Mon: Alert operator
Note over Reg,Mon: System Recovery
Sys->>Reg: Heartbeat (status=ONLINE)
Reg->>Mon: Status change: ONLINE
Registration Data¶
System Information¶
| Field | Type | Description |
|---|---|---|
systemId |
string | Unique identifier (e.g., "HMI_001") |
systemName |
string | Human-readable name |
systemType |
enum | HMI, BMS, WEAPON, NAVIGATION, etc. |
status |
enum | ONLINE, OFFLINE, DEGRADED, TIMEOUT |
capabilities |
list | Supported features |
timestamp |
datetime | Last update time |
System Types¶
| Type | Description |
|---|---|
| HMI | Human Machine Interface |
| BMS | Battlefield Management System |
| WEAPON | Weapon System |
| NAVIGATION | Navigation System |
| COMMUNICATION | Communications |
| SENSOR | Sensor System |
| POWER | Power Management |
| APPLICATION | External Application |
| SERVICE | GVA Service |
| OTHER | Other system type |
Registration Status¶
| Status | Description |
|---|---|
| ONLINE | System operating normally |
| OFFLINE | System intentionally offline |
| DEGRADED | System operating with reduced capability |
| TIMEOUT | System not responding (set by Registry) |
| UNKNOWN | Status not determined |
Best Practices¶
Registration¶
- Use unique system IDs - Include a prefix for your organisation
- Register immediately - Don't delay registration after startup
- Include capabilities - Help other systems understand your features
Heartbeats¶
- 5-second interval - Standard GVA heartbeat period
- Don't skip heartbeats - Missing 3+ heartbeats triggers timeout
- Update timestamp - Always include current time
Shutdown¶
- Deregister cleanly - Set status to OFFLINE before exit
- Allow time - Brief delay for message delivery
- Handle signals - Catch SIGTERM/SIGINT for clean shutdown
Troubleshooting¶
System Not Appearing¶
- Check DDS domain matches other systems
- Verify network connectivity
- Ensure Registration topic name is correct ("Registration")
Timeout Status¶
- System crashed or network issue
- Heartbeat thread not running
- Firewall blocking DDS traffic
Duplicate Registrations¶
- Ensure systemId is unique
- Check for multiple instances running