diff --git a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.5.xml b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.5.xml index 5829ed8..9e439ca 100644 --- a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.5.xml +++ b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.5.xml @@ -1336,6 +1336,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1358,6 +1359,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1380,6 +1382,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1402,6 +1405,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1424,6 +1428,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1446,6 +1451,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL diff --git a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.7.xml b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.7.xml index 07622b6..2610b02 100644 --- a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.7.xml +++ b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.7.xml @@ -1094,6 +1094,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1116,6 +1117,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1138,6 +1140,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1160,6 +1163,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1182,6 +1186,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1204,6 +1209,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL diff --git a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.8.xml b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.8.xml index 91f87f9..db7fe3b 100644 --- a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.8.xml +++ b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.8.xml @@ -1013,6 +1013,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1035,6 +1036,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1057,6 +1059,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1079,6 +1082,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1101,6 +1105,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1123,6 +1128,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL diff --git a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.2.xml b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.2.xml index 91f87f9..db7fe3b 100644 --- a/src/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.2.xml +++ b/src/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.2.xml @@ -1013,6 +1013,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1035,6 +1036,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1057,6 +1059,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1079,6 +1082,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1101,6 +1105,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL @@ -1123,6 +1128,7 @@ Throw Avoid_ADSB Guided_NoGPS +SafeRTL diff --git a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc index 2d05daa..b32d49f 100644 --- a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc +++ b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc @@ -41,6 +41,8 @@ APMCopterMode::APMCopterMode(uint32_t mode, bool settable) : enumToString.insert(THROW, "Throw"); enumToString.insert(AVOID_ADSB,"Avoid ADSB"); enumToString.insert(GUIDED_NOGPS,"Guided No GPS"); + enumToString.insert(SAFE_RTL,"Safe RTL"); + setEnumToStringMapping(enumToString); } @@ -66,6 +68,8 @@ ArduCopterFirmwarePlugin::ArduCopterFirmwarePlugin(void) supportedFlightModes << APMCopterMode(APMCopterMode::THROW ,true); supportedFlightModes << APMCopterMode(APMCopterMode::AVOID_ADSB,true); supportedFlightModes << APMCopterMode(APMCopterMode::GUIDED_NOGPS,true); + supportedFlightModes << APMCopterMode(APMCopterMode::SAFE_RTL,true); + setSupportedModes(supportedFlightModes); diff --git a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h index d517660..ce1d9c8 100644 --- a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h +++ b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h @@ -41,8 +41,9 @@ public: THROW = 18, AVOID_ADSB = 19, GUIDED_NOGPS= 20, + SAFE_RTL = 21, //Safe Return to Launch }; - static const int modeCount = 21; + static const int modeCount = 22; APMCopterMode(uint32_t mode, bool settable); };