LDMX - Land Data Model Explorer

LDMX (Land Data Model Explorer) is a powerful debugging and diagnostic tool for monitoring and analysing GVA DDS traffic in real-time. It provides comprehensive visibility into the LDM message bus, making it an essential tool for development, integration testing, and troubleshooting GVA systems.

LDMX Welcome Screen

Key Capabilities

LDMX provides the following capabilities:

Feature Description
Real-time DDS Monitoring Subscribe to and display all LDM DDS topics as they are published
Message Analysis Deep inspection of message structure and field values
Registry Tracking Monitor resource registration and descriptor mappings
Alarm Management View, acknowledge, and manage system alarms
UACM Diagnostics Monitor resource health status and fault events
Topic Statistics Track message counts and timing per DDS topic

Running LDMX

Launch LDMX from the build directory:

cd build/bin
./ldmx

Configuration

LDMX can be configured via a JSON configuration file. The configuration file is searched in the following locations (in order):

  1. ./ldmx-config.json (current directory)
  2. ~/.config/ldmx/config.json (user configuration)
  3. Qt standard AppConfigLocation
  4. /etc/ldmx/config.json (system-wide)

Example configuration:

{
  "dds_domain_id": 0,
  "window_title": "LDMX - Land Data Model Explorer",
  "auto_refresh_interval": 0
}

Tabs Overview

LDMX organises its functionality into several tabs under the DDS / LDM section:

Registry Status Tab

The Registry Status tab provides visibility into the GVA registration system, showing which resources have registered on the network and their descriptor mappings.

Registry Status Tab

Features:

  • Registered Resources Table: Displays all resources that have registered via the Registration Service, including:

    • UUID - Unique identifier for the resource
    • Resource ID - Allocated LDM resource ID
    • Instance ID - Instance number
    • Manufacturer, Model, Version, Serial - Device metadata
    • Timestamp - When the resource registered
  • Descriptor Mappings Table: Shows the mapping between human-readable descriptors and resource IDs:

    • Descriptor - Human-readable name (e.g., "Main Display", "BMS Controller")
    • Resource ID / Instance ID - Mapped resource identification
    • Status - Active or Unmapped
    • Timestamp - When mapping was created
  • Map/Unmap Button: Allows toggling descriptor mappings on/off for testing

Alarms Tab

The Alarms tab provides comprehensive alarm monitoring and management capabilities.

Alarms Tab

Features:

  • Alarm Table: Real-time display of all active alarms with columns for:

    • Alarm ID - Unique alarm identifier
    • Category - Warning, Caution, or Advisory
    • State - Active, Acknowledged, Overridden, etc.
    • Description - Human-readable alarm text
    • Source - Originating resource
    • Timestamp - When alarm was raised
  • Alarm Actions: Buttons to interact with selected alarms:

    • Acknowledge - Mark alarm as acknowledged
    • Clear - Clear the alarm (if clearable)
    • Annotate - Add operator notes to alarm
    • Override - Override alarm condition (if supported)
  • Status Bar Counters: Shows count of active alarms by priority level (Warning/Caution/Advisory)

UACM Monitor Tab

The UACM Monitor tab displays resource health status from the Usage and Condition Monitoring system.

UACM Monitor Tab

Features:

  • Monitored Resources Table: Shows health status of all monitored resources:

    • ID - Row identifier
    • Timestamp - Last update time
    • Resource ID / Instance ID - Resource identification
    • Health Status - RAG status (Red/Amber/Green)
    • Spec Resource ID / Instance ID - Link to resource specification
  • RAG Status Indicators: Health status displayed with colour coding:

    • 🟢 GREEN - Normal operation
    • 🟡 AMBER - Degraded performance or warning
    • 🔴 RED - Fault or failure condition
  • Refresh Button: Manually refresh UACM data from DDS

UACM Faults Tab

The UACM Faults tab provides detailed fault event tracking and diagnostics.

UACM Faults Tab

Features:

  • Fault Events Table: Displays all fault events received via DDS:

    • Source Resource ID / Instance ID - Where the fault originated
    • Fault State - Current, Rectified, or Intermittent
    • Description - Human-readable fault description
    • Comment - Additional context or operator notes
    • Occurrence Time - When the fault occurred
    • Time Rectified - When fault was cleared (if applicable)
    • Root Cause - Link to root cause resource (if identified)
  • Refresh Button: Manually refresh fault data from DDS

Analyser Tab

The Analyser tab is a powerful message inspection tool that captures and displays all DDS traffic.

Analyser Tab

Features:

  • Message List (Upper Pane): Scrolling list of all captured DDS messages:

    • Timestamp - Message receive time
    • Source - Originating resource
    • Destination - Target resource (if applicable)
    • Topic - DDS topic name
    • Details - Brief message summary
  • Message Details (Lower Pane): Hierarchical tree view of selected message:

    • Expandable field structure
    • Field names and values
    • Nested complex types fully expanded
    • Easy navigation of message content
  • Auto-scroll: Table automatically scrolls to show newest messages

Performance Tip

In high-traffic environments, the Analyser can capture thousands of messages. Consider filtering or pausing capture when investigating specific issues.

Topics Tab

The Topics tab provides statistics on DDS topic activity.

Topics Tab

Features:

  • Topic Statistics Table: Overview of all DDS topics with:

    • Topic Name - Full DDS topic name
    • Message Count - Total messages received on this topic
    • Last Received - Timestamp of most recent message
  • Reset Counters Button: Clear all message counters to start fresh measurement

  • Automatic Refresh: Statistics update in real-time as messages arrive

Use Cases

Development & Debugging

  • Verify that your application is publishing correct DDS messages
  • Inspect message content to debug serialisation issues
  • Monitor registration flow during application startup

Integration Testing

  • Verify end-to-end message flow between systems
  • Confirm alarm propagation and handling
  • Validate UACM health reporting

System Diagnostics

  • Identify communication issues between GVA components
  • Monitor system health and fault conditions
  • Track resource registration status

Training & Documentation

  • Demonstrate GVA message flows
  • Capture screenshots for documentation
  • Understand LDM topic structure

Keyboard Shortcuts

Shortcut Action
Ctrl+Tab Switch to next tab
Ctrl+Shift+Tab Switch to previous tab
F5 Refresh current view
Esc Close application