1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
import QtQuick 2.3
import QtQuick.Controls 1.2
import QGroundControl.FactSystem 1.0
import QGroundControl.FactControls 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
FactPanel {
id: panel
anchors.fill: parent
color: qgcPal.windowShadeDark
QGCPalette { id: qgcPal; colorGroupEnabled: enabled }
FactPanelController { id: controller; factPanel: panel }
property Fact _failsafeBattEnable: controller.getParameterFact(-1, "FS_BATT_ENABLE")
property Fact _failsafeThrEnable: controller.getParameterFact(-1, "FS_THR_ENABLE")
property Fact _fenceAction: controller.getParameterFact(-1, "FENCE_ACTION")
property Fact _fenceEnable: controller.getParameterFact(-1, "FENCE_ENABLE")
property Fact _fenceType: controller.getParameterFact(-1, "FENCE_TYPE")
property Fact _rtlAltFact: controller.getParameterFact(-1, "RTL_ALT")
property Fact _rtlLoitTimeFact: controller.getParameterFact(-1, "RTL_LOIT_TIME")
property Fact _rtlAltFinalFact: controller.getParameterFact(-1, "RTL_ALT_FINAL")
property Fact _landSpeedFact: controller.getParameterFact(-1, "LAND_SPEED")
property Fact _armingCheck: controller.getParameterFact(-1, "ARMING_CHECK")
property string _failsafeBattEnableText
property string _failsafeThrEnableText
Component.onCompleted: {
setFailsafeBattEnableText()
setFailsafeThrEnableText()
}
Connections {
target: _failsafeBattEnable
onValueChanged: setFailsafeBattEnableText()
}
Connections {
target: _failsafeThrEnable
onValueChanged: setFailsafeThrEnableText()
}
function setFailsafeThrEnableText() {
switch (_failsafeThrEnable.value) {
case 0:
_failsafeThrEnableText = qsTr("Disabled")
break
case 1:
_failsafeThrEnableText = qsTr("Always RTL")
break
case 2:
_failsafeThrEnableText = qsTr("Continue with Mission in Auto Mode")
break
case 3:
_failsafeThrEnableText = qsTr("Always Land")
break
default:
_failsafeThrEnableText = qsTr("Unknown")
}
}
function setFailsafeBattEnableText() {
switch (_failsafeBattEnable.value) {
case 0:
_failsafeBattEnableText = qsTr("Disabled")
break
case 1:
_failsafeBattEnableText = qsTr("Land")
break
case 2:
_failsafeBattEnableText = qsTr("Return to Launch")
break
default:
_failsafeThrEnableText = qsTr("Unknown")
}
}
Column {
anchors.fill: parent
VehicleSummaryRow {
labelText: qsTr("Arming Checks:")
valueText: _armingCheck.value & 1 ? qsTr("Enabled") : qsTr("Some disabled")
}
VehicleSummaryRow {
labelText: qsTr("Throttle failsafe:")
valueText: _failsafeThrEnableText
}
VehicleSummaryRow {
labelText: qsTr("Battery failsafe:")
valueText: _failsafeBattEnableText
}
VehicleSummaryRow {
labelText: qsTr("GeoFence:")
valueText: _fenceEnable.value == 0 || _fenceType == 0 ?
qsTr("Disabled") :
(_fenceType.value == 1 ?
qsTr("Altitude") :
(_fenceType.value == 2 ? qsTr("Circle") : qsTr("Altitude,Circle")))
}
VehicleSummaryRow {
labelText: qsTr("GeoFence:")
valueText: _fenceAction.value == 0 ?
qsTr("Report only") :
(_fenceAction.value == 1 ? qsTr("RTL or Land") : qsTr("Unknown"))
visible: _fenceEnable.value != 0
}
VehicleSummaryRow {
labelText: qsTr("RTL min alt:")
valueText: _rtlAltFact.value == 0 ? qsTr("current") : _rtlAltFact.valueString + " " + _rtlAltFact.units
}
VehicleSummaryRow {
labelText: qsTr("RTL loiter time:")
valueText: _rtlLoitTimeFact.valueString + " " + _rtlLoitTimeFact.units
}
VehicleSummaryRow {
labelText: qsTr("RTL final alt:")
valueText: _rtlAltFinalFact.value == 0 ? qsTr("Land") : _rtlAltFinalFact.valueString + " " + _rtlAltFinalFact.units
}
VehicleSummaryRow {
labelText: qsTr("Descent speed:")
valueText: _landSpeedFact.valueString + " " + _landSpeedFact.units
}
}
}