QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
APMSafetyComponentSummarySub.qml
Go to the documentation of this file.
1import QtQuick
2import QtQuick.Controls
3
4import QGroundControl
5import QGroundControl.FactControls
6import QGroundControl.Controls
7
8Item {
9 anchors.fill: parent
10
11 property bool _firmware34: globals.activeVehicle.versionCompare(3, 5, 0) < 0
12
13 FactPanelController { id: controller; }
14
15 // Enable/Action parameters
16 property Fact _failsafeBatteryEnable: controller.getParameterFact(-1, "r.BATT_FS_LOW_ACT", false)
17 property Fact _failsafeEKFEnable: controller.getParameterFact(-1, "FS_EKF_ACTION")
18 property Fact _failsafeGCSEnable: controller.getParameterFact(-1, "FS_GCS_ENABLE")
19 property Fact _failsafeLeakEnable: controller.getParameterFact(-1, "FS_LEAK_ENABLE")
20 property Fact _failsafePilotEnable: _firmware34 ? null : controller.getParameterFact(-1, "FS_PILOT_INPUT")
21 property Fact _failsafePressureEnable: controller.getParameterFact(-1, "FS_PRESS_ENABLE")
22 property Fact _failsafeTemperatureEnable: controller.getParameterFact(-1, "FS_TEMP_ENABLE")
23
24 // Threshold parameters
25 property Fact _failsafePressureThreshold: controller.getParameterFact(-1, "FS_PRESS_MAX")
26 property Fact _failsafeTemperatureThreshold: controller.getParameterFact(-1, "FS_TEMP_MAX")
27 property Fact _failsafePilotTimeout: _firmware34 ? null : controller.getParameterFact(-1, "FS_PILOT_TIMEOUT")
28 property Fact _failsafeLeakPin: controller.getParameterFact(-1, "LEAK1_PIN")
29 property Fact _failsafeLeakLogic: controller.getParameterFact(-1, "LEAK1_LOGIC")
30 property Fact _failsafeEKFThreshold: controller.getParameterFact(-1, "FS_EKF_THRESH")
31 property Fact _failsafeBatteryVoltage: controller.getParameterFact(-1, "r.BATT_LOW_VOLT", false)
32 property Fact _failsafeBatteryCapacity: controller.getParameterFact(-1, "r.BATT_LOW_MAH", false)
33
34 // Older firmwares use ARMING_CHECK. Newer firmwares use ARMING_SKIPCHK.
35 property Fact _armingCheck: controller.getParameterFact(-1, "ARMING_CHECK", false /* reportMissing */)
36 property Fact _armingSkipCheck: controller.getParameterFact(-1, "ARMING_SKIPCHK", false /* reportMissing */)
37
38 Column {
39 anchors.fill: parent
40
41 VehicleSummaryRow {
42 labelText: qsTr("Arming Checks:")
43 valueText: {
44 if (_armingCheck) {
45 return _armingCheck.value & 1 ? qsTr("Enabled") : qsTr("Some disabled")
46 } else if (_armingSkipCheck) {
47 return _armingSkipCheck.value === 0 ? qsTr("Enabled") : qsTr("Some disabled")
48 }
49 return ""
50 }
51 }
52 VehicleSummaryRow {
53 labelText: qsTr("GCS failsafe:")
54 valueText: _failsafeGCSEnable.enumOrValueString
55 }
56 VehicleSummaryRow {
57 labelText: qsTr("Leak failsafe:")
58 valueText: _failsafeLeakEnable.enumOrValueString
59 }
60 VehicleSummaryRow {
61 visible: !_firmware34
62 labelText: qsTr("Battery failsafe:")
63 valueText: {
64 if(_firmware34) {
65 return "Firmware not supported"
66 }
67
68 if (!_failsafeBatteryEnable) {
69 return "Disabled"
70 }
71
72 return _failsafeBatteryEnable.enumOrValueString
73 }
74 }
75 VehicleSummaryRow {
76 visible: !_firmware34
77 labelText: qsTr("EKF failsafe:")
78 valueText: _firmware34 ? "" : _failsafeEKFEnable.enumOrValueString
79 }
80 VehicleSummaryRow {
81 visible: !_firmware34
82 labelText: qsTr("Pilot Input failsafe:")
83 valueText: _firmware34 ? "" : _failsafePilotEnable.enumOrValueString
84 }
85 VehicleSummaryRow {
86 labelText: qsTr("Int. Temperature failsafe:")
87 valueText: _failsafeTemperatureEnable.enumOrValueString
88 }
89 VehicleSummaryRow {
90 labelText: qsTr("Int. Pressure failsafe:")
91 valueText: _failsafePressureEnable.enumOrValueString
92 }
93 }
94}