PX4TuningComponentCopter.qml 4.07 KB
Newer Older
1 2 3 4 5 6 7 8
/****************************************************************************
 *
 *   (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/
Don Gagne's avatar
Don Gagne committed
9

DonLakeFlyer's avatar
DonLakeFlyer committed
10 11 12 13
import QtQuick          2.3
import QtQuick.Controls 1.2
import QtCharts         2.2
import QtQuick.Layouts  1.2
Don Gagne's avatar
Don Gagne committed
14

DonLakeFlyer's avatar
DonLakeFlyer committed
15 16 17 18 19
import QGroundControl               1.0
import QGroundControl.Controls      1.0
import QGroundControl.FactSystem    1.0
import QGroundControl.FactControls  1.0
import QGroundControl.ScreenTools   1.0
Don Gagne's avatar
Don Gagne committed
20

21 22 23
SetupPage {
    id:             tuningPage
    pageComponent:  pageComponent
Don Gagne's avatar
Don Gagne committed
24

25 26
    Component {
        id: pageComponent
27

DonLakeFlyer's avatar
DonLakeFlyer committed
28 29 30 31
        Column {
            width: availableWidth

            Component.onCompleted: {
32 33
                // Advanced tuning is hacked out due to Qt crash with Qml Charts and a QGuiApplication
                //showAdvanced = !ScreenTools.isMobile
DonLakeFlyer's avatar
DonLakeFlyer committed
34 35
            }

36 37 38 39
            FactPanelController {
                id:         controller
            }

DonLakeFlyer's avatar
DonLakeFlyer committed
40 41 42 43 44 45 46 47 48 49 50 51 52 53
            // Standard tuning page
            FactSliderPanel {
                width:          availableWidth
                visible:        !advanced

                sliderModel: ListModel {
                    ListElement {
                        title:          qsTr("Hover Throttle")
                        description:    qsTr("Adjust throttle so hover is at mid-throttle. Slide to the left if hover is lower than throttle center. Slide to the right if hover is higher than throttle center.")
                        param:          "MPC_THR_HOVER"
                        min:            20
                        max:            80
                        step:           1
                    }
54

DonLakeFlyer's avatar
DonLakeFlyer committed
55 56 57 58 59 60 61 62
                    ListElement {
                        title:          qsTr("Manual minimum throttle")
                        description:    qsTr("Slide to the left to start the motors with less idle power. Slide to the right if descending in manual flight becomes unstable.")
                        param:          "MPC_MANTHR_MIN"
                        min:            0
                        max:            15
                        step:           1
                    }
63 64
                }
            }
DonLakeFlyer's avatar
DonLakeFlyer committed
65

66
            Loader {
DonLakeFlyer's avatar
DonLakeFlyer committed
67 68
                anchors.left:       parent.left
                anchors.right:      parent.right
69 70 71 72 73 74
                sourceComponent:    advanced ? advancePageComponent : undefined
            }

            Component {
                id: advancePageComponent

75 76 77 78 79
                PIDTuning {
                    anchors.left:   parent.left
                    anchors.right:  parent.right
                    tuneList:            [ qsTr("Roll"), qsTr("Pitch"), qsTr("Yaw") ]
                    params:              [
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
                        [ controller.getParameterFact(-1, "MC_ROLL_P"),
                         controller.getParameterFact(-1, "MC_ROLLRATE_P"),
                         controller.getParameterFact(-1, "MC_ROLLRATE_I"),
                         controller.getParameterFact(-1, "MC_ROLLRATE_D"),
                         controller.getParameterFact(-1, "MC_ROLLRATE_FF") ],
                        [ controller.getParameterFact(-1, "MC_PITCH_P"),
                         controller.getParameterFact(-1, "MC_PITCHRATE_P"),
                         controller.getParameterFact(-1, "MC_PITCHRATE_I"),
                         controller.getParameterFact(-1, "MC_PITCHRATE_D"),
                         controller.getParameterFact(-1, "MC_PITCHRATE_FF") ],
                        [ controller.getParameterFact(-1, "MC_YAW_P"),
                         controller.getParameterFact(-1, "MC_YAWRATE_P"),
                         controller.getParameterFact(-1, "MC_YAWRATE_I"),
                         controller.getParameterFact(-1, "MC_YAWRATE_D"),
                         controller.getParameterFact(-1, "MC_YAWRATE_FF") ] ]
95
                }
96
            } // Component - Advanced Page
DonLakeFlyer's avatar
DonLakeFlyer committed
97 98
        } // Column
    } // Component - pageComponent
99
} // SetupPage