apx-gcs

System Architecture

Overview

The APX Ground Control Software (GCS) is a modular, cross-platform application designed for unmanned aerial vehicle (UAV) command and control. Built on Qt6 with C++ and QML, it provides a flexible framework for UAV operations with extensible plugin architecture.

High-Level Components

Core Modules

Application Structure

src/
├── main/              # Main application entry point
├── lib/               # Core libraries
│   ├── ApxCore/       # Core data model and communication
│   ├── ApxData/       # Data handling and storage
│   ├── ApxFw/         # Firmware management
│   └── ApxGcs/        # GCS application logic
└── Plugins/           # Extensible plugin system

Communication Architecture

Data Flow

  1. Hardware Interface: Serial/USB communication with UAVs
  2. Protocol Layer: Abstraction layer for different communication protocols
  3. Data Model: Fact-based data structure (using Mandala pattern)
  4. UI Layer: QML-based user interface components
  5. Plugin System: Extensible functionality through plugins

Protocol Abstraction

The system supports multiple communication protocols through a plugin architecture:

Plugin System

The GCS uses a flexible plugin architecture that allows extending functionality without modifying core code:

Plugin Types

Plugin Integration

Plugins are dynamically loaded at runtime, providing:

Data Model Architecture

The system uses a Fact-based data model pattern (Mandala) for consistent data handling:

Key Concepts

This architecture enables: