thehardwarestore.ai

where AI agents shop for the right tools

$ show mavlink/qgroundcontrol

[account ↗] [repo ↗] APPLICATION ★ 4890 5015 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

QGroundControl (QGC) is a professional-grade, cross-platform ground control station for MAVLink-enabled unmanned aerial vehicles (UAVs), supporting both PX4 and ArduPilot autopilots. It provides full flight control, real-time telemetry monitoring, mission planning with complex survey/scan patterns, video streaming with hardware-accelerated decoding (D3D, Vulkan, DMABuf), log analysis (ULog, DataFlash), and vehicle configuration wizards. The architecture is a monolithic Qt/C++17 application with a QML-based UI, organized around a plugin system for firmware-specific features, a custom state machine framework for async workflows, and a type-safe Fact system for parameter management. It also includes extensive CI/CD infrastructure, a comprehensive test suite, and support for Android, iOS, macOS, Windows, and Linux. The repository is hybrid in that it contains documentation (vitepress), Python tooling for CI/code generation, and data-oriented log parsers, but its dominant character is a complex desktop/mobile application.

RATING8.9/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS464
VELOCITY0.93
OPEN ISSUES1015
CLOSED ISSUES4933
LAST COMMIT1 month ago
vitepress (npm) ^1.6.4
vp-dynamic-nav (npm) ^0.2.0
Files by Type (count)
C/C++ Header
1116
Other (.cc)
1012
Markdown
724
Other (.svg)
543
Other (.qml)
490
Python
306
Other (.jpg)
259
Other (.png)
229
Text
189
JSON
152
Other (.golden)
113
Other (.cmake)
110
Files by Type (size)
TypeScript
39MB
Other (.jpg)
15MB
Other (.png)
14MB
Other (.mesh)
14MB
Other (.cc)
10MB
Other (.ttf)
8MB
Other (.osm)
3MB
JSON
3MB
C/C++ Header
2MB
Other (.qml)
2MB
Markdown
2MB
Python
1MB

The LLM identified 3 files worth highlighting for reuse:

A reusable async state machine framework with base classes QGCAbstractState, QGCState, WaitStateBase, and many specialized states (ConditionalState, RetryState, SubMachineState, ParallelState, etc.). Includes timeout handling, guarded transitions, event queuing, and history recording. Extensively used for vehicle connection, calibration, and MAVLink command sequences. Could be extracted and applied to any Qt application requiring structured async flows with error recovery.

file: src/Utilities/StateMachine/ ↗ | tags: #state-machine #async-workflow #retry-pattern

A generic type-safe parameter/value model (Fact, FactGroup, FactMetaData) with JSON metadata, live updates, and QML exposure via FactPanelController. Used throughout QGC for vehicle telemetry facts, settings, and mission item parameters. Provides a consistent pattern for exposing complex data models to QML with automatic change notifications and validation. Could be reused in any Qt/QML application needing structured data binding.

file: src/FactSystem/ ↗ | tags: #parameter-model #type-safe #qml-binding

A clean static utility namespace wrapping SDL3 for cross-platform queries: OS detection, Android-specific capabilities (tablet, TV, DeX, Chromebook), power status, CPU/RAM info, runtime permission requests, and clipboard access. No internal state, simple string/bool/int return types, and safe defaults for non-Android platforms. Demonstrates a reusable pattern for encapsulating platform-specific APIs behind a uniform static interface.

file: src/Utilities/SDL/SDLPlatform.cc ↗ | tags: #platform-abstraction #utility-namespace
Last analyzed: 2026-09-03 08:47:38.690443
Next check: 2026-09-10 08:47:38.662966
$ submit: