Browse Source

Disable CompassMot for Sub

QGC4.4
Jacob Walser 8 years ago
parent
commit
29e3c496ad
  1. 4
      src/AutoPilotPlugins/APM/APMSensorsComponent.qml
  2. 5
      src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc
  3. 2
      src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h
  4. 5
      src/FirmwarePlugin/FirmwarePlugin.cc
  5. 4
      src/FirmwarePlugin/FirmwarePlugin.h
  6. 5
      src/Vehicle/Vehicle.cc
  7. 4
      src/Vehicle/Vehicle.h

4
src/AutoPilotPlugins/APM/APMSensorsComponent.qml

@ -532,6 +532,10 @@ SetupPage { @@ -532,6 +532,10 @@ SetupPage {
id: motorInterferenceButton
width: parent.buttonWidth
text: qsTr("CompassMot")
visible: _activeVehicle ? _activeVehicle.supportsMotorInterference : false
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
onClicked: showDialog(compassMotDialogComponent, qsTr("CompassMot - Compass Motor Interference Calibration"), qgcView.showDialogFullWidth, StandardButton.Cancel | StandardButton.Ok)
}

5
src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc

@ -101,3 +101,8 @@ bool ArduSubFirmwarePlugin::supportsCalibratePressure(void) @@ -101,3 +101,8 @@ bool ArduSubFirmwarePlugin::supportsCalibratePressure(void)
{
return true;
}
bool ArduSubFirmwarePlugin::supportsMotorInterference(void)
{
return false;
}

2
src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h

@ -81,6 +81,8 @@ public: @@ -81,6 +81,8 @@ public:
bool supportsCalibratePressure(void);
bool supportsMotorInterference(void);
QString brandImage(const Vehicle* vehicle) const { Q_UNUSED(vehicle); return QStringLiteral("/qmlimages/APM/BrandImageSub"); }
const FirmwarePlugin::remapParamNameMajorVersionMap_t& paramNameRemapMajorVersionMap(void) const final { return _remapParamName; }
int remapParamNameHigestMinorVersionNumber(int majorVersionNumber) const final;

5
src/FirmwarePlugin/FirmwarePlugin.cc

@ -139,6 +139,11 @@ bool FirmwarePlugin::supportsCalibratePressure(void) @@ -139,6 +139,11 @@ bool FirmwarePlugin::supportsCalibratePressure(void)
return false;
}
bool FirmwarePlugin::supportsMotorInterference(void)
{
return true;
}
bool FirmwarePlugin::supportsJSButton(void)
{
return false;

4
src/FirmwarePlugin/FirmwarePlugin.h

@ -167,6 +167,10 @@ public: @@ -167,6 +167,10 @@ public:
/// zero at the current pressure. Default is false.
virtual bool supportsCalibratePressure(void);
/// Returns true if the firmware supports calibrating motor interference offsets for the compass
/// (CompassMot). Default is true.
virtual bool supportsMotorInterference(void);
/// Called before any mavlink message is processed by Vehicle such that the firmwre plugin
/// can adjust any message characteristics. This is handy to adjust or differences in mavlink
/// spec implementations such that the base code can remain mavlink generic.

5
src/Vehicle/Vehicle.cc

@ -1777,6 +1777,11 @@ bool Vehicle::supportsCalibratePressure(void) const @@ -1777,6 +1777,11 @@ bool Vehicle::supportsCalibratePressure(void) const
return _firmwarePlugin->supportsCalibratePressure();
}
bool Vehicle::supportsMotorInterference(void) const
{
return _firmwarePlugin->supportsMotorInterference();
}
void Vehicle::_setCoordinateValid(bool coordinateValid)
{
if (coordinateValid != _coordinateValid) {

4
src/Vehicle/Vehicle.h

@ -282,7 +282,8 @@ public: @@ -282,7 +282,8 @@ public:
Q_PROPERTY(bool supportsThrottleModeCenterZero READ supportsThrottleModeCenterZero CONSTANT)
Q_PROPERTY(bool supportsJSButton READ supportsJSButton CONSTANT)
Q_PROPERTY(bool supportsRadio READ supportsRadio CONSTANT)
Q_PROPERTY(bool supportsCalibratePressure READ supportsCalibratePressure CONSTANT)
Q_PROPERTY(bool supportsCalibratePressure READ supportsCalibratePressure CONSTANT)
Q_PROPERTY(bool supportsMotorInterference READ supportsMotorInterference CONSTANT)
Q_PROPERTY(bool autoDisconnect MEMBER _autoDisconnect NOTIFY autoDisconnectChanged)
Q_PROPERTY(QString prearmError READ prearmError WRITE setPrearmError NOTIFY prearmErrorChanged)
Q_PROPERTY(int motorCount READ motorCount CONSTANT)
@ -506,6 +507,7 @@ public: @@ -506,6 +507,7 @@ public:
bool supportsRadio(void) const;
bool supportsJSButton(void) const;
bool supportsCalibratePressure(void) const;
bool supportsMotorInterference(void) const;
void setFlying(bool flying);
void setGuidedMode(bool guidedMode);

Loading…
Cancel
Save