From 6300fc4d370ee58a9ef0af62df274baa56513ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Vale=20Gonc=CC=A7alves?= Date: Thu, 31 Aug 2017 19:19:55 +0100 Subject: [PATCH 1/3] Initial support for ArduCopter SafeRTL --- src/FirmwarePlugin/APM/APMParameterFactMetaData.Copter.3.5.xml | 6 ++++++ src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.7.xml | 6 ++++++ src/FirmwarePlugin/APM/APMParameterFactMetaData.Plane.3.8.xml | 6 ++++++ src/FirmwarePlugin/APM/APMParameterFactMetaData.Rover.3.2.xml | 6 ++++++ src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc | 4 ++++ src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h | 3 ++- 6 files changed, 30 insertions(+), 1 deletion(-) 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 9a8fb89..3d9b9c5 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(SMART_RTL,"Smart 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::SMART_RTL,true); + setSupportedModes(supportedFlightModes); diff --git a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h index e21d4f6..7446236 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, + SMART_RTL = 21, //Smart Return to Launch }; - static const int modeCount = 21; + static const int modeCount = 22; APMCopterMode(uint32_t mode, bool settable); }; From 598d1ef65320b9f28ce75c091b61335667fe977b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Vale=20Gonc=CC=A7alves?= Date: Thu, 31 Aug 2017 21:19:04 +0100 Subject: [PATCH 2/3] Safe not Smart small change --- src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc index 3d9b9c5..e842d50 100644 --- a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc +++ b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc @@ -41,7 +41,7 @@ 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(SMART_RTL,"Smart RTL"); + enumToString.insert(SAFE_RTL,"Safe RTL"); setEnumToStringMapping(enumToString); @@ -68,7 +68,7 @@ ArduCopterFirmwarePlugin::ArduCopterFirmwarePlugin(void) supportedFlightModes << APMCopterMode(APMCopterMode::THROW ,true); supportedFlightModes << APMCopterMode(APMCopterMode::AVOID_ADSB,true); supportedFlightModes << APMCopterMode(APMCopterMode::GUIDED_NOGPS,true); - supportedFlightModes << APMCopterMode(APMCopterMode::SMART_RTL,true); + supportedFlightModes << APMCopterMode(APMCopterMode::SAFE_RTL,true); From ae0caa8f21b38f3236ef8225976f14596fb4aa72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Vale=20Gonc=CC=A7alves?= Date: Thu, 31 Aug 2017 21:19:27 +0100 Subject: [PATCH 3/3] Safe not Smart --- src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h index 7446236..4182fe8 100644 --- a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h +++ b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h @@ -41,7 +41,7 @@ public: THROW = 18, AVOID_ADSB = 19, GUIDED_NOGPS= 20, - SMART_RTL = 21, //Smart Return to Launch + SAFE_RTL = 21, //Safe Return to Launch }; static const int modeCount = 22;