Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework PX4 airspeed cal due to parameter name/functionality changes #11425

Merged
merged 1 commit into from
Jun 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/AutoPilotPlugins/APM/APMRadioComponent.cc
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ void APMRadioComponent::_connectSetupTriggers(void)

void APMRadioComponent::_triggerChanged(void)
{
emit setupCompleteChanged(setupComplete());
emit setupCompleteChanged();

// Control mapping may have changed so we need to reset triggers
_connectSetupTriggers();
Expand Down
2 changes: 1 addition & 1 deletion src/AutoPilotPlugins/AutoPilotPlugin.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ void AutoPilotPlugin::_recalcSetupComplete(void)

if (_setupComplete != newSetupComplete) {
_setupComplete = newSetupComplete;
emit setupCompleteChanged(_setupComplete);
emit setupCompleteChanged();
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/AutoPilotPlugins/AutoPilotPlugin.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ class AutoPilotPlugin : public QObject
bool setupComplete(void) const;

signals:
void setupCompleteChanged(bool setupComplete);
void vehicleComponentsChanged(void);
void setupCompleteChanged (void);
void vehicleComponentsChanged (void);

protected:
/// All access to AutoPilotPugin objects is through getInstanceForAutoPilotPlugin
Expand Down
57 changes: 44 additions & 13 deletions src/AutoPilotPlugins/PX4/SensorsComponent.cc
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,11 @@
*
****************************************************************************/


/// @file
/// @author Don Gagne <[email protected]>

#include "SensorsComponent.h"
#include "FactSystem.h"
#include "ParameterManager.h"
#include "Vehicle.h"

const char* SensorsComponent::_airspeedBreakerParam = "CBRK_AIRSPD_CHK";
const char* SensorsComponent::_airspeedDisabledParam = "FW_ARSP_MODE";
const char* SensorsComponent::_airspeedCalParam = "SENS_DPRES_OFF";

const char* SensorsComponent::_magEnabledParam = "SYS_HAS_MAG";
const char* SensorsComponent::_magCalParam = "CAL_MAG0_ID";

Expand All @@ -28,6 +20,15 @@ SensorsComponent::SensorsComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot,
_name(tr("Sensors"))
{
_deviceIds = QStringList({QStringLiteral("CAL_GYRO0_ID"), QStringLiteral("CAL_ACC0_ID") });

if (_vehicle->fixedWing() || _vehicle->vtol() || _vehicle->airship()) {
_airspeedCalTriggerParams << "SENS_DPRES_OFF";
if (_vehicle->firmwareMajorVersion() >= 1 && _vehicle->firmwareMinorVersion() >= 14) {
_airspeedCalTriggerParams << "SYS_HAS_NUM_ASPD";
} else {
_airspeedCalTriggerParams << "FW_ARSP_MODE" << "CBRK_AIRSPD_CHK";
}
}
}

QString SensorsComponent::name(void) const
Expand Down Expand Up @@ -67,10 +68,17 @@ bool SensorsComponent::setupComplete(void) const
}

if (_vehicle->fixedWing() || _vehicle->vtol() || _vehicle->airship()) {
if (!_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, _airspeedDisabledParam)->rawValue().toBool() &&
_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, _airspeedBreakerParam)->rawValue().toInt() != 162128 &&
_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, _airspeedCalParam)->rawValue().toFloat() == 0.0f) {
return false;
if (_vehicle->firmwareMajorVersion() >= 1 && _vehicle->firmwareMinorVersion() >= 14) {
if (_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, "SYS_HAS_NUM_ASPD")->rawValue().toBool() &&
_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, "SENS_DPRES_OFF")->rawValue().toFloat() == 0.0f) {
return false;
}
} else {
if (!_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, "FW_ARSP_MODE")->rawValue().toBool() &&
_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, "CBRK_AIRSPD_CHK")->rawValue().toInt() != 162128 &&
_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, "SENS_DPRES_OFF")->rawValue().toFloat() == 0.0f) {
return false;
}
}
}

Expand All @@ -83,7 +91,7 @@ QStringList SensorsComponent::setupCompleteChangedTriggerList(void) const

triggers << _deviceIds << _magCalParam << _magEnabledParam;
if (_vehicle->fixedWing() || _vehicle->vtol() || _vehicle->airship()) {
triggers << _airspeedCalParam << _airspeedBreakerParam;
triggers << _airspeedCalTriggerParams;
}

return triggers;
Expand All @@ -106,3 +114,26 @@ QUrl SensorsComponent::summaryQmlSource(void) const

return QUrl::fromUserInput(summaryQml);
}

bool SensorsComponent::_airspeedCalSupported(void) const
{
if (_vehicle->fixedWing() || _vehicle->vtol() || _vehicle->airship()) {
if (_vehicle->firmwareMajorVersion() >= 1 && _vehicle->firmwareMinorVersion() >= 14) {
if (_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, "SYS_HAS_NUM_ASPD")->rawValue().toBool()) {
return true;
}
} else {
if (!_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, "FW_ARSP_MODE")->rawValue().toBool() &&
_vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, "CBRK_AIRSPD_CHK")->rawValue().toInt() != 162128) {
return true;
}
}
}

return false;
}

bool SensorsComponent::_airspeedCalRequired(void) const
{
return _airspeedCalSupported() && _vehicle->parameterManager()->getParameter(FactSystem::defaultComponentId, "SENS_DPRES_OFF")->rawValue().toFloat() == 0.0f;
}
11 changes: 7 additions & 4 deletions src/AutoPilotPlugins/PX4/SensorsComponent.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ class SensorsComponent : public VehicleComponent
public:
SensorsComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot, QObject* parent = nullptr);

Q_PROPERTY(bool airspeedCalSupported READ _airspeedCalSupported STORED false NOTIFY setupCompleteChanged)
Q_PROPERTY(bool airspeedCalRequired READ _airspeedCalRequired STORED false NOTIFY setupCompleteChanged)

// Virtuals from VehicleComponent
QStringList setupCompleteChangedTriggerList(void) const override;

Expand All @@ -37,13 +40,13 @@ class SensorsComponent : public VehicleComponent
virtual QUrl summaryQmlSource(void) const override;

private:
bool _airspeedCalSupported (void) const;
bool _airspeedCalRequired (void) const;

const QString _name;
QVariantList _summaryItems;
QStringList _deviceIds;

static const char* _airspeedDisabledParam;
static const char* _airspeedBreakerParam;
static const char* _airspeedCalParam;
QStringList _airspeedCalTriggerParams;

static const char* _magEnabledParam;
static const char* _magCalParam;
Expand Down
10 changes: 2 additions & 8 deletions src/AutoPilotPlugins/PX4/SensorsComponentSummaryFixedWing.qml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,6 @@ Item {
property Fact mag0IdFact: controller.getParameterFact(-1, "CAL_MAG0_ID")
property Fact gyro0IdFact: controller.getParameterFact(-1, "CAL_GYRO0_ID")
property Fact accel0IdFact: controller.getParameterFact(-1, "CAL_ACC0_ID")
property Fact dpressOffFact: controller.getParameterFact(-1, "SENS_DPRES_OFF")
property Fact airspeedDisabledFact: controller.getParameterFact(-1, "FW_ARSP_MODE")
property Fact airspeedBreakerFact: controller.getParameterFact(-1, "CBRK_AIRSPD_CHK")

property bool _airspeedVisible: airspeedDisabledFact.value == 0 && airspeedBreakerFact.value !== 162128
property bool _airspeedCalRequired: _airspeedVisible && dpressOffFact.value === 0

Column {
anchors.fill: parent
Expand All @@ -45,8 +39,8 @@ Item {

VehicleSummaryRow {
labelText: qsTr("Airspeed:")
visible: _airspeedVisible
valueText: _airspeedCalRequired ? qsTr("Setup required") : qsTr("Ready")
visible: vehicleComponent.airspeedCalSupported
valueText: vehicleComponent.airspeedCalRequired ? qsTr("Setup required") : qsTr("Ready")
}
}
}
10 changes: 4 additions & 6 deletions src/AutoPilotPlugins/PX4/SensorsSetup.qml
Original file line number Diff line number Diff line change
Expand Up @@ -450,11 +450,9 @@ Item {
id: airspeedButton
width: _buttonWidth
text: qsTr("Airspeed")
visible: (controller.vehicle.fixedWing || controller.vehicle.vtol || controller.vehicle.airship) &&
controller.getParameterFact(-1, "FW_ARSP_MODE").value == 0 &&
controller.getParameterFact(-1, "CBRK_AIRSPD_CHK").value !== 162128 &&
QGroundControl.corePlugin.options.showSensorCalibrationAirspeed &&
showSensorCalibrationAirspeed
visible: vehicleComponent.airspeedCalSupported &&
QGroundControl.corePlugin.options.showSensorCalibrationAirspeed &&
showSensorCalibrationAirspeed
indicatorGreen: sens_dpres_off.value !== 0

onClicked: {
Expand Down Expand Up @@ -522,7 +520,7 @@ Item {
height: parent.height
readOnly: true
text: statusTextAreaDefaultText
color: qgcPal.Text
color: qgcPal.text
background: Rectangle { color: qgcPal.windowShade }
}

Expand Down
2 changes: 1 addition & 1 deletion src/VehicleSetup/VehicleComponent.cc
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,5 @@ void VehicleComponent::setupTriggerSignals(void)

void VehicleComponent::_triggerUpdated(QVariant /*value*/)
{
emit setupCompleteChanged(setupComplete());
emit setupCompleteChanged();
}
4 changes: 2 additions & 2 deletions src/VehicleSetup/VehicleComponent.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ class VehicleComponent : public QObject
virtual void setupTriggerSignals(void);

signals:
void setupCompleteChanged(bool setupComplete);
void setupSourceChanged(void);
void setupCompleteChanged (void);
void setupSourceChanged (void);

protected slots:
void _triggerUpdated(QVariant value);
Expand Down
2 changes: 2 additions & 0 deletions src/VehicleSetup/VehicleSummary.qml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,8 @@ Rectangle {
anchors.fill: parent
anchors.margins: ScreenTools.defaultFontPixelWidth
source: modelData.summaryQmlSource

property var vehicleComponent: modelData
}
}
}
Expand Down