7import QGroundControl.Controls
8import QGroundControl.VehicleSetup
9import QGroundControl.FactControls
14 required property var joystick
16 readonly property var _joystickSettings: joystick.settings
17 readonly property real _margins: ScreenTools.defaultFontPixelHeight / 2
18 readonly property bool _anyAdvancedSettingsEnabled:
19 _joystickSettings.circleCorrection.rawValue ||
20 _joystickSettings.useDeadband.rawValue ||
21 _joystickSettings.enableManualControlPitchExtension.rawValue ||
22 _joystickSettings.enableManualControlRollExtension.rawValue ||
23 _joystickSettings.enableAdditionalAxis1.rawValue ||
24 _joystickSettings.enableAdditionalAxis2.rawValue ||
25 _joystickSettings.enableAdditionalAxis3.rawValue ||
26 _joystickSettings.enableAdditionalAxis4.rawValue ||
27 _joystickSettings.enableAdditionalAxis5.rawValue ||
28 _joystickSettings.enableAdditionalAxis6.rawValue
31 Layout.fillWidth: true
32 Layout.leftMargin: _margins
33 Layout.rightMargin: _margins
37 Layout.fillWidth: true
38 text: qsTr("Center stick is zero throttle")
39 fact: _joystickSettings.throttleModeCenterZero
40 visible: fact.userVisible
44 Layout.fillWidth: true
45 text: qsTr("Spring loaded throttle smoothing")
46 fact: _joystickSettings.throttleSmoothing
47 visible: fact.userVisible && _joystickSettings.throttleModeCenterZero.rawValue
51 Layout.fillWidth: true
52 label: fact.shortDescription
53 fact: _joystickSettings.exponentialPct
57 Layout.fillWidth: true
58 text: qsTr("Negative Thrust")
59 fact: _joystickSettings.negativeThrust
60 visible: globals.activeVehicle.supports.negativeThrust && fact.userVisible
64 id: advancedSettingsCheckbox
65 Layout.fillWidth: true
66 text: qsTr("Advanced Settings")
67 Component.onCompleted: checked = _anyAdvancedSettingsEnabled
72 Layout.fillWidth: true
73 heading: qsTr("Advanced Settings")
74 visible: advancedSettingsCheckbox.checked
77 Layout.fillWidth: true
78 text: qsTr("Circle Correction")
79 fact: _joystickSettings.circleCorrection
80 visible: fact.userVisible
84 Layout.fillWidth: true
85 label: fact.shortDescription
86 fact: _joystickSettings.axisFrequencyHz
87 visible: fact.userVisible
91 Layout.fillWidth: true
92 label: fact.shortDescription
93 fact: _joystickSettings.buttonFrequencyHz
94 visible: fact.userVisible
98 Layout.fillWidth: true
102 text: qsTr("Deadband")
103 fact: _joystickSettings.useDeadband
104 visible: fact.userVisible
108 Layout.fillWidth: true
109 Layout.maximumWidth: additionalAxesRcChannelsOverride.x + additionalAxesRcChannelsOverride.width
110 font.pointSize: ScreenTools.smallFontPointSize
111 wrapMode: Text.WordWrap
112 text: qsTr("Deadband can be set during the first step of calibration by gently wiggling each axis. ")
117 Layout.fillWidth: true
118 spacing: ScreenTools.defaultFontPixelWidth / 2
120 QGCLabel { text: qsTr("MANUAL_CONTROL Extensions") }
123 Layout.leftMargin: ScreenTools.defaultFontPixelWidth
124 Layout.fillWidth: true
125 spacing: ScreenTools.defaultFontPixelWidth / 2
128 Layout.fillWidth: true
130 fact: _joystickSettings.enableManualControlPitchExtension
131 visible: fact.userVisible
135 Layout.fillWidth: true
137 fact: _joystickSettings.enableManualControlRollExtension
138 visible: fact.userVisible
144 Layout.fillWidth: true
145 spacing: ScreenTools.defaultFontPixelWidth / 2
147 QGCLabel { text: qsTr("Additional Axes") }
150 Layout.leftMargin: ScreenTools.defaultFontPixelWidth
151 Layout.fillWidth: true
152 spacing: ScreenTools.defaultFontPixelWidth / 2
158 id: additionalAxesManualControl
159 text: qsTr("Send using MANUAL_CONTROL")
160 checked: _joystickSettings.additionalAxesFunction.rawValue == 0
161 onClicked: _joystickSettings.additionalAxesFunction.rawValue = 0
165 id: additionalAxesRcChannelsOverride
166 text: qsTr("Send using RC_CHANNELS_OVERRIDE")
167 checked: _joystickSettings.additionalAxesFunction.rawValue == 1
168 onClicked: _joystickSettings.additionalAxesFunction.rawValue = 1
173 Layout.fillWidth: true
174 text: additionalAxesManualControl.checked ? qsTr("Aux1") : qsTr("Channel 5")
175 fact: _joystickSettings.enableAdditionalAxis1
176 visible: fact.userVisible
180 Layout.fillWidth: true
181 text: additionalAxesManualControl.checked ? qsTr("Aux2") : qsTr("Channel 6")
182 fact: _joystickSettings.enableAdditionalAxis2
183 visible: fact.userVisible
187 Layout.fillWidth: true
188 text: additionalAxesManualControl.checked ? qsTr("Aux3") : qsTr("Channel 7")
189 fact: _joystickSettings.enableAdditionalAxis3
190 visible: fact.userVisible
194 Layout.fillWidth: true
195 text: additionalAxesManualControl.checked ? qsTr("Aux4") : qsTr("Channel 8")
196 fact: _joystickSettings.enableAdditionalAxis4
197 visible: fact.userVisible
201 Layout.fillWidth: true
202 text: additionalAxesManualControl.checked ? qsTr("Aux5") : qsTr("Channel 9")
203 fact: _joystickSettings.enableAdditionalAxis5
204 visible: fact.userVisible
208 Layout.fillWidth: true
209 text: additionalAxesManualControl.checked ? qsTr("Aux6") : qsTr("Channel 10")
210 fact: _joystickSettings.enableAdditionalAxis6
211 visible: fact.userVisible