6import QGroundControl.Controls
11 readonly property int _MAV_AUTOPILOT_GENERIC: 0
12 readonly property int _MAV_AUTOPILOT_PX4: 12
13 readonly property int _MAV_AUTOPILOT_ARDUPILOTMEGA: 3
14 readonly property int _MAV_TYPE_FIXED_WING: 1
15 readonly property int _MAV_TYPE_QUADROTOR: 2
17 function saveSettings() {
18 switch (firmwareTypeCombo.currentIndex) {
20 subEditConfig.firmware = _MAV_AUTOPILOT_PX4
23 subEditConfig.firmware = _MAV_AUTOPILOT_ARDUPILOTMEGA
24 if (vehicleTypeCombo.currentIndex === 1) { // Hardcoded _MAV_TYPE_FIXED_WING
25 subEditConfig.vehicle = _MAV_TYPE_FIXED_WING
27 subEditConfig.vehicle = _MAV_TYPE_QUADROTOR
31 subEditConfig.firmware = _MAV_AUTOPILOT_GENERIC
34 subEditConfig.sendStatus = sendStatus.checked
35 subEditConfig.enableCamera = enableCamera.checked
36 subEditConfig.enableGimbal = enableGimbal.checked
37 subEditConfig.incrementVehicleId = incrementVehicleId.checked
38 subEditConfig.cameraCaptureVideo = cameraCaptureVideo.checked
39 subEditConfig.cameraCaptureImage = cameraCaptureImage.checked
40 subEditConfig.cameraHasModes = cameraHasModes.checked
41 subEditConfig.cameraHasVideoStream = cameraHasVideoStream.checked
42 subEditConfig.cameraCanCaptureImageInVideoMode = cameraCanCaptureImageInVideoMode.checked
43 subEditConfig.cameraCanCaptureVideoInImageMode = cameraCanCaptureVideoInImageMode.checked
44 subEditConfig.cameraHasBasicZoom = cameraHasBasicZoom.checked
45 subEditConfig.cameraHasTrackingPoint = cameraHasTrackingPoint.checked
46 subEditConfig.cameraHasTrackingRectangle = cameraHasTrackingRectangle.checked
47 subEditConfig.gimbalHasRollAxis = gimbalHasRollAxis.checked
48 subEditConfig.gimbalHasPitchAxis = gimbalHasPitchAxis.checked
49 subEditConfig.gimbalHasYawAxis = gimbalHasYawAxis.checked
50 subEditConfig.gimbalHasYawFollow = gimbalHasYawFollow.checked
51 subEditConfig.gimbalHasYawLock = gimbalHasYawLock.checked
52 subEditConfig.gimbalHasRetract = gimbalHasRetract.checked
53 subEditConfig.gimbalHasNeutral = gimbalHasNeutral.checked
56 Component.onCompleted: {
57 switch (subEditConfig.firmware) {
58 case _MAV_AUTOPILOT_PX4:
59 firmwareTypeCombo.currentIndex = 0
61 case _MAV_AUTOPILOT_ARDUPILOTMEGA:
62 firmwareTypeCombo.currentIndex = 1
65 firmwareTypeCombo.currentIndex = 2
68 if (subEditConfig.vehicle === _MAV_TYPE_FIXED_WING) { // Hardcoded _MAV_TYPE_FIXED_WING
69 vehicleTypeCombo.currentIndex = 1
71 vehicleTypeCombo.currentIndex = 0
77 Layout.fillWidth: true
78 text: qsTr("Send Status Text and Voice")
79 checked: subEditConfig.sendStatus
84 Layout.fillWidth: true
85 text: qsTr("Enable Camera")
86 checked: subEditConfig.enableCamera
91 Layout.fillWidth: true
92 text: qsTr("Enable Gimbal")
93 checked: subEditConfig.enableGimbal
97 id: incrementVehicleId
98 Layout.fillWidth: true
99 text: qsTr("Increment Vehicle Id")
100 checked: subEditConfig.incrementVehicleId
104 id: firmwareTypeCombo
105 Layout.fillWidth: true
106 label: qsTr("Firmware Type")
107 model: [ qsTr("PX4 Pro"), qsTr("ArduPilot"), qsTr("Generic MAVLink") ]
109 property bool apmFirmwareSelected: currentIndex === 1
114 Layout.fillWidth: true
115 label: qsTr("Vehicle Type")
116 model: [ qsTr("ArduCopter"), qsTr("ArduPlane") ]
117 visible: firmwareTypeCombo.apmFirmwareSelected
120 SettingsGroupLayout {
121 Layout.fillWidth: true
122 heading: qsTr("Camera Capabilities")
123 visible: enableCamera.checked
126 id: cameraHasVideoStream
127 Layout.fillWidth: true
128 text: "CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM"
129 checked: subEditConfig.cameraHasVideoStream
130 visible: enableCamera.checked
134 id: cameraCaptureVideo
135 Layout.fillWidth: true
136 text: "CAMERA_CAP_FLAGS_CAPTURE_VIDEO"
137 checked: subEditConfig.cameraCaptureVideo
138 visible: enableCamera.checked
142 id: cameraCaptureImage
143 Layout.fillWidth: true
144 text: "CAMERA_CAP_FLAGS_CAPTURE_IMAGE"
145 checked: subEditConfig.cameraCaptureImage
146 visible: enableCamera.checked
151 Layout.fillWidth: true
152 text: "CAMERA_CAP_FLAGS_HAS_MODES"
153 checked: subEditConfig.cameraHasModes
154 visible: enableCamera.checked
158 id: cameraCanCaptureImageInVideoMode
159 Layout.fillWidth: true
160 text: "CAMERA_CAP_FLAGS_CAN_CAPTURE_IMAGE_IN_VIDEO_MODE"
161 checked: subEditConfig.cameraCanCaptureImageInVideoMode
162 visible: enableCamera.checked
166 id: cameraCanCaptureVideoInImageMode
167 Layout.fillWidth: true
168 text: "CAMERA_CAP_FLAGS_CAN_CAPTURE_VIDEO_IN_IMAGE_MODE"
169 checked: subEditConfig.cameraCanCaptureVideoInImageMode
170 visible: enableCamera.checked
174 id: cameraHasBasicZoom
175 Layout.fillWidth: true
176 text: "CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM"
177 checked: subEditConfig.cameraHasBasicZoom
178 visible: enableCamera.checked
182 id: cameraHasTrackingPoint
183 Layout.fillWidth: true
184 text: "CAMERA_CAP_FLAGS_HAS_TRACKING_POINT"
185 checked: subEditConfig.cameraHasTrackingPoint
186 visible: enableCamera.checked
190 id: cameraHasTrackingRectangle
191 Layout.fillWidth: true
192 text: "CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE"
193 checked: subEditConfig.cameraHasTrackingRectangle
194 visible: enableCamera.checked
198 SettingsGroupLayout {
199 Layout.fillWidth: true
200 heading: qsTr("Gimbal Capabilities")
201 visible: enableGimbal.checked
204 id: gimbalHasRollAxis
205 Layout.fillWidth: true
206 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS"
207 checked: subEditConfig.gimbalHasRollAxis
208 visible: enableGimbal.checked
212 id: gimbalHasPitchAxis
213 Layout.fillWidth: true
214 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS"
215 checked: subEditConfig.gimbalHasPitchAxis
216 visible: enableGimbal.checked
221 Layout.fillWidth: true
222 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS"
223 checked: subEditConfig.gimbalHasYawAxis
224 visible: enableGimbal.checked
228 id: gimbalHasYawFollow
229 Layout.fillWidth: true
230 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW"
231 checked: subEditConfig.gimbalHasYawFollow
232 visible: enableGimbal.checked
237 Layout.fillWidth: true
238 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK"
239 checked: subEditConfig.gimbalHasYawLock
240 visible: enableGimbal.checked
245 Layout.fillWidth: true
246 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT"
247 checked: subEditConfig.gimbalHasRetract
248 visible: enableGimbal.checked
253 Layout.fillWidth: true
254 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL"
255 checked: subEditConfig.gimbalHasNeutral
256 visible: enableGimbal.checked