QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
APMTuningComponentSub.qml
Go to the documentation of this file.
1import QtQuick
2import QtQuick.Controls
3import QtQuick.Layouts
4
5import QGroundControl
6import QGroundControl.FactControls
7import QGroundControl.Controls
8
9SetupPage {
10 id: tuningPage
11 pageComponent: tuningPageComponent
12
13 Component {
14 id: tuningPageComponent
15
16 ColumnLayout {
17 width: availableWidth
18 spacing: _margins
19
20 FactPanelController { id: controller; }
21
22 QGCPalette { id: qgcPal; colorGroupEnabled: true }
23
24 property real _margins: ScreenTools.defaultFontPixelHeight
25
26 Row {
27 spacing: _margins
28 QGCButton {
29 id: atcButton
30 text: qsTr("Attitude Controller Parameters")
31 autoExclusive: true
32 checked: true
33 onClicked: checked = true
34 }
35
36 QGCButton {
37 id: posButton
38 text: qsTr("Position Controller Parameters")
39 autoExclusive: true
40 onClicked: checked = true
41 }
42
43 QGCButton {
44 id: navButton
45 text: qsTr("Waypoint navigation parameters")
46 autoExclusive: true
47 onClicked: checked = true
48 }
49 }
50
51 QGCGroupBox {
52 id: atcParams
53 Layout.preferredWidth: tuningPage.availableWidth * 0.75
54 visible: atcButton.checked
55 title: qsTr("Attitude Controller Parameters")
56
57 Column {
58 id: posColumn
59 spacing: _margins*1.5
60
61 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_ANG_PIT_P") }
62 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_ANG_RLL_P") }
63 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_ANG_YAW_P") }
64 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_PIT_P") }
65 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_PIT_I") }
66 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_PIT_IMAX") }
67 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_PIT_D") }
68 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_RLL_P") }
69 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_RLL_I") }
70 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_RLL_IMAX") }
71 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_RLL_D") }
72 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_YAW_P") }
73 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_YAW_I") }
74 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_YAW_IMAX") }
75 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "ATC_RAT_YAW_D") }
76
77 } // Column - Attitude Controller Parameters
78 } // QGCGroupBox - Attitude Controller Parameters
79
80 QGCGroupBox {
81 id: posParams
82 Layout.preferredWidth: tuningPage.availableWidth * 0.75
83 visible: posButton.checked
84 title: qsTr("Position Controller Parameters")
85
86 Component {
87 id: velColumnUpTo36
88 Column {
89 anchors.margins: _margins
90 anchors.left: parent.left
91 anchors.right: parent.right
92 anchors.top: parent.top
93 spacing: _margins*1.5
94
95 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_POSXY_P") }
96 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_POSZ_P") }
97 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_VELXY_P") }
98 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_VELXY_I") }
99 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_VELXY_IMAX") }
100 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_VELZ_P") }
101 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_ACCZ_D") }
102 FactTextFieldSlider2 {
103 visible: controller.parameterExists(-1, "PSC_ACCZ_FILT")
104 fact: visible ? controller.getParameterFact(-1, "PSC_ACCZ_FILT") : null
105 }
106 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_ACCZ_I") }
107 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_ACCZ_IMAX") }
108 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_ACCZ_P") }
109
110 } // Column - VEL parameters
111 }
112 Component {
113 id: velColumn40
114 Column {
115 anchors.margins: _margins
116 anchors.left: parent.left
117 anchors.right: parent.right
118 anchors.top: parent.top
119 spacing: _margins*1.5
120
121 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_NE_POS_P") }
122 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_D_POS_P") }
123 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_NE_VEL_P") }
124 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_NE_VEL_I") }
125 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_NE_VEL_IMAX") }
126 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_D_VEL_P") }
127 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_D_ACC_D") }
128 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_D_ACC_FLTD") }
129 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_D_ACC_FLTE") }
130 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_D_ACC_FLTT") }
131 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_D_ACC_I") }
132 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_D_ACC_IMAX") }
133 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "PSC_D_ACC_P") }
134
135 } // Column - VEL parameters
136 }
137 Loader {
138 id: velColumn
139 anchors.left: parent.left
140 anchors.right: parent.right
141 anchors.top: parent.top
142
143 sourceComponent: globals.activeVehicle.versionCompare(3, 6, 0) <= 0 ? velColumnUpTo36 :velColumn40
144 }
145 } // QGCGroupBox - Position Controller Parameters
146
147 QGCGroupBox {
148 id: navParams
149 Layout.preferredWidth: tuningPage.availableWidth * 0.75
150 visible: navButton.checked
151 title: qsTr("Waypoint Navigation Parameters")
152
153 // WPNAV parameters up to 3.5
154 Component {
155 id: wpnavColumn35
156 Column {
157 anchors.margins: _margins
158 anchors.left: parent.left
159 anchors.right: parent.right
160 anchors.top: parent.top
161 spacing: _margins*1.5
162
163
164 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_ACCEL") }
165 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_ACCEL_Z") }
166 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_LOIT_JERK") }
167 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_LOIT_MAXA") }
168 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_LOIT_MINA") }
169 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_LOIT_SPEED") }
170 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_RADIUS") }
171 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_SPEED") }
172 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_SPEED_DN") }
173 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WPNAV_SPEED_UP") }
174 }
175 }
176
177 // WPNAV parameters for 3.6 and upwards
178 Component {
179 id: wpnavColumn36
180 Column {
181 anchors.margins: _margins
182 anchors.left: parent.left
183 anchors.right: parent.right
184 anchors.top: parent.top
185 spacing: _margins*1.5
186
187 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WP_ACC") }
188 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WP_ACC_Z") }
189 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WP_RADIUS_M") }
190 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WP_SPD") }
191 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WP_SPD_DN") }
192 FactTextFieldSlider2 { fact: controller.getParameterFact(-1, "WP_SPD_UP") }
193 FactTextFieldSlider2 {
194 visible: controller.parameterExists(-1, "LOIT_SPEED")
195 fact: visible ? controller.getParameterFact(-1, "LOIT_SPEED") : null
196 }
197 FactTextFieldSlider2 {
198 visible: controller.parameterExists(-1, "LOIT_ACC_MAX")
199 fact: visible ? controller.getParameterFact(-1, "LOIT_ACC_MAX") : null
200 }
201 FactTextFieldSlider2 {
202 visible: controller.parameterExists(-1, "LOIT_ANG_MAX")
203 fact: visible ? controller.getParameterFact(-1, "LOIT_ANG_MAX") : null
204 }
205 FactTextFieldSlider2 {
206 visible: controller.parameterExists(-1, "LOIT_BRK_ACCEL")
207 fact: visible ? controller.getParameterFact(-1, "LOIT_BRK_ACCEL") : null
208 }
209 FactTextFieldSlider2 {
210 visible: controller.parameterExists(-1, "LOIT_BRK_DELAY")
211 fact: visible ? controller.getParameterFact(-1, "LOIT_BRK_DELAY") : null
212 }
213 FactTextFieldSlider2 {
214 visible: controller.parameterExists(-1, "LOIT_BRK_JERK")
215 fact: visible ? controller.getParameterFact(-1, "LOIT_BRK_JERK") : null
216 }
217 }
218 }
219
220 Loader {
221 id: wpnavColumn
222 anchors.left: parent.left
223 anchors.right: parent.right
224 anchors.top: parent.top
225
226 sourceComponent: globals.activeVehicle.versionCompare(3, 6, 0) < 0 ? wpnavColumn35 : wpnavColumn36
227 }
228 } // QGCGroupBox - WPNAV parameters
229 } // ColumnLayout
230 } // Component
231} // SetupPage