5import QGroundControl.FactControls
6import QGroundControl.Controls
11 property bool _firmware34: globals.activeVehicle.versionCompare(3, 5, 0) < 0
13 FactPanelController { id: controller; }
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")
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)
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 */)
42 labelText: qsTr("Arming Checks:")
45 return _armingCheck.value & 1 ? qsTr("Enabled") : qsTr("Some disabled")
46 } else if (_armingSkipCheck) {
47 return _armingSkipCheck.value === 0 ? qsTr("Enabled") : qsTr("Some disabled")
53 labelText: qsTr("GCS failsafe:")
54 valueText: _failsafeGCSEnable.enumOrValueString
57 labelText: qsTr("Leak failsafe:")
58 valueText: _failsafeLeakEnable.enumOrValueString
62 labelText: qsTr("Battery failsafe:")
65 return "Firmware not supported"
68 if (!_failsafeBatteryEnable) {
72 return _failsafeBatteryEnable.enumOrValueString
77 labelText: qsTr("EKF failsafe:")
78 valueText: _firmware34 ? "" : _failsafeEKFEnable.enumOrValueString
82 labelText: qsTr("Pilot Input failsafe:")
83 valueText: _firmware34 ? "" : _failsafePilotEnable.enumOrValueString
86 labelText: qsTr("Int. Temperature failsafe:")
87 valueText: _failsafeTemperatureEnable.enumOrValueString
90 labelText: qsTr("Int. Pressure failsafe:")
91 valueText: _failsafePressureEnable.enumOrValueString