6import QGroundControl.Controls
12 readonly property real _margins: ScreenTools.defaultFontPixelHeight
14 QGCPalette { id: qgcPal; colorGroupEnabled: true }
18 contentWidth: column.width + (_margins * 2)
19 contentHeight: column.height + (_margins * 2)
24 anchors.margins: _margins
25 anchors.left: parent.left
26 anchors.top: parent.top
27 spacing: ScreenTools.defaultFontPixelHeight / 4
31 text: qsTr("Send status text + voice")
35 text: qsTr("Enable camera")
39 text: qsTr("Enable gimbal")
43 text: qsTr("Enable proximity sensors")
46 id: apmStartFreshParams
47 text: qsTr("Start with fresh firmware parameters (setup required)")
48 visible: vehicleTypeCombo.apmSelected
58 label: qsTr("Vehicle Type")
59 Layout.fillWidth: true
62 readonly property var _vehicleEntries: {
64 if (QGroundControl.px4ProFirmwareSupported) {
65 entries.push({ key: "px4", name: qsTr("PX4 Vehicle") })
67 if (QGroundControl.apmFirmwareSupported) {
68 entries.push({ key: "apmCopter", name: qsTr("APM ArduCopter Vehicle") })
69 entries.push({ key: "apmPlane", name: qsTr("APM ArduPlane Vehicle") })
70 entries.push({ key: "apmSub", name: qsTr("APM ArduSub Vehicle") })
71 entries.push({ key: "apmRover", name: qsTr("APM ArduRover Vehicle") })
73 entries.push({ key: "generic", name: qsTr("Generic Vehicle") })
76 readonly property var _vehicleNames: _vehicleEntries.map(entry => entry.name)
77 // Entries are ordered supported firmwares first, Generic last resort
78 readonly property string selectedKey: currentIndex >= 0 ? _vehicleEntries[currentIndex].key : _vehicleEntries[0].key
79 readonly property bool apmSelected: selectedKey.startsWith("apm")
82 id: videoStreamTypeCombo
83 label: qsTr("Served Video Stream")
84 Layout.fillWidth: true
85 visible: enableCamera.checked
88 qsTr("RTP/UDP H.264"),
89 qsTr("RTP/UDP H.265"),
91 qsTr("MPEG-TS (UDP)"),
96 text: qsTr("Start MockLink")
97 Layout.fillWidth: true
99 switch (vehicleTypeCombo.selectedKey) {
101 QGroundControl.startPX4MockLink(sendStatusText.checked, enableCamera.checked, enableGimbal.checked, enableProximity.checked, videoStreamTypeCombo.currentIndex)
104 QGroundControl.startAPMArduCopterMockLink(sendStatusText.checked, enableCamera.checked, enableGimbal.checked, enableProximity.checked, apmStartFreshParams.checked, videoStreamTypeCombo.currentIndex)
107 QGroundControl.startAPMArduPlaneMockLink(sendStatusText.checked, enableCamera.checked, enableGimbal.checked, enableProximity.checked, apmStartFreshParams.checked, videoStreamTypeCombo.currentIndex)
110 QGroundControl.startAPMArduSubMockLink(sendStatusText.checked, enableCamera.checked, enableGimbal.checked, enableProximity.checked, apmStartFreshParams.checked, videoStreamTypeCombo.currentIndex)
113 QGroundControl.startAPMArduRoverMockLink(sendStatusText.checked, enableCamera.checked, enableGimbal.checked, enableProximity.checked, apmStartFreshParams.checked, videoStreamTypeCombo.currentIndex)
116 QGroundControl.startGenericMockLink(sendStatusText.checked, enableCamera.checked, enableGimbal.checked, enableProximity.checked, videoStreamTypeCombo.currentIndex)
122 text: qsTr("Stop One MockLink")
123 Layout.fillWidth: true
124 onClicked: QGroundControl.stopOneMockLink()