GVA HMI - Human Machine Interface

The GVA HMI (gva-qt6-hmi) is the core display rendering application for DEF STAN 23-009 compliant military vehicle Human Machine Interfaces. It provides a fully functional display with all eight functional areas, DDS integration, and support for third-party external applications.

SA Screen with Video

Overview

The GVA HMI application provides:

  • DEF STAN 23-009 Compliance: Full implementation of GVA display layout and functional areas
  • Eight Functional Areas: SA, WPN, DEF, SYS, DRV, STR, COM, BMS with dedicated screens
  • DDS Integration: Real-time alarm display, registration services, and device management
  • External App Support: Third-party applications can render to WPN, STR, and BMS screens
  • Video Playback: Camera/video stream display on SA (Situational Awareness) screen
  • Widget Rendering: Custom Qt widgets for PPI, vehicle status, speedometer, and more

Running the HMI

Basic Usage

# Start the HMI on default SA screen
./build/bin/gva-qt6-hmi

# Start on a specific functional area
./build/bin/gva-qt6-hmi --area=4    # Start on SYS screen
./build/bin/gva-qt6-hmi -a 5        # Start on DRV screen

# Play video on SA screen
./build/bin/gva-qt6-hmi /path/to/video.mp4

Command Line Options

Option Description
-a, --area <N> Start in functional area (1=SA, 2=WPN, 3=DEF, 4=SYS, 5=DRV, 6=STR, 7=COM, 8=BMS)
<video> Video file to play on SA screen (positional argument)
-h, --help Display help information
--version Display version information

Functional Areas

The HMI implements all eight GVA functional areas accessible via the control buttons:

Area Key Description
SA F1 Situational Awareness - Video/camera feed with PPI overlay
WPN F2 Weapons - Extensible screen for weapon systems
DEF F3 Defensive Aids - Countermeasures display
SYS F4 System - 3D vehicle status and configuration
DRV F5 Driver - Speedometer, RPM, and camera feed
STR F6 Stores - Extensible screen for stores management
COM F7 Communications - Radio and comms management
BMS F8 Battlespace Management - Extensible screen for mapping

SYS Screen

The System screen displays the vehicle status with an interactive 3D model and system information:

SYS Screen

Keyboard Controls

Global Controls

Key Action
F1-F8 Switch to functional area (SA, WPN, DEF, SYS, DRV, STR, COM, BMS)
F11 Toggle fullscreen mode
L Toggle label visibility
Escape Exit fullscreen / Close alarms view

Alarms View Controls

Key Action
A Show/hide alarms table
F1 Toggle sort by Time/Category
F2 Toggle sort Ascending/Descending
Up/Down Navigate alarm list
Enter Acknowledge selected alarm

DRV Screen Controls

Key Action
F12 Toggle RPM gauge mode (Full/Compact)

External Applications

The HMI supports third-party external applications on three extensible screens:

  • WPN (F2) - Weapon system applications
  • STR (F6) - Stores management applications
  • BMS (F8) - Battlespace management / mapping applications

When no external application is connected, these screens display "Waiting for External Application".

Running with BMS

To run the HMI with the BMS (Battlespace Management System) external application:

# Terminal 1: Start the registry service
./build/bin/gva-qt6-registry --domain=0 &

# Terminal 2: Start the HMI
./build/bin/gva-qt6-hmi --area=8

# Terminal 3: Start the BMS application
./build/bin/gva-qt6-app-bms --domain=0

See the BMS Application documentation for more details.

Running with Shield Protocol

# Terminal 1: Start the registry service
./build/bin/gva-qt6-registry --domain=0 &

# Terminal 2: Start the HMI on WPN screen
./build/bin/gva-qt6-hmi --area=2

# Terminal 3: Start the Shield Protocol game
./build/bin/gva-qt6-app-shield-protocol --domain=0

See the Shield Protocol documentation for more details.

DDS Integration

The HMI integrates with the GVA DDS services for:

Alarms

Real-time alarm display from the GVA Alarm Service. Alarms are categorized by severity:

  • Warning (Red) - Critical conditions requiring immediate attention
  • Caution (Amber) - Important conditions requiring attention
  • Advisory (Cyan) - Informational messages
  • Override (Green) - System override status

The status bar displays alarm counts. Press A to view the full alarms table.

Registration

The HMI registers with the GVA Registry Service to:

  • Announce itself as a display device
  • Receive third-party session registrations
  • Manage button label updates from external applications

Display Extension Service

External applications use the Display Extension Service to:

  • Register their session with the HMI
  • Stream rendered frames to extensible screens
  • Receive touch/mouse events forwarded from the HMI
  • Update soft key (bezel button) labels

Architecture

┌─────────────────────────────────────────────────────────────┐
│                      GVA HMI Window                         │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────────────────────────────────────────────┐   │
│  │              Main Display Area                       │   │
│  │  ┌─────────────────────────────────────────────┐    │   │
│  │  │  Functional Area Content                     │    │   │
│  │  │  - SA: Video + PPI Widget                    │    │   │
│  │  │  - SYS: 3D Vehicle + Wheels Widget           │    │   │
│  │  │  - DRV: Camera + Speed/RPM Widgets           │    │   │
│  │  │  - BMS/WPN/STR: External App Frame           │    │   │
│  │  └─────────────────────────────────────────────┘    │   │
│  └─────────────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  Status Bar: DTG | Grid Ref | Heading | Alarms      │   │
│  └─────────────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  Function Keys (Bezel Buttons): F1-F20               │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

Building

The HMI is built as part of the main LDM SDK build:

cd build
cmake ..
make gva-qt6-hmi -j$(nproc)

Build Options

CMake Option Description
HAS_MULTIMEDIA Enable Qt Multimedia for video playback
HAS_OPENGL_VEHICLE Enable 3D vehicle rendering on SYS screen
HAS_DDS_ALARMS Enable DDS alarm and registration integration
LICENCE_CHECK_ENABLED Enable runtime licence validation