diff --git a/src/AutoPilotPlugins/APM/APMTuningComponentCopter.qml b/src/AutoPilotPlugins/APM/APMTuningComponentCopter.qml index 64faea8acc0fd1d4a2d6c99b2ee25b7e2e6141eb..f11ee85607aada8caab075dd30b51ba01adb3101 100644 --- a/src/AutoPilotPlugins/APM/APMTuningComponentCopter.qml +++ b/src/AutoPilotPlugins/APM/APMTuningComponentCopter.qml @@ -39,13 +39,16 @@ SetupPage { property real _hoverTuneMax: _throttleMidExists ? 800 : 1 property real _hoverTuneStep: _throttleMidExists ? 10 : 0.01 - property Fact _rcFeel: controller.getParameterFact(-1, "RC_FEEL_RP") - property Fact _rateRollP: controller.getParameterFact(-1, "r.ATC_RAT_RLL_P") - property Fact _rateRollI: controller.getParameterFact(-1, "r.ATC_RAT_RLL_I") - property Fact _ratePitchP: controller.getParameterFact(-1, "r.ATC_RAT_PIT_P") - property Fact _ratePitchI: controller.getParameterFact(-1, "r.ATC_RAT_PIT_I") - property Fact _rateClimbP: controller.getParameterFact(-1, "ACCEL_Z_P") - property Fact _rateClimbI: controller.getParameterFact(-1, "ACCEL_Z_I") + property bool _rcFeelAvailable: controller.parameterExists(-1, "RC_FEEL") + property bool _atcInputTCAvailable: controller.parameterExists(-1, "ATC_INPUT_TC") + property Fact _rcFeel: controller.getParameterFact(-1, "RC_FEEL", false) + property Fact _atcInputTC: controller.getParameterFact(-1, "ATC_INPUT_TC", false) + property Fact _rateRollP: controller.getParameterFact(-1, "r.ATC_RAT_RLL_P") + property Fact _rateRollI: controller.getParameterFact(-1, "r.ATC_RAT_RLL_I") + property Fact _ratePitchP: controller.getParameterFact(-1, "r.ATC_RAT_PIT_P") + property Fact _ratePitchI: controller.getParameterFact(-1, "r.ATC_RAT_PIT_I") + property Fact _rateClimbP: controller.getParameterFact(-1, "r.PSC_ACCZ_P") + property Fact _rateClimbI: controller.getParameterFact(-1, "r.PSC_ACCZ_I") property Fact _ch7Opt: controller.getParameterFact(-1, "CH7_OPT") property Fact _ch8Opt: controller.getParameterFact(-1, "CH8_OPT") @@ -78,7 +81,12 @@ SetupPage { throttleHover.value = _hoverTuneParam.value rollPitch.value = _rateRollP.value climb.value = _rateClimbP.value - rcFeel.value = _rcFeel.value + if (_rcFeelAvailable) { + rcFeel.value = _rcFeel.value + } + if (_atcInputTCAvailable) { + atcInputTC.value = _atcInputTC.value + } _loadComplete = true calcAutoTuneChannel() @@ -240,6 +248,7 @@ SetupPage { Column { anchors.left: parent.left anchors.right: parent.right + visible: _rcFeelAvailable QGCLabel { text: qsTr("RC Roll/Pitch Feel") @@ -266,6 +275,37 @@ SetupPage { } } } + + Column { + anchors.left: parent.left + anchors.right: parent.right + visible: _atcInputTCAvailable + + QGCLabel { + text: qsTr("RC Roll/Pitch Feel") + font.family: ScreenTools.demiboldFontFamily + } + + QGCLabel { + text: qsTr("Slide to the left for soft control, slide to the right for crisp control") + } + + Slider { + id: atcInputTC + anchors.left: parent.left + anchors.right: parent.right + minimumValue: _atcInputTC.min + maximumValue: _atcInputTC.max + stepSize: _atcInputTC.increment + tickmarksEnabled: true + + onValueChanged: { + if (_loadComplete) { + _atcInputTC.value = value + } + } + } + } } } // Rectangle - Basic tuning diff --git a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.6.xml b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.6.xml index 1d6ffda007c04964116191ec611f5a80b8934c1e..c1a96770e7a6fd75643bf93e2a84f82770d91ad5 100644 --- a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.6.xml +++ b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.6.xml @@ -1684,7 +1684,7 @@ 50 -mA.h +mAh milliampere hour @@ -1713,7 +1713,7 @@ 50 -mA.h +mAh milliampere hour @@ -1723,12 +1723,12 @@ 50 -mA.h +mAh milliampere hour -Nothing +None Land RTL SmartRTL @@ -1738,7 +1738,7 @@ -Nothing +None Land RTL SmartRTL @@ -1791,7 +1791,7 @@ 50 -mA.h +mAh milliampere hour @@ -1820,7 +1820,7 @@ 50 -mA.h +mAh milliampere hour @@ -1830,12 +1830,12 @@ 50 -mA.h +mAh milliampere hour -Nothing +None Land RTL SmartRTL @@ -1845,7 +1845,7 @@ -Nothing +None Land RTL SmartRTL diff --git a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc index 68a86e559df6ae58baf6c8557f47fc1b3d603841..9a20e4400612e0fbaf4fda939a15e376760da8f3 100644 --- a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc +++ b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc @@ -150,11 +150,13 @@ ArduCopterFirmwarePlugin::ArduCopterFirmwarePlugin(void) FirmwarePlugin::remapParamNameMap_t& remapV3_6 = _remapParamName[3][6]; - remapV3_6["BATT_AMP_PERVLT"] = QStringLiteral("BATT_AMP_PERVOL"); + remapV3_6["BATT_AMP_PERVLT"] = QStringLiteral("BATT_AMP_PERVOL"); remapV3_6["BATT2_AMP_PERVLT"] = QStringLiteral("BATT2_AMP_PERVOL"); - remapV3_6["BATT_LOW_MAH"] = QStringLiteral("FS_BATT_MAH"); - remapV3_6["BATT_LOW_VOLT"] = QStringLiteral("FS_BATT_VOLTAGE"); - remapV3_6["BATT_FS_LOW_ACT"] = QStringLiteral("FS_BATT_ENABLE"); + remapV3_6["BATT_LOW_MAH"] = QStringLiteral("FS_BATT_MAH"); + remapV3_6["BATT_LOW_VOLT"] = QStringLiteral("FS_BATT_VOLTAGE"); + remapV3_6["BATT_FS_LOW_ACT"] = QStringLiteral("FS_BATT_ENABLE"); + remapV3_6["PSC_ACCZ_P"] = QStringLiteral("ACCEL_Z_P"); + remapV3_6["PSC_ACCZ_I"] = QStringLiteral("ACCEL_Z_I"); _remapParamNameIntialized = true; }