BMS - Battlespace Management System¶
The BMS (Battlespace Management System) is an example external application that demonstrates the GVA Display Extension Service interface. It provides a fully functional map-based interface for battlespace management integrated with the GVA HMI.
Overview¶
The BMS application showcases:
- Third-party session registration with the HMI
- Map tile rendering with multiple layer options
- Military symbol (MIL-STD-2525D) overlay and interaction
- Touch/mouse event forwarding from HMI to external app
- Soft key (bezel button) integration
Screenshots¶
Map Layers¶
The BMS supports multiple map tile providers:
Satellite¶
ESRI World Imagery satellite view.

Topographic¶
ESRI World Topographic map with elevation contours.

Terrain¶
OpenTopoMap terrain view with shaded relief.

Street¶
OpenStreetMap street map view.

Symbol Interaction¶
The BMS provides a radial menu for interacting with military symbols on the map:

The radial menu provides options to:
- Delete - Remove the symbol from the map
- Note - Add or edit a text annotation
- Waypoint - Set a navigation waypoint
- Move - Reposition the symbol
Symbol Notes¶
Symbols can have notes attached that display as tooltips:
With Note¶

Without Note¶

Connection States¶
Waiting for External Application¶
When the HMI is waiting for the BMS application to connect:

Dial Move Not Displayed¶
Radial menu in hidden state during map navigation:

Running the BMS¶
Prerequisites¶
- GVA HMI must be running
- Registry service must be running
- Network connectivity on DDS domain 0
Standalone Mode¶
Run the BMS application directly:
The BMS will:
- Register with the Registry service to obtain a Resource ID
- Publish its Third Party Session to the HMI
- Configure bezel button labels (F1-F12) for map controls
- Display fullscreen and wait for HMI connection
With HMI Integration¶
For full integration with the GVA HMI:
cd build/bin
# Start services
./gva-qt6-registry &
./gva-qt6-alarms &
# Start BMS
./gva-qt6-app-bms &
# Start HMI
./gva-qt6-hmi &
Or use the provided script:
Accessing from HMI¶
- Start the HMI and BMS as shown above
- Press F28 (BMS) on the HMI function select bar
- The HMI control area will display "Waiting for external application..."
- Once connected, the BMS map view appears in the HMI
Controls¶
Bezel Buttons (F1-F12)¶
The BMS configures the side bezel buttons for map navigation:
| Button | Label | Function |
|---|---|---|
| F1 | Zoom+ | Zoom in on map |
| F2 | Zoom- | Zoom out |
| F3 | Pan ↑ | Pan map north |
| F4 | Pan ↓ | Pan map south |
| F5 | Pan ← | Pan map west |
| F6 | Pan → | Pan map east |
| F7 | Centre | Centre on default location |
| F8 | Sat | Switch to satellite imagery |
| F9 | Topo | Switch to topographic map |
| F10 | Terrain | Switch to terrain view |
| F11 | Street | Switch to street map |
| F12 | Reset | Reset to default view |
Mouse/Touch Controls¶
When the BMS is active in the HMI:
- Click/Tap - Select symbol or place marker
- Drag - Pan the map
- Scroll wheel - Zoom in/out
- Long press on symbol - Open radial action menu
Architecture¶
DDS Topics¶
The BMS uses the following DDS topics:
| Topic | Direction | Purpose |
|---|---|---|
Third_Party_Session |
Publish | Session registration |
Hard_Button_Label |
Publish | Button label configuration |
Hard_Button_Event |
Subscribe | Button press events |
Widget_Interaction_Event |
Subscribe | Mouse/touch events |
requestResourceId |
Publish | Resource ID request |
supplyResourceId |
Subscribe | Resource ID allocation |
setOperatingMode |
Publish | Operating mode changes |
Session Flow¶
Configuration¶
Map Tile Cache¶
Map tiles are cached locally in:
Default Location¶
The BMS defaults to Brisbane, Australia (-27.4698, 153.0251) at zoom level 10. This can be modified in the source code or via command-line arguments.
Military Symbols¶
Demo symbols are loaded from:
The JSON file defines MIL-STD-2525D symbols with positions:
{
"description": "Demo military symbols for BMS application",
"symbols": [
{
"id": "friendly-infantry-1",
"sidc": "SFGPUCI----E***",
"name": "1st Infantry",
"latitude": -27.4698,
"longitude": 153.0251,
"note": "Main force element"
}
]
}
Military Symbol Gallery¶
The BMS application renders MIL-STD-2525D military symbols. Below is a gallery of available symbols organised by affiliation and domain.
Friend Symbols¶
Land Units¶
| Symbol | Description |
|---|---|
![]() |
Infantry |
![]() |
Armor |
![]() |
Artillery |
![]() |
Mechanized |
![]() |
Reconnaissance |
![]() |
Engineer |
![]() |
Air Defense |
![]() |
Aviation |
![]() |
Special Forces |
![]() |
Signal |
![]() |
Medical |
![]() |
Supply |
![]() |
Headquarters |
Equipment¶
| Symbol | Description |
|---|---|
![]() |
Tank |
![]() |
APC |
![]() |
Artillery |
![]() |
Helicopter |
![]() |
Aircraft |
![]() |
Drone |
![]() |
Missile |
Air¶
| Symbol | Description |
|---|---|
![]() |
Fighter |
![]() |
Bomber |
![]() |
Attack Helicopter |
![]() |
Transport Helicopter |
![]() |
UAV |
![]() |
Reconnaissance |
Sea Surface¶
| Symbol | Description |
|---|---|
![]() |
Aircraft Carrier |
![]() |
Destroyer |
![]() |
Frigate |
![]() |
Cruiser |
![]() |
Patrol |
![]() |
Amphibious |
Subsurface¶
| Symbol | Description |
|---|---|
![]() |
Submarine |
![]() |
SSN (Nuclear Attack) |
![]() |
SSBN (Ballistic) |
![]() |
UUV |
Hostile Symbols¶
Land Units¶
| Symbol | Description |
|---|---|
![]() |
Infantry |
![]() |
Armor |
![]() |
Artillery |
![]() |
Mechanized |
![]() |
Reconnaissance |
![]() |
Air Defense |
![]() |
Headquarters |
Equipment¶
| Symbol | Description |
|---|---|
![]() |
Tank |
![]() |
APC |
![]() |
Artillery |
![]() |
Helicopter |
![]() |
Missile |
Air¶
| Symbol | Description |
|---|---|
![]() |
Fighter |
![]() |
Bomber |
![]() |
Attack Helicopter |
![]() |
UAV |
Sea Surface¶
| Symbol | Description |
|---|---|
![]() |
Destroyer |
![]() |
Frigate |
![]() |
Patrol |
Subsurface¶
| Symbol | Description |
|---|---|
![]() |
Submarine |
![]() |
SSN (Nuclear Attack) |
Neutral Symbols¶
Land Units¶
| Symbol | Description |
|---|---|
![]() |
Infantry |
![]() |
Armor |
![]() |
Basic Unit |
Equipment¶
| Symbol | Description |
|---|---|
![]() |
Tank |
![]() |
Vehicle |
![]() |
Aircraft |
Unknown Symbols¶
| Symbol | Description |
|---|---|
![]() |
Unknown Land Unit |
![]() |
Unknown Air |
![]() |
Unknown Sea Surface |
![]() |
Unknown Submarine |
Installation Symbols¶
| Symbol | Description |
|---|---|
![]() |
Airport (Friend) |
![]() |
Heliport (Friend) |
![]() |
Base (Friend) |
![]() |
Hospital (Friend) |
![]() |
Military (Hostile) |
![]() |
Airport (Hostile) |
Troubleshooting¶
BMS Not Appearing in HMI¶
- Check Registry service is running
- Verify DDS domain ID matches (default: 0)
- Check BMS obtained a Resource ID in console output
- Ensure HMI is on BMS screen (F28)
Map Tiles Not Loading¶
- Check internet connectivity
- Verify tile cache directory is writable
- Try a different map layer (some may have rate limits)
Button Presses Not Working¶
- Ensure BMS is the active application
- Check HMI is forwarding button events
- Verify DDS connectivity between HMI and BMS








































































