QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
MockLinkSettings.qml
Go to the documentation of this file.
1import QtQuick
2import QtQuick.Controls
3import QtQuick.Layouts
4
5import QGroundControl
6import QGroundControl.Controls
7
8ColumnLayout {
9 spacing: _rowSpacing
10
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
16
17 function saveSettings() {
18 switch (firmwareTypeCombo.currentIndex) {
19 case 0:
20 subEditConfig.firmware = _MAV_AUTOPILOT_PX4
21 break
22 case 1:
23 subEditConfig.firmware = _MAV_AUTOPILOT_ARDUPILOTMEGA
24 if (vehicleTypeCombo.currentIndex === 1) { // Hardcoded _MAV_TYPE_FIXED_WING
25 subEditConfig.vehicle = _MAV_TYPE_FIXED_WING
26 } else {
27 subEditConfig.vehicle = _MAV_TYPE_QUADROTOR
28 }
29 break
30 default:
31 subEditConfig.firmware = _MAV_AUTOPILOT_GENERIC
32 break
33 }
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
54 }
55
56 Component.onCompleted: {
57 switch (subEditConfig.firmware) {
58 case _MAV_AUTOPILOT_PX4:
59 firmwareTypeCombo.currentIndex = 0
60 break
61 case _MAV_AUTOPILOT_ARDUPILOTMEGA:
62 firmwareTypeCombo.currentIndex = 1
63 break
64 default:
65 firmwareTypeCombo.currentIndex = 2
66 break
67 }
68 if (subEditConfig.vehicle === _MAV_TYPE_FIXED_WING) { // Hardcoded _MAV_TYPE_FIXED_WING
69 vehicleTypeCombo.currentIndex = 1
70 } else {
71 vehicleTypeCombo.currentIndex = 0
72 }
73 }
74
75 QGCCheckBoxSlider {
76 id: sendStatus
77 Layout.fillWidth: true
78 text: qsTr("Send Status Text and Voice")
79 checked: subEditConfig.sendStatus
80 }
81
82 QGCCheckBoxSlider {
83 id: enableCamera
84 Layout.fillWidth: true
85 text: qsTr("Enable Camera")
86 checked: subEditConfig.enableCamera
87 }
88
89 QGCCheckBoxSlider {
90 id: enableGimbal
91 Layout.fillWidth: true
92 text: qsTr("Enable Gimbal")
93 checked: subEditConfig.enableGimbal
94 }
95
96 QGCCheckBoxSlider {
97 id: incrementVehicleId
98 Layout.fillWidth: true
99 text: qsTr("Increment Vehicle Id")
100 checked: subEditConfig.incrementVehicleId
101 }
102
103 LabelledComboBox {
104 id: firmwareTypeCombo
105 Layout.fillWidth: true
106 label: qsTr("Firmware Type")
107 model: [ qsTr("PX4 Pro"), qsTr("ArduPilot"), qsTr("Generic MAVLink") ]
108
109 property bool apmFirmwareSelected: currentIndex === 1
110 }
111
112 LabelledComboBox {
113 id: vehicleTypeCombo
114 Layout.fillWidth: true
115 label: qsTr("Vehicle Type")
116 model: [ qsTr("ArduCopter"), qsTr("ArduPlane") ]
117 visible: firmwareTypeCombo.apmFirmwareSelected
118 }
119
120 SettingsGroupLayout {
121 Layout.fillWidth: true
122 heading: qsTr("Camera Capabilities")
123 visible: enableCamera.checked
124
125 QGCCheckBoxSlider {
126 id: cameraHasVideoStream
127 Layout.fillWidth: true
128 text: "CAMERA_CAP_FLAGS_HAS_VIDEO_STREAM"
129 checked: subEditConfig.cameraHasVideoStream
130 visible: enableCamera.checked
131 }
132
133 QGCCheckBoxSlider {
134 id: cameraCaptureVideo
135 Layout.fillWidth: true
136 text: "CAMERA_CAP_FLAGS_CAPTURE_VIDEO"
137 checked: subEditConfig.cameraCaptureVideo
138 visible: enableCamera.checked
139 }
140
141 QGCCheckBoxSlider {
142 id: cameraCaptureImage
143 Layout.fillWidth: true
144 text: "CAMERA_CAP_FLAGS_CAPTURE_IMAGE"
145 checked: subEditConfig.cameraCaptureImage
146 visible: enableCamera.checked
147 }
148
149 QGCCheckBoxSlider {
150 id: cameraHasModes
151 Layout.fillWidth: true
152 text: "CAMERA_CAP_FLAGS_HAS_MODES"
153 checked: subEditConfig.cameraHasModes
154 visible: enableCamera.checked
155 }
156
157 QGCCheckBoxSlider {
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
163 }
164
165 QGCCheckBoxSlider {
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
171 }
172
173 QGCCheckBoxSlider {
174 id: cameraHasBasicZoom
175 Layout.fillWidth: true
176 text: "CAMERA_CAP_FLAGS_HAS_BASIC_ZOOM"
177 checked: subEditConfig.cameraHasBasicZoom
178 visible: enableCamera.checked
179 }
180
181 QGCCheckBoxSlider {
182 id: cameraHasTrackingPoint
183 Layout.fillWidth: true
184 text: "CAMERA_CAP_FLAGS_HAS_TRACKING_POINT"
185 checked: subEditConfig.cameraHasTrackingPoint
186 visible: enableCamera.checked
187 }
188
189 QGCCheckBoxSlider {
190 id: cameraHasTrackingRectangle
191 Layout.fillWidth: true
192 text: "CAMERA_CAP_FLAGS_HAS_TRACKING_RECTANGLE"
193 checked: subEditConfig.cameraHasTrackingRectangle
194 visible: enableCamera.checked
195 }
196 }
197
198 SettingsGroupLayout {
199 Layout.fillWidth: true
200 heading: qsTr("Gimbal Capabilities")
201 visible: enableGimbal.checked
202
203 QGCCheckBoxSlider {
204 id: gimbalHasRollAxis
205 Layout.fillWidth: true
206 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_ROLL_AXIS"
207 checked: subEditConfig.gimbalHasRollAxis
208 visible: enableGimbal.checked
209 }
210
211 QGCCheckBoxSlider {
212 id: gimbalHasPitchAxis
213 Layout.fillWidth: true
214 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_PITCH_AXIS"
215 checked: subEditConfig.gimbalHasPitchAxis
216 visible: enableGimbal.checked
217 }
218
219 QGCCheckBoxSlider {
220 id: gimbalHasYawAxis
221 Layout.fillWidth: true
222 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_AXIS"
223 checked: subEditConfig.gimbalHasYawAxis
224 visible: enableGimbal.checked
225 }
226
227 QGCCheckBoxSlider {
228 id: gimbalHasYawFollow
229 Layout.fillWidth: true
230 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_FOLLOW"
231 checked: subEditConfig.gimbalHasYawFollow
232 visible: enableGimbal.checked
233 }
234
235 QGCCheckBoxSlider {
236 id: gimbalHasYawLock
237 Layout.fillWidth: true
238 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_YAW_LOCK"
239 checked: subEditConfig.gimbalHasYawLock
240 visible: enableGimbal.checked
241 }
242
243 QGCCheckBoxSlider {
244 id: gimbalHasRetract
245 Layout.fillWidth: true
246 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_RETRACT"
247 checked: subEditConfig.gimbalHasRetract
248 visible: enableGimbal.checked
249 }
250
251 QGCCheckBoxSlider {
252 id: gimbalHasNeutral
253 Layout.fillWidth: true
254 text: "GIMBAL_MANAGER_CAP_FLAGS_HAS_NEUTRAL"
255 checked: subEditConfig.gimbalHasNeutral
256 visible: enableGimbal.checked
257 }
258 }
259}