Skip to content

Convert APM Copter tuning page to VehicleConfig JSON generator#14244

Merged
DonLakeFlyer merged 1 commit intomasterfrom
apm-copter-tuning-vehicleconfig
Mar 30, 2026
Merged

Convert APM Copter tuning page to VehicleConfig JSON generator#14244
DonLakeFlyer merged 1 commit intomasterfrom
apm-copter-tuning-vehicleconfig

Conversation

@DonLakeFlyer
Copy link
Copy Markdown
Collaborator

Summary

Convert the APM Copter tuning page from hand-written QML (APMTuningComponentCopter.qml) to a JSON-defined VehicleConfig page using the QML generator system. Also extracts Advanced PID Tuning into a standalone top-level component.

Generator Enhancements

  • factslider control type — Renders FactSlider inside SettingsGroupLayout with heading/description and support for linked (coupled) parameters
  • component control type — Inline escape hatch for embedding custom QML components within generated sections

Copter Tuning Page (3 sections)

Section Controls
Flight Response 5 fact sliders with coupled gain parameters
AutoTune Bitmask param + channel selector component + optional params
In Flight Tuning Combobox + min/max text fields

Additional Changes

  • Advanced PID Tuning extracted to standalone APMAdvancedTuningCopterComponent (regular QML SetupPage, not generator-based), shown only for multi-rotor vehicles as "Tuning - Advanced"
  • Bug fix: MOT_SPIN_MIN slider was incorrectly bound to MOT_SPIN_ARM in the original page
  • PIDTuning.qml: Added useAutoTuning property default to prevent runtime ReferenceError
  • Documentation: Added "Generated from" comments to existing setupSource() methods that return generated VehicleConfig pages

This comment was marked as resolved.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

Build Results

Platform Status

Platform Status Details
Linux Passed View
Windows Passed View
MacOS Passed View
Android Passed View

All builds passed.

Pre-commit

Check Status Details
pre-commit Failed (non-blocking) View

Pre-commit hooks: 4 passed, 32 failed, 7 skipped.

Test Results

linux-sanitizers: 67 passed, 0 skipped
linux_gcc_64: 67 passed, 0 skipped
Total: 134 passed, 0 skipped

Artifact Sizes

Artifact Size
QGroundControl 248.03 MB
QGroundControl 338.19 MB
QGroundControl-aarch64 177.29 MB
QGroundControl-installer-AMD64 134.95 MB
QGroundControl-installer-AMD64-ARM64 77.62 MB
QGroundControl-installer-ARM64 106.31 MB
QGroundControl-mac 188.67 MB
QGroundControl-windows 188.70 MB
QGroundControl-x86_64 172.43 MB
No baseline available for comparison---
Updated: 2026-03-30 16:09:14 UTC • Triggered by: Linux

Replace the hand-written APMTuningComponentCopter.qml with a JSON-defined
VehicleConfig page (APMTuningCopter.VehicleConfig.json) using the QML
generator system.

Generator enhancements:
- Add factslider control type to controls.py and page_generator.py,
  rendered as FactSlider inside SettingsGroupLayout with linked params
- Add component control type for inline escape-hatch QML components

APM Copter tuning page (3 sections):
- Flight Response: 5 fact sliders with coupled gain parameters
- AutoTune: bitmask param + channel selector component + optional params
- In Flight Tuning: combobox + min/max text fields

Also fixes MOT_SPIN_MIN bug from original (was incorrectly bound to
MOT_SPIN_ARM).

Extract Advanced PID Tuning to standalone APMAdvancedTuningCopterComponent
as a regular QML SetupPage (not generator-based), shown only for
multi-rotor vehicles.

Add useAutoTuning property default to PIDTuning.qml to prevent
runtime ReferenceError.

Add Generated from comments to existing setupSource() methods that
return generated VehicleConfig pages.
@DonLakeFlyer DonLakeFlyer force-pushed the apm-copter-tuning-vehicleconfig branch from 38cf542 to f62c4ea Compare March 30, 2026 15:07
@DonLakeFlyer DonLakeFlyer merged commit 24028f4 into master Mar 30, 2026
34 of 35 checks passed
@DonLakeFlyer DonLakeFlyer deleted the apm-copter-tuning-vehicleconfig branch March 30, 2026 16:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants