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.

BMS Satellite View

Topographic

ESRI World Topographic map with elevation contours.

BMS Topographic View

Terrain

OpenTopoMap terrain view with shaded relief.

BMS Terrain View

Street

OpenStreetMap street map view.

BMS Street View

Symbol Interaction

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

BMS Radial Menu

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

Symbol with Note

Without Note

Symbol without Note

Connection States

Waiting for External Application

When the HMI is waiting for the BMS application to connect:

Waiting for External Application

Dial Move Not Displayed

Radial menu in hidden state during map navigation:

Dial Not Displayed

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:

cd build/bin
./gva-qt6-app-bms

The BMS will:

  1. Register with the Registry service to obtain a Resource ID
  2. Publish its Third Party Session to the HMI
  3. Configure bezel button labels (F1-F12) for map controls
  4. 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:

./run_gva_bms.sh

Accessing from HMI

  1. Start the HMI and BMS as shown above
  2. Press F28 (BMS) on the HMI function select bar
  3. The HMI control area will display "Waiting for external application..."
  4. 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

sequenceDiagram participant BMS as BMS App participant REG as Registry participant HMI as HMI Note over BMS: Application starts BMS->>REG: requestResourceId (UUID) REG->>BMS: supplyResourceId (ID: 458) BMS->>BMS: setOperatingMode (Operational) BMS->>HMI: Third_Party_Session Note right of BMS: descriptor="BMS|Battlespace..." BMS->>HMI: Hard_Button_Label (F1-F12) Note right of BMS: Zoom, Pan, Layer buttons HMI->>HMI: Display BMS in control area loop User interaction HMI->>BMS: Hard_Button_Event (F1-F12) BMS->>BMS: Handle map control HMI->>BMS: Widget_Interaction_Event Note right of HMI: Mouse position, clicks BMS->>BMS: Handle map interaction end Note over BMS: Application closes BMS->>HMI: setOperatingMode (Off) HMI->>HMI: Remove BMS session

Configuration

Map Tile Cache

Map tiles are cached locally in:

~/.cache/gva-bms/tiles/

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:

build/bin/demo_symbols.json

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"
        }
    ]
}

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

  1. Check Registry service is running
  2. Verify DDS domain ID matches (default: 0)
  3. Check BMS obtained a Resource ID in console output
  4. Ensure HMI is on BMS screen (F28)

Map Tiles Not Loading

  1. Check internet connectivity
  2. Verify tile cache directory is writable
  3. Try a different map layer (some may have rate limits)

Button Presses Not Working

  1. Ensure BMS is the active application
  2. Check HMI is forwarding button events
  3. Verify DDS connectivity between HMI and BMS