Commit c389bcc5 authored by DonLakeFlyer's avatar DonLakeFlyer

parent 83328ad9
......@@ -6,6 +6,9 @@ Note: This file only contains high level features or important fixes.
### 3.6.0 - Daily Build
* ArduPilot: Copter - Update support to 3.5+
* ArduPilot: Plane - Update support to 3.8+
* ArduPilot: Rover - Update support to 3.4+
* Plan/Pattern: Support named presets to simplify commonly used settings setup. Currently only supported by Survey.
* ArduCopter: Handle 3.7 parameter name change from CH#_OPT to RC#_OPTION.
* Improved support for flashing/connecting to ChibiOS bootloaders boards.
......
......@@ -257,8 +257,6 @@
<file alias="Video.SettingsGroup.json">src/Settings/Video.SettingsGroup.json</file>
</qresource>
<qresource prefix="/MockLink">
<file alias="APMArduCopterMockLink.params">src/comm/APMArduCopterMockLink.params</file>
<file alias="APMArduPlaneMockLink.params">src/comm/APMArduPlaneMockLink.params</file>
<file alias="APMArduSubMockLink.params">src/comm/APMArduSubMockLink.params</file>
<file alias="PX4MockLink.params">src/comm/PX4MockLink.params</file>
</qresource>
......
......@@ -55,16 +55,16 @@ SetupPage {
property Fact _mountAngMinPan: controller.getParameterFact(-1, "MNT_ANGMIN_PAN")
property Fact _mountAngMaxPan: controller.getParameterFact(-1, "MNT_ANGMAX_PAN")
property Fact _rc5Function: controller.getParameterFact(-1, "r.SERVO5_FUNCTION")
property Fact _rc6Function: controller.getParameterFact(-1, "r.SERVO6_FUNCTION")
property Fact _rc7Function: controller.getParameterFact(-1, "r.SERVO7_FUNCTION")
property Fact _rc8Function: controller.getParameterFact(-1, "r.SERVO8_FUNCTION")
property Fact _rc9Function: controller.getParameterFact(-1, "r.SERVO9_FUNCTION")
property Fact _rc10Function: controller.getParameterFact(-1, "r.SERVO10_FUNCTION")
property Fact _rc11Function: controller.getParameterFact(-1, "r.SERVO11_FUNCTION")
property Fact _rc12Function: controller.getParameterFact(-1, "r.SERVO12_FUNCTION")
property Fact _rc13Function: controller.getParameterFact(-1, "r.SERVO13_FUNCTION")
property Fact _rc14Function: controller.getParameterFact(-1, "r.SERVO14_FUNCTION")
property Fact _rc5Function: controller.getParameterFact(-1, "SERVO5_FUNCTION")
property Fact _rc6Function: controller.getParameterFact(-1, "SERVO6_FUNCTION")
property Fact _rc7Function: controller.getParameterFact(-1, "SERVO7_FUNCTION")
property Fact _rc8Function: controller.getParameterFact(-1, "SERVO8_FUNCTION")
property Fact _rc9Function: controller.getParameterFact(-1, "SERVO9_FUNCTION")
property Fact _rc10Function: controller.getParameterFact(-1, "SERVO10_FUNCTION")
property Fact _rc11Function: controller.getParameterFact(-1, "SERVO11_FUNCTION")
property Fact _rc12Function: controller.getParameterFact(-1, "SERVO12_FUNCTION")
property Fact _rc13Function: controller.getParameterFact(-1, "SERVO13_FUNCTION")
property Fact _rc14Function: controller.getParameterFact(-1, "SERVO14_FUNCTION")
property bool _tiltEnabled: false
property bool _panEnabled: false
......@@ -92,7 +92,7 @@ SetupPage {
}
function setGimbalSettingsServoInfo(loader, channel) {
var rcPrefix = "r.SERVO" + channel + "_"
var rcPrefix = "SERVO" + channel + "_"
loader.gimbalOutIndex = channel - 4
loader.servoPWMMinFact = controller.getParameterFact(-1, rcPrefix + "MIN")
......@@ -110,7 +110,7 @@ SetupPage {
_panEnabled = false
_rollEnabled = false
for (var channel=_firstGimbalOutChannel; channel<=_lastGimbalOutChannel; channel++) {
var functionFact = controller.getParameterFact(-1, "r.SERVO" + channel + "_FUNCTION")
var functionFact = controller.getParameterFact(-1, "SERVO" + channel + "_FUNCTION")
if (functionFact.value == _rcFunctionMountTilt) {
_tiltEnabled = true
setGimbalSettingsServoInfo(gimbalDirectionTiltLoader, channel)
......@@ -127,7 +127,7 @@ SetupPage {
function setRCFunction(channel, rcFunction) {
// First clear any previous settings for this function
for (var index=_firstGimbalOutChannel; index<=_lastGimbalOutChannel; index++) {
var functionFact = controller.getParameterFact(-1, "r.SERVO" + index + "_FUNCTION")
var functionFact = controller.getParameterFact(-1, "SERVO" + index + "_FUNCTION")
if (functionFact.value != _rcFunctionDisabled && functionFact.value == rcFunction) {
functionFact.value = _rcFunctionDisabled
}
......@@ -135,7 +135,7 @@ SetupPage {
// Now set the function into the new channel
if (channel != 0) {
var functionFact = controller.getParameterFact(-1, "r.SERVO" + channel + "_FUNCTION")
var functionFact = controller.getParameterFact(-1, "SERVO" + channel + "_FUNCTION")
functionFact.value = rcFunction
}
}
......
......@@ -35,16 +35,16 @@ SetupPage {
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property bool _oldFW: _activeVehicle.versionCompare(3, 5, 2) < 0
property Fact _rc5Function: controller.getParameterFact(-1, "r.SERVO5_FUNCTION")
property Fact _rc6Function: controller.getParameterFact(-1, "r.SERVO6_FUNCTION")
property Fact _rc7Function: controller.getParameterFact(-1, "r.SERVO7_FUNCTION")
property Fact _rc8Function: controller.getParameterFact(-1, "r.SERVO8_FUNCTION")
property Fact _rc9Function: controller.getParameterFact(-1, "r.SERVO9_FUNCTION")
property Fact _rc10Function: controller.getParameterFact(-1, "r.SERVO10_FUNCTION")
property Fact _rc11Function: controller.getParameterFact(-1, "r.SERVO11_FUNCTION")
property Fact _rc12Function: controller.getParameterFact(-1, "r.SERVO12_FUNCTION")
property Fact _rc13Function: controller.getParameterFact(-1, "r.SERVO13_FUNCTION")
property Fact _rc14Function: controller.getParameterFact(-1, "r.SERVO14_FUNCTION")
property Fact _rc5Function: controller.getParameterFact(-1, "SERVO5_FUNCTION")
property Fact _rc6Function: controller.getParameterFact(-1, "SERVO6_FUNCTION")
property Fact _rc7Function: controller.getParameterFact(-1, "SERVO7_FUNCTION")
property Fact _rc8Function: controller.getParameterFact(-1, "SERVO8_FUNCTION")
property Fact _rc9Function: controller.getParameterFact(-1, "SERVO9_FUNCTION")
property Fact _rc10Function: controller.getParameterFact(-1, "SERVO10_FUNCTION")
property Fact _rc11Function: controller.getParameterFact(-1, "SERVO11_FUNCTION")
property Fact _rc12Function: controller.getParameterFact(-1, "SERVO12_FUNCTION")
property Fact _rc13Function: controller.getParameterFact(-1, "SERVO13_FUNCTION")
property Fact _rc14Function: controller.getParameterFact(-1, "SERVO14_FUNCTION")
property Fact _stepSize: _oldFW ? controller.getParameterFact(-1, "JS_LIGHTS_STEP") : null // v3.5.1 and prior
property Fact _numSteps: _oldFW ? null : controller.getParameterFact(-1, "JS_LIGHTS_STEPS") // v3.5.2 and up
......@@ -66,7 +66,7 @@ SetupPage {
lightsLoader.lights1OutIndex = 0
lightsLoader.lights2OutIndex = 0
for (var channel=_firstLightsOutChannel; channel<=_lastLightsOutChannel; channel++) {
var functionFact = controller.getParameterFact(-1, "r.SERVO" + channel + "_FUNCTION")
var functionFact = controller.getParameterFact(-1, "SERVO" + channel + "_FUNCTION")
if (functionFact.value == _rcFunctionRCIN9) {
lightsLoader.lights1OutIndex = channel - 4
} else if (functionFact.value == _rcFunctionRCIN10) {
......@@ -78,7 +78,7 @@ SetupPage {
function setRCFunction(channel, rcFunction) {
// First clear any previous settings for this function
for (var index=_firstLightsOutChannel; index<=_lastLightsOutChannel; index++) {
var functionFact = controller.getParameterFact(-1, "r.SERVO" + index + "_FUNCTION")
var functionFact = controller.getParameterFact(-1, "SERVO" + index + "_FUNCTION")
if (functionFact.value != _rcFunctionDisabled && functionFact.value == rcFunction) {
functionFact.value = _rcFunctionDisabled
}
......@@ -86,7 +86,7 @@ SetupPage {
// Now set the function into the new channel
if (channel != 0) {
var functionFact = controller.getParameterFact(-1, "r.SERVO" + channel + "_FUNCTION")
var functionFact = controller.getParameterFact(-1, "SERVO" + channel + "_FUNCTION")
functionFact.value = rcFunction
}
}
......
......@@ -14,16 +14,16 @@ FactPanel {
QGCPalette { id: qgcPal; colorGroupEnabled: enabled }
FactPanelController { id: controller; factPanel: panel }
property Fact _rc5Function: controller.getParameterFact(-1, "r.SERVO5_FUNCTION")
property Fact _rc6Function: controller.getParameterFact(-1, "r.SERVO6_FUNCTION")
property Fact _rc7Function: controller.getParameterFact(-1, "r.SERVO7_FUNCTION")
property Fact _rc8Function: controller.getParameterFact(-1, "r.SERVO8_FUNCTION")
property Fact _rc9Function: controller.getParameterFact(-1, "r.SERVO9_FUNCTION")
property Fact _rc10Function: controller.getParameterFact(-1, "r.SERVO10_FUNCTION")
property Fact _rc11Function: controller.getParameterFact(-1, "r.SERVO11_FUNCTION")
property Fact _rc12Function: controller.getParameterFact(-1, "r.SERVO12_FUNCTION")
property Fact _rc13Function: controller.getParameterFact(-1, "r.SERVO13_FUNCTION")
property Fact _rc14Function: controller.getParameterFact(-1, "r.SERVO14_FUNCTION")
property Fact _rc5Function: controller.getParameterFact(-1, "SERVO5_FUNCTION")
property Fact _rc6Function: controller.getParameterFact(-1, "SERVO6_FUNCTION")
property Fact _rc7Function: controller.getParameterFact(-1, "SERVO7_FUNCTION")
property Fact _rc8Function: controller.getParameterFact(-1, "SERVO8_FUNCTION")
property Fact _rc9Function: controller.getParameterFact(-1, "SERVO9_FUNCTION")
property Fact _rc10Function: controller.getParameterFact(-1, "SERVO10_FUNCTION")
property Fact _rc11Function: controller.getParameterFact(-1, "SERVO11_FUNCTION")
property Fact _rc12Function: controller.getParameterFact(-1, "SERVO12_FUNCTION")
property Fact _rc13Function: controller.getParameterFact(-1, "SERVO13_FUNCTION")
property Fact _rc14Function: controller.getParameterFact(-1, "SERVO14_FUNCTION")
readonly property int _rcFunctionRCIN9: 59
readonly property int _rcFunctionRCIN10: 60
......@@ -40,7 +40,7 @@ FactPanel {
lightsLoader.lights1OutIndex = 0
lightsLoader.lights2OutIndex = 0
for (var channel=_firstLightsOutChannel; channel<=_lastLightsOutChannel; channel++) {
var functionFact = controller.getParameterFact(-1, "r.SERVO" + channel + "_FUNCTION")
var functionFact = controller.getParameterFact(-1, "SERVO" + channel + "_FUNCTION")
if (functionFact.value == _rcFunctionRCIN9) {
lightsLoader.lights1OutIndex = channel - 4
} else if (functionFact.value == _rcFunctionRCIN10) {
......
......@@ -364,7 +364,7 @@ bool APMFirmwarePlugin::_handleIncomingStatusText(Vehicle* vehicle, mavlink_mess
case MAV_TYPE_VTOL_RESERVED5:
case MAV_TYPE_FIXED_WING:
supportedMajorNumber = 3;
supportedMinorNumber = 4;
supportedMinorNumber = 8;
break;
case MAV_TYPE_QUADROTOR:
// Start TCP video handshake with ARTOO in case it's a Solo running ArduPilot firmware
......@@ -376,8 +376,12 @@ bool APMFirmwarePlugin::_handleIncomingStatusText(Vehicle* vehicle, mavlink_mess
case MAV_TYPE_OCTOROTOR:
case MAV_TYPE_TRICOPTER:
supportedMajorNumber = 3;
supportedMinorNumber = 3;
supportedMinorNumber = 5;
break;
case MAV_TYPE_GROUND_ROVER:
case MAV_TYPE_SURFACE_BOAT:
supportedMajorNumber = 3;
supportedMinorNumber = 4;
default:
break;
}
......@@ -654,7 +658,7 @@ void APMFirmwarePlugin::initializeVehicle(Vehicle* vehicle)
case MAV_TYPE_TRICOPTER:
case MAV_TYPE_COAXIAL:
case MAV_TYPE_HELICOPTER:
vehicle->setFirmwareVersion(3, 4, 0);
vehicle->setFirmwareVersion(3, 6, 0);
break;
case MAV_TYPE_VTOL_DUOROTOR:
case MAV_TYPE_VTOL_QUADROTOR:
......@@ -664,11 +668,11 @@ void APMFirmwarePlugin::initializeVehicle(Vehicle* vehicle)
case MAV_TYPE_VTOL_RESERVED4:
case MAV_TYPE_VTOL_RESERVED5:
case MAV_TYPE_FIXED_WING:
vehicle->setFirmwareVersion(3, 5, 0);
vehicle->setFirmwareVersion(3, 9, 0);
break;
case MAV_TYPE_GROUND_ROVER:
case MAV_TYPE_SURFACE_BOAT:
vehicle->setFirmwareVersion(3, 0, 0);
vehicle->setFirmwareVersion(3, 5, 0);
break;
case MAV_TYPE_SUBMARINE:
vehicle->setFirmwareVersion(3, 4, 0);
......@@ -813,14 +817,7 @@ QString APMFirmwarePlugin::internalParameterMetaDataFile(Vehicle* vehicle)
if (vehicle->versionCompare(3, 6, 0) >= 0) { // 3.6.0 and higher
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.6.xml");
}
if (vehicle->versionCompare(3, 5, 0) >= 0) { // 3.5.x
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.5.xml");
}
if (vehicle->versionCompare(3, 4, 0) >= 0) { // 3.4.x
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.4.xml");
}
// Up to 3.3.x
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.3.xml");
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.5.xml");
case MAV_TYPE_VTOL_DUOROTOR:
case MAV_TYPE_VTOL_QUADROTOR:
......@@ -830,28 +827,23 @@ QString APMFirmwarePlugin::internalParameterMetaDataFile(Vehicle* vehicle)
case MAV_TYPE_VTOL_RESERVED4:
case MAV_TYPE_VTOL_RESERVED5:
case MAV_TYPE_FIXED_WING:
if (vehicle->versionCompare(3, 8, 0) >= 0) { // 3.8.0 and higher
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.8.xml");
if (vehicle->versionCompare(3, 10, 0) >= 0) {
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.10.xml");
}
if (vehicle->versionCompare(3, 7, 0) >= 0) { // 3.7.x
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.7.xml");
if (vehicle->versionCompare(3, 9, 0) >= 0) {
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.9.xml");
}
if (vehicle->versionCompare(3, 5, 0) >= 0) { // 3.5.x to 3.6.x
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.5.xml");
}
// up to 3.4.x
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.3.xml");
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.8.xml");
case MAV_TYPE_GROUND_ROVER:
case MAV_TYPE_SURFACE_BOAT:
if (vehicle->versionCompare(3, 4, 0) >= 0) { // 3.4.0 and higher
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.4.xml");
if (vehicle->versionCompare(3, 6, 0) >= 0) {
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.6.xml");
}
if (vehicle->versionCompare(3, 2, 0) >= 0) { // 3.2.x to 3.3.x
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.2.xml");
if (vehicle->versionCompare(3, 5, 0) >= 0) {
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.5.xml");
}
// up to 3.1.x
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.0.xml");
return QStringLiteral(":/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.4.xml");
case MAV_TYPE_SUBMARINE:
if (vehicle->versionCompare(3, 6, 0) >= 0) { // 3.5.x
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -41,22 +41,20 @@
<file alias="APMAirframeFactMetaData.xml">../../AutoPilotPlugins/APM/APMAirframeFactMetaData.xml</file>
</qresource>
<qresource prefix="/FirmwarePlugin/APM">
<file alias="APMParameterFactMetaData.Plane.3.3.xml">APMParameterFactMetaData.Plane.3.3.xml</file>
<file alias="APMParameterFactMetaData.Plane.3.5.xml">APMParameterFactMetaData.Plane.3.5.xml</file>
<file alias="APMParameterFactMetaData.Plane.3.7.xml">APMParameterFactMetaData.Plane.3.7.xml</file>
<file alias="APMParameterFactMetaData.Plane.3.8.xml">APMParameterFactMetaData.Plane.3.8.xml</file>
<file alias="APMParameterFactMetaData.Copter.3.3.xml">APMParameterFactMetaData.Copter.3.3.xml</file>
<file alias="APMParameterFactMetaData.Copter.3.4.xml">APMParameterFactMetaData.Copter.3.4.xml</file>
<file alias="APMParameterFactMetaData.Plane.3.9.xml">APMParameterFactMetaData.Plane.3.9.xml</file>
<file alias="APMParameterFactMetaData.Plane.3.10.xml">APMParameterFactMetaData.Plane.3.10.xml</file>
<file alias="APMParameterFactMetaData.Copter.3.5.xml">APMParameterFactMetaData.Copter.3.5.xml</file>
<file alias="APMParameterFactMetaData.Copter.3.6.xml">APMParameterFactMetaData.Copter.3.6.xml</file>
<file alias="APMParameterFactMetaData.Copter.3.7.xml">APMParameterFactMetaData.Copter.3.7.xml</file>
<file alias="APMParameterFactMetaData.Rover.3.0.xml">APMParameterFactMetaData.Rover.3.0.xml</file>
<file alias="APMParameterFactMetaData.Rover.3.2.xml">APMParameterFactMetaData.Rover.3.2.xml</file>
<file alias="APMParameterFactMetaData.Rover.3.4.xml">APMParameterFactMetaData.Rover.3.4.xml</file>
<file alias="APMParameterFactMetaData.Rover.3.5.xml">APMParameterFactMetaData.Rover.3.5.xml</file>
<file alias="APMParameterFactMetaData.Rover.3.6.xml">APMParameterFactMetaData.Rover.3.6.xml</file>
<file alias="APMParameterFactMetaData.Sub.3.4.xml">APMParameterFactMetaData.Sub.3.4.xml</file>
<file alias="APMParameterFactMetaData.Sub.3.5.xml">APMParameterFactMetaData.Sub.3.5.xml</file>
<file alias="APMParameterFactMetaData.Sub.3.6dev.xml">APMParameterFactMetaData.Sub.3.6dev.xml</file>
<file alias="Copter.OfflineEditing.params">Copter3.5.OfflineEditing.params</file>
<file alias="Plane.OfflineEditing.params">Plane3.7.OfflineEditing.params</file>
<file alias="Copter.OfflineEditing.params">Copter3.6.OfflineEditing.params</file>
<file alias="Plane.OfflineEditing.params">Plane3.9.OfflineEditing.params</file>
<file alias="Rover.OfflineEditing.params">Rover3.5.OfflineEditing.params</file>
</qresource>
</RCC>
......@@ -70,84 +70,9 @@ ArduCopterFirmwarePlugin::ArduCopterFirmwarePlugin(void)
supportedFlightModes << APMCopterMode(APMCopterMode::GUIDED_NOGPS,true);
supportedFlightModes << APMCopterMode(APMCopterMode::SAFE_RTL,true);
setSupportedModes(supportedFlightModes);
if (!_remapParamNameIntialized) {
FirmwarePlugin::remapParamNameMap_t& remapV3_4 = _remapParamName[3][4];
remapV3_4["ATC_ANG_RLL_P"] = QStringLiteral("STB_RLL_P");
remapV3_4["ATC_ANG_PIT_P"] = QStringLiteral("STB_PIT_P");
remapV3_4["ATC_ANG_YAW_P"] = QStringLiteral("STB_YAW_P");
remapV3_4["ATC_RAT_RLL_P"] = QStringLiteral("RATE_RLL_P");
remapV3_4["ATC_RAT_RLL_I"] = QStringLiteral("RATE_RLL_I");
remapV3_4["ATC_RAT_RLL_IMAX"] = QStringLiteral("RATE_RLL_IMAX");
remapV3_4["ATC_RAT_RLL_D"] = QStringLiteral("RATE_RLL_D");
remapV3_4["ATC_RAT_RLL_FILT"] = QStringLiteral("RATE_RLL_FILT_HZ");
remapV3_4["ATC_RAT_PIT_P"] = QStringLiteral("RATE_PIT_P");
remapV3_4["ATC_RAT_PIT_I"] = QStringLiteral("RATE_PIT_I");
remapV3_4["ATC_RAT_PIT_IMAX"] = QStringLiteral("RATE_PIT_IMAX");
remapV3_4["ATC_RAT_PIT_D"] = QStringLiteral("RATE_PIT_D");
remapV3_4["ATC_RAT_PIT_FILT"] = QStringLiteral("RATE_PIT_FILT_HZ");
remapV3_4["ATC_RAT_YAW_P"] = QStringLiteral("RATE_YAW_P");
remapV3_4["ATC_RAT_YAW_I"] = QStringLiteral("RATE_YAW_I");
remapV3_4["ATC_RAT_YAW_IMAX"] = QStringLiteral("RATE_YAW_IMAX");
remapV3_4["ATC_RAT_YAW_D"] = QStringLiteral("RATE_YAW_D");
remapV3_4["ATC_RAT_YAW_FILT"] = QStringLiteral("RATE_YAW_FILT_HZ");
FirmwarePlugin::remapParamNameMap_t& remapV3_5 = _remapParamName[3][5];
remapV3_5["SERVO5_FUNCTION"] = QStringLiteral("RC5_FUNCTION");
remapV3_5["SERVO6_FUNCTION"] = QStringLiteral("RC6_FUNCTION");
remapV3_5["SERVO7_FUNCTION"] = QStringLiteral("RC7_FUNCTION");
remapV3_5["SERVO8_FUNCTION"] = QStringLiteral("RC8_FUNCTION");
remapV3_5["SERVO9_FUNCTION"] = QStringLiteral("RC9_FUNCTION");
remapV3_5["SERVO10_FUNCTION"] = QStringLiteral("RC10_FUNCTION");
remapV3_5["SERVO11_FUNCTION"] = QStringLiteral("RC11_FUNCTION");
remapV3_5["SERVO12_FUNCTION"] = QStringLiteral("RC12_FUNCTION");
remapV3_5["SERVO13_FUNCTION"] = QStringLiteral("RC13_FUNCTION");
remapV3_5["SERVO14_FUNCTION"] = QStringLiteral("RC14_FUNCTION");
remapV3_5["SERVO5_MIN"] = QStringLiteral("RC5_MIN");
remapV3_5["SERVO6_MIN"] = QStringLiteral("RC6_MIN");
remapV3_5["SERVO7_MIN"] = QStringLiteral("RC7_MIN");
remapV3_5["SERVO8_MIN"] = QStringLiteral("RC8_MIN");
remapV3_5["SERVO9_MIN"] = QStringLiteral("RC9_MIN");
remapV3_5["SERVO10_MIN"] = QStringLiteral("RC10_MIN");
remapV3_5["SERVO11_MIN"] = QStringLiteral("RC11_MIN");
remapV3_5["SERVO12_MIN"] = QStringLiteral("RC12_MIN");
remapV3_5["SERVO13_MIN"] = QStringLiteral("RC13_MIN");
remapV3_5["SERVO14_MIN"] = QStringLiteral("RC14_MIN");
remapV3_5["SERVO5_MAX"] = QStringLiteral("RC5_MAX");
remapV3_5["SERVO6_MAX"] = QStringLiteral("RC6_MAX");
remapV3_5["SERVO7_MAX"] = QStringLiteral("RC7_MAX");
remapV3_5["SERVO8_MAX"] = QStringLiteral("RC8_MAX");
remapV3_5["SERVO9_MAX"] = QStringLiteral("RC9_MAX");
remapV3_5["SERVO10_MAX"] = QStringLiteral("RC10_MAX");
remapV3_5["SERVO11_MAX"] = QStringLiteral("RC11_MAX");
remapV3_5["SERVO12_MAX"] = QStringLiteral("RC12_MAX");
remapV3_5["SERVO13_MAX"] = QStringLiteral("RC13_MAX");
remapV3_5["SERVO14_MAX"] = QStringLiteral("RC14_MAX");
remapV3_5["SERVO5_REVERSED"] = QStringLiteral("RC5_REVERSED");
remapV3_5["SERVO6_REVERSED"] = QStringLiteral("RC6_REVERSED");
remapV3_5["SERVO7_REVERSED"] = QStringLiteral("RC7_REVERSED");
remapV3_5["SERVO8_REVERSED"] = QStringLiteral("RC8_REVERSED");
remapV3_5["SERVO9_REVERSED"] = QStringLiteral("RC9_REVERSED");
remapV3_5["SERVO10_REVERSED"] = QStringLiteral("RC10_REVERSED");
remapV3_5["SERVO11_REVERSED"] = QStringLiteral("RC11_REVERSED");
remapV3_5["SERVO12_REVERSED"] = QStringLiteral("RC12_REVERSED");
remapV3_5["SERVO13_REVERSED"] = QStringLiteral("RC13_REVERSED");
remapV3_5["SERVO14_REVERSED"] = QStringLiteral("RC14_REVERSED");
remapV3_5["ARMING_VOLT_MIN"] = QStringLiteral("ARMING_MIN_VOLT");
remapV3_5["ARMING_VOLT2_MIN"] = QStringLiteral("ARMING_MIN_VOLT2");
FirmwarePlugin::remapParamNameMap_t& remapV3_6 = _remapParamName[3][6];
remapV3_6["BATT_AMP_PERVLT"] = QStringLiteral("BATT_AMP_PERVOL");
......
......@@ -64,55 +64,6 @@ ArduPlaneFirmwarePlugin::ArduPlaneFirmwarePlugin(void)
setSupportedModes(supportedFlightModes);
if (!_remapParamNameIntialized) {
FirmwarePlugin::remapParamNameMap_t& remapV3_8 = _remapParamName[3][8];
remapV3_8["SERVO5_FUNCTION"] = QStringLiteral("RC5_FUNCTION");
remapV3_8["SERVO6_FUNCTION"] = QStringLiteral("RC6_FUNCTION");
remapV3_8["SERVO7_FUNCTION"] = QStringLiteral("RC7_FUNCTION");
remapV3_8["SERVO8_FUNCTION"] = QStringLiteral("RC8_FUNCTION");
remapV3_8["SERVO9_FUNCTION"] = QStringLiteral("RC9_FUNCTION");
remapV3_8["SERVO10_FUNCTION"] = QStringLiteral("RC10_FUNCTION");
remapV3_8["SERVO11_FUNCTION"] = QStringLiteral("RC11_FUNCTION");
remapV3_8["SERVO12_FUNCTION"] = QStringLiteral("RC12_FUNCTION");
remapV3_8["SERVO13_FUNCTION"] = QStringLiteral("RC13_FUNCTION");
remapV3_8["SERVO14_FUNCTION"] = QStringLiteral("RC14_FUNCTION");
remapV3_8["SERVO5_MIN"] = QStringLiteral("RC5_MIN");
remapV3_8["SERVO6_MIN"] = QStringLiteral("RC6_MIN");
remapV3_8["SERVO7_MIN"] = QStringLiteral("RC7_MIN");
remapV3_8["SERVO8_MIN"] = QStringLiteral("RC8_MIN");
remapV3_8["SERVO9_MIN"] = QStringLiteral("RC9_MIN");
remapV3_8["SERVO10_MIN"] = QStringLiteral("RC10_MIN");
remapV3_8["SERVO11_MIN"] = QStringLiteral("RC11_MIN");
remapV3_8["SERVO12_MIN"] = QStringLiteral("RC12_MIN");
remapV3_8["SERVO13_MIN"] = QStringLiteral("RC13_MIN");
remapV3_8["SERVO14_MIN"] = QStringLiteral("RC14_MIN");
remapV3_8["SERVO5_MAX"] = QStringLiteral("RC5_MAX");
remapV3_8["SERVO6_MAX"] = QStringLiteral("RC6_MAX");
remapV3_8["SERVO7_MAX"] = QStringLiteral("RC7_MAX");
remapV3_8["SERVO8_MAX"] = QStringLiteral("RC8_MAX");
remapV3_8["SERVO9_MAX"] = QStringLiteral("RC9_MAX");
remapV3_8["SERVO10_MAX"] = QStringLiteral("RC10_MAX");
remapV3_8["SERVO11_MAX"] = QStringLiteral("RC11_MAX");
remapV3_8["SERVO12_MAX"] = QStringLiteral("RC12_MAX");
remapV3_8["SERVO13_MAX"] = QStringLiteral("RC13_MAX");
remapV3_8["SERVO14_MAX"] = QStringLiteral("RC14_MAX");
remapV3_8["SERVO5_REVERSED"] = QStringLiteral("RC5_REVERSED");
remapV3_8["SERVO6_REVERSED"] = QStringLiteral("RC6_REVERSED");
remapV3_8["SERVO7_REVERSED"] = QStringLiteral("RC7_REVERSED");
remapV3_8["SERVO8_REVERSED"] = QStringLiteral("RC8_REVERSED");
remapV3_8["SERVO9_REVERSED"] = QStringLiteral("RC9_REVERSED");
remapV3_8["SERVO10_REVERSED"] = QStringLiteral("RC10_REVERSED");
remapV3_8["SERVO11_REVERSED"] = QStringLiteral("RC11_REVERSED");
remapV3_8["SERVO12_REVERSED"] = QStringLiteral("RC12_REVERSED");
remapV3_8["SERVO13_REVERSED"] = QStringLiteral("RC13_REVERSED");
remapV3_8["SERVO14_REVERSED"] = QStringLiteral("RC14_REVERSED");
remapV3_8["ARMING_VOLT_MIN"] = QStringLiteral("ARMING_MIN_VOLT");
remapV3_8["ARMING_VOLT2_MIN"] = QStringLiteral("ARMING_MIN_VOLT2");
FirmwarePlugin::remapParamNameMap_t& remapV3_10 = _remapParamName[3][10];
remapV3_10["BATT_ARM_VOLT"] = QStringLiteral("ARMING_VOLT_MIN");
......
......@@ -51,55 +51,6 @@ ArduRoverFirmwarePlugin::ArduRoverFirmwarePlugin(void)
setSupportedModes(supportedFlightModes);
if (!_remapParamNameIntialized) {
FirmwarePlugin::remapParamNameMap_t& remapV3_2 = _remapParamName[3][2];
remapV3_2["SERVO5_FUNCTION"] = QStringLiteral("RC5_FUNCTION");
remapV3_2["SERVO6_FUNCTION"] = QStringLiteral("RC6_FUNCTION");
remapV3_2["SERVO7_FUNCTION"] = QStringLiteral("RC7_FUNCTION");
remapV3_2["SERVO8_FUNCTION"] = QStringLiteral("RC8_FUNCTION");
remapV3_2["SERVO9_FUNCTION"] = QStringLiteral("RC9_FUNCTION");
remapV3_2["SERVO10_FUNCTION"] = QStringLiteral("RC10_FUNCTION");
remapV3_2["SERVO11_FUNCTION"] = QStringLiteral("RC11_FUNCTION");
remapV3_2["SERVO12_FUNCTION"] = QStringLiteral("RC12_FUNCTION");
remapV3_2["SERVO13_FUNCTION"] = QStringLiteral("RC13_FUNCTION");
remapV3_2["SERVO14_FUNCTION"] = QStringLiteral("RC14_FUNCTION");
remapV3_2["SERVO5_MIN"] = QStringLiteral("RC5_MIN");
remapV3_2["SERVO6_MIN"] = QStringLiteral("RC6_MIN");
remapV3_2["SERVO7_MIN"] = QStringLiteral("RC7_MIN");
remapV3_2["SERVO8_MIN"] = QStringLiteral("RC8_MIN");
remapV3_2["SERVO9_MIN"] = QStringLiteral("RC9_MIN");
remapV3_2["SERVO10_MIN"] = QStringLiteral("RC10_MIN");
remapV3_2["SERVO11_MIN"] = QStringLiteral("RC11_MIN");
remapV3_2["SERVO12_MIN"] = QStringLiteral("RC12_MIN");
remapV3_2["SERVO13_MIN"] = QStringLiteral("RC13_MIN");
remapV3_2["SERVO14_MIN"] = QStringLiteral("RC14_MIN");
remapV3_2["SERVO5_MAX"] = QStringLiteral("RC5_MAX");
remapV3_2["SERVO6_MAX"] = QStringLiteral("RC6_MAX");
remapV3_2["SERVO7_MAX"] = QStringLiteral("RC7_MAX");
remapV3_2["SERVO8_MAX"] = QStringLiteral("RC8_MAX");
remapV3_2["SERVO9_MAX"] = QStringLiteral("RC9_MAX");
remapV3_2["SERVO10_MAX"] = QStringLiteral("RC10_MAX");
remapV3_2["SERVO11_MAX"] = QStringLiteral("RC11_MAX");
remapV3_2["SERVO12_MAX"] = QStringLiteral("RC12_MAX");
remapV3_2["SERVO13_MAX"] = QStringLiteral("RC13_MAX");
remapV3_2["SERVO14_MAX"] = QStringLiteral("RC14_MAX");
remapV3_2["SERVO5_REVERSED"] = QStringLiteral("RC5_REVERSED");
remapV3_2["SERVO6_REVERSED"] = QStringLiteral("RC6_REVERSED");
remapV3_2["SERVO7_REVERSED"] = QStringLiteral("RC7_REVERSED");
remapV3_2["SERVO8_REVERSED"] = QStringLiteral("RC8_REVERSED");
remapV3_2["SERVO9_REVERSED"] = QStringLiteral("RC9_REVERSED");
remapV3_2["SERVO10_REVERSED"] = QStringLiteral("RC10_REVERSED");
remapV3_2["SERVO11_REVERSED"] = QStringLiteral("RC11_REVERSED");
remapV3_2["SERVO12_REVERSED"] = QStringLiteral("RC12_REVERSED");
remapV3_2["SERVO13_REVERSED"] = QStringLiteral("RC13_REVERSED");
remapV3_2["SERVO14_REVERSED"] = QStringLiteral("RC14_REVERSED");
remapV3_2["ARMING_VOLT_MIN"] = QStringLiteral("ARMING_MIN_VOLT");
remapV3_2["ARMING_VOLT2_MIN"] = QStringLiteral("ARMING_MIN_VOLT2");
FirmwarePlugin::remapParamNameMap_t& remapV3_5 = _remapParamName[3][5];
remapV3_5["BATT_ARM_VOLT"] = QStringLiteral("ARMING_VOLT_MIN");
......
......@@ -47,10 +47,11 @@ public:
// Overrides from FirmwarePlugin
QString pauseFlightMode (void) const override { return QString("Hold"); }
void guidedModeChangeAltitude (Vehicle* vehicle, double altitudeChange) final;
int remapParamNameHigestMinorVersionNumber (int majorVersionNumber) const final;
const FirmwarePlugin::remapParamNameMajorVersionMap_t& paramNameRemapMajorVersionMap(void) const final { return _remapParamName; }
bool supportsNegativeThrust(void) final;
void guidedModeChangeAltitude (Vehicle* vehicle, double altitudeChange) override;
int remapParamNameHigestMinorVersionNumber (int majorVersionNumber) const override;
const FirmwarePlugin::remapParamNameMajorVersionMap_t& paramNameRemapMajorVersionMap(void) const override { return _remapParamName; }
bool supportsNegativeThrust (void) override;
QString offlineEditingParamFile (Vehicle* vehicle) override { Q_UNUSED(vehicle); return QStringLiteral(":/FirmwarePlugin/APM/Rover.OfflineEditing.params"); }
private:
static bool _remapParamNameIntialized;
......
# Args: [ArduCopter|ArduPlane] [Copter.3.7|...]
cd ~/repos/ardupilot
rm apm.pdef.xml
./Tools/autotest/param_metadata/param_parse.py --vehicle ArduCopter
cp apm.pdef.xml ~/repos/qgroundcontrol/src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.7.xml
rm -f apm.pdef.xml
./Tools/autotest/param_metadata/param_parse.py --vehicle $1
cp apm.pdef.xml ~/repos/qgroundcontrol/src/FirmwarePlugin/APM/APMParameterFactMetaData.$2.xml
rm apm.pdef.xml
cd ~/repos/qgroundcontrol/src/FirmwarePlugin/APM
......@@ -2,68 +2,72 @@
#
# Stack: ArduPilot
# Vehicle: Multi-Rotor
# Version: 3.5.0 rc
# Git Revision: efab409b
# Version: 3.6.8
# Git Revision: 2f40967
#
# Vehicle-Id Component-Id Name Value Type
1 1 ACCEL_Z_D 0.000000000000000000 9
1 1 ACCEL_Z_FF 0.000000000000000000 9
1 1 ACCEL_Z_FILT 20.000000000000000000 9
1 1 ACCEL_Z_I 1.000000000000000000 9
1 1 ACCEL_Z_IMAX 800.000000000000000000 9
1 1 ACCEL_Z_P 0.500000000000000000 9
1 1 ACRO_BAL_PITCH 1.000000000000000000 9
1 1 ACRO_BAL_ROLL 1.000000000000000000 9
1 1 ACRO_RP_EXPO 0.300000011920928955 9
1 1 ACRO_RP_P 4.500000000000000000 9
1 1 ACRO_THR_MID 0.000000000000000000 9
1 1 ACRO_TRAINER 2 2
1 1 ACRO_YAW_P 3.000000000000000000 9
1 1 ACRO_YAW_P 4.500000000000000000 9
1 1 ACRO_Y_EXPO 0.000000000000000000 9
1 1 ADSB_ENABLE 0 2
1 1 AHRS_COMP_BETA 0.100000001490116119 9
1 1 AHRS_CUSTOM_PIT 0.000000000000000000 9
1 1 AHRS_CUSTOM_ROLL 0.000000000000000000 9
1 1 AHRS_CUSTOM_YAW 0.000000000000000000 9
1 1 AHRS_EKF_TYPE 2 2
1 1 AHRS_GPS_GAIN 1.000000000000000000 9
1 1 AHRS_GPS_MINSATS 6 2
1 1 AHRS_GPS_USE 1 2
1 1 AHRS_ORIENTATION 0 2
1 1 AHRS_RP_P 0.200000002980232239 9
1 1 AHRS_TRIM_X -0.005487891845405102 9
1 1 AHRS_TRIM_Y 0.009387995116412640 9
1 1 AHRS_TRIM_X -0.002736995229497552 9
1 1 AHRS_TRIM_Y -0.002316886559128761 9
1 1 AHRS_TRIM_Z 0.000000000000000000 9
1 1 AHRS_WIND_MAX 0 2
1 1 AHRS_YAW_P 0.200000002980232239 9
1 1 ANGLE_MAX 3000 4
1 1 ANGLE_MAX 4500 4
1 1 ARMING_ACCTHRESH 0.750000000000000000 9
1 1 ARMING_CHECK 1 4
1 1 ARMING_RUDDER 2 2
1 1 ARMING_VOLT2_MIN 0.000000000000000000 9
1 1 ARMING_VOLT_MIN 0.000000000000000000 9
1 1 ATC_ACCEL_P_MAX 110000.000000000000000000 9
1 1 ATC_ACCEL_R_MAX 110000.000000000000000000 9
1 1 ATC_ACCEL_Y_MAX 18000.000000000000000000 9
1 1 ATC_ACCEL_Y_MAX 27000.000000000000000000 9
1 1 ATC_ANGLE_BOOST 1 2
1 1 ATC_ANG_LIM_TC 1.000000000000000000 9
1 1 ATC_ANG_PIT_P 11.250000000000000000 9
1 1 ATC_ANG_RLL_P 11.250000000000000000 9
1 1 ATC_ANG_YAW_P 6.000000000000000000 9
1 1 ATC_ANG_PIT_P 4.500000000000000000 9
1 1 ATC_ANG_RLL_P 4.500000000000000000 9
1 1 ATC_ANG_YAW_P 4.500000000000000000 9
1 1 ATC_INPUT_TC 0.150000005960464478 9
1 1 ATC_RATE_FF_ENAB 1 2
1 1 ATC_RAT_PIT_D 0.008325000293552876 9
1 1 ATC_RATE_P_MAX 0.000000000000000000 9
1 1 ATC_RATE_R_MAX 0.000000000000000000 9
1 1 ATC_RATE_Y_MAX 0.000000000000000000 9
1 1 ATC_RAT_PIT_D 0.003599999938160181 9
1 1 ATC_RAT_PIT_FF 0.000000000000000000 9
1 1 ATC_RAT_PIT_FILT 20.000000000000000000 9
1 1 ATC_RAT_PIT_I 0.126000002026557922 9
1 1 ATC_RAT_PIT_IMAX 0.222222223877906799 9
1 1 ATC_RAT_PIT_P 0.126000002026557922 9
1 1 ATC_RAT_RLL_D 0.011249999515712261 9
1 1 ATC_RAT_PIT_I 0.090000003576278687 9
1 1 ATC_RAT_PIT_IMAX 0.500000000000000000 9
1 1 ATC_RAT_PIT_P 0.135000005364418030 9
1 1 ATC_RAT_RLL_D 0.003599999938160181 9
1 1 ATC_RAT_RLL_FF 0.000000000000000000 9
1 1 ATC_RAT_RLL_FILT 20.000000000000000000 9
1 1 ATC_RAT_RLL_I 0.182249993085861206 9
1 1 ATC_RAT_RLL_IMAX 0.222222223877906799 9
1 1 ATC_RAT_RLL_P 0.182249993085861206 9
1 1 ATC_RAT_YAW_D 0.003600000170990825 9
1 1 ATC_RAT_RLL_I 0.090000003576278687 9
1 1 ATC_RAT_RLL_IMAX 0.500000000000000000 9
1 1 ATC_RAT_RLL_P 0.135000005364418030 9
1 1 ATC_RAT_YAW_D 0.000000000000000000 9
1 1 ATC_RAT_YAW_FF 0.000000000000000000 9
1 1 ATC_RAT_YAW_FILT 5.000000000000000000 9
1 1 ATC_RAT_YAW_I 0.035999998450279236 9
1 1 ATC_RAT_YAW_IMAX 0.222000002861022949 9
1 1 ATC_RAT_YAW_P 0.359999984502792358 9
1 1 ATC_SLEW_YAW 1000.000000000000000000 9
1 1 ATC_RAT_YAW_FILT 2.500000000000000000 9
1 1 ATC_RAT_YAW_I 0.017999999225139618 9
1 1 ATC_RAT_YAW_IMAX 0.500000000000000000 9
1 1 ATC_RAT_YAW_P 0.180000007152557373 9
1 1 ATC_SLEW_YAW 6000.000000000000000000 9
1 1 ATC_THR_MIX_MAN 0.500000000000000000 9
1 1 ATC_THR_MIX_MAX 0.500000000000000000 9
1 1 ATC_THR_MIX_MIN 0.100000001490116119 9
......@@ -72,43 +76,46 @@
1 1 AUTOTUNE_MIN_D 0.001000000047497451 9
1 1 AVD_ENABLE 0 2
1 1 AVOID_ANGLE_MAX 1000 4
1 1 AVOID_DIST_MAX 10.000000000000000000 9
1 1 AVOID_BEHAVE 0 2
1 1 AVOID_DIST_MAX 5.000000000000000000 9
1 1 AVOID_ENABLE 3 2
1 1 AVOID_MARGIN 2.000000000000000000 9
1 1 BATT2_AMP_OFFSET 0.000000000000000000 9
1 1 BATT2_AMP_PERVOL 17.000000000000000000 9
1 1 BATT2_CAPACITY 3300 6
1 1 BATT2_CURR_PIN 3 2
1 1 BATT2_MONITOR 0 2
1 1 BATT2_SERIAL_NUM -1 6
1 1 BATT2_VOLT_MULT 10.100000381469726563 9
1 1 BATT2_VOLT_PIN 2 2
1 1 BATT_AMP_OFFSET 0.000000000000000000 9
1 1 BATT_AMP_PERVOLT 17.000000000000000000 9
1 1 BATT_CAPACITY 5100 6
1 1 BATT_CURR_PIN 3 2
1 1 BATT_AMP_PERVLT 17.000000000000000000 9
1 1 BATT_ARM_MAH 0 6
1 1 BATT_ARM_VOLT 0.000000000000000000 9