px4 sensor setup: replace ATT_W_MAG with SYS_HAS_MAG and check if param exists

parent fd091538
......@@ -20,7 +20,7 @@ const char* SensorsComponent::_airspeedBreakerParam = "CBRK_AIRSPD_CHK";
const char* SensorsComponent::_airspeedDisabledParam = "FW_ARSP_MODE";
const char* SensorsComponent::_airspeedCalParam = "SENS_DPRES_OFF";
const char* SensorsComponent::_magDisabledParam = "ATT_W_MAG";
const char* SensorsComponent::_magEnabledParam = "SYS_HAS_MAG";
const char* SensorsComponent::_magCalParam = "CAL_MAG0_ID";
SensorsComponent::SensorsComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot, QObject* parent) :
......@@ -57,8 +57,12 @@ bool SensorsComponent::setupComplete(void) const
return false;
}
}
if (_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, _magDisabledParam)->rawValue().toInt() != 0 &&
_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, _magCalParam)->rawValue().toFloat() == 0.0f) {
bool magEnabled = true;
if (_vehicle->parameterManager()->parameterExists(FactSystem::defaultComponentId, _magEnabledParam)) {
magEnabled = _vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, _magEnabledParam)->rawValue().toBool();
}
if (magEnabled && _vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, _magCalParam)->rawValue().toFloat() == 0.0f) {
return false;
}
......@@ -77,7 +81,7 @@ QStringList SensorsComponent::setupCompleteChangedTriggerList(void) const
{
QStringList triggers;
triggers << _deviceIds << _magCalParam << _magDisabledParam;
triggers << _deviceIds << _magCalParam << _magEnabledParam;
if (_vehicle->fixedWing() || _vehicle->vtol()) {
triggers << _airspeedCalParam << _airspeedBreakerParam;
}
......
......@@ -45,7 +45,7 @@ private:
static const char* _airspeedBreakerParam;
static const char* _airspeedCalParam;
static const char* _magDisabledParam;
static const char* _magEnabledParam;
static const char* _magCalParam;
};
......
......@@ -365,12 +365,12 @@ Item {
spacing: ScreenTools.defaultFontPixelHeight / 2
IndicatorButton {
property bool _hasMag: controller.parameterExists(-1, "SYS_HAS_MAG") ? controller.getParameterFact(-1, "SYS_HAS_MAG").value !== 0 : true
id: compassButton
width: _buttonWidth
text: qsTr("Compass")
indicatorGreen: cal_mag0_id.value !== 0
visible: controller.getParameterFact(-1, "ATT_W_MAG").value !== 0 &&
QGroundControl.corePlugin.options.showSensorCalibrationCompass && showSensorCalibrationCompass
visible: _hasMag && QGroundControl.corePlugin.options.showSensorCalibrationCompass && showSensorCalibrationCompass
onClicked: {
preCalibrationDialogType = "compass"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment