Commit 6300fc4d authored by Luis Vale Gonçalves's avatar Luis Vale Gonçalves

Initial support for ArduCopter SafeRTL

parent 432971ac
...@@ -1336,6 +1336,7 @@ ...@@ -1336,6 +1336,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 2" name="ArduCopter:FLTMODE2" documentation="Flight mode when Channel 5 pwm is &gt;1230, &lt;= 1360" user="Standard"> <param humanName="Flight Mode 2" name="ArduCopter:FLTMODE2" documentation="Flight mode when Channel 5 pwm is &gt;1230, &lt;= 1360" user="Standard">
...@@ -1358,6 +1359,7 @@ ...@@ -1358,6 +1359,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 3" name="ArduCopter:FLTMODE3" documentation="Flight mode when Channel 5 pwm is &gt;1360, &lt;= 1490" user="Standard"> <param humanName="Flight Mode 3" name="ArduCopter:FLTMODE3" documentation="Flight mode when Channel 5 pwm is &gt;1360, &lt;= 1490" user="Standard">
...@@ -1380,6 +1382,7 @@ ...@@ -1380,6 +1382,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 4" name="ArduCopter:FLTMODE4" documentation="Flight mode when Channel 5 pwm is &gt;1490, &lt;= 1620" user="Standard"> <param humanName="Flight Mode 4" name="ArduCopter:FLTMODE4" documentation="Flight mode when Channel 5 pwm is &gt;1490, &lt;= 1620" user="Standard">
...@@ -1402,6 +1405,7 @@ ...@@ -1402,6 +1405,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 5" name="ArduCopter:FLTMODE5" documentation="Flight mode when Channel 5 pwm is &gt;1620, &lt;= 1749" user="Standard"> <param humanName="Flight Mode 5" name="ArduCopter:FLTMODE5" documentation="Flight mode when Channel 5 pwm is &gt;1620, &lt;= 1749" user="Standard">
...@@ -1424,6 +1428,7 @@ ...@@ -1424,6 +1428,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 6" name="ArduCopter:FLTMODE6" documentation="Flight mode when Channel 5 pwm is &gt;=1750" user="Standard"> <param humanName="Flight Mode 6" name="ArduCopter:FLTMODE6" documentation="Flight mode when Channel 5 pwm is &gt;=1750" user="Standard">
...@@ -1446,6 +1451,7 @@ ...@@ -1446,6 +1451,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Simple mode bitmask" name="ArduCopter:SIMPLE" documentation="Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode)" user="Advanced"> <param humanName="Simple mode bitmask" name="ArduCopter:SIMPLE" documentation="Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode)" user="Advanced">
......
...@@ -1094,6 +1094,7 @@ ...@@ -1094,6 +1094,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 2" name="ArduCopter:FLTMODE2" documentation="Flight mode when Channel 5 pwm is &gt;1230, &lt;= 1360" user="Standard"> <param humanName="Flight Mode 2" name="ArduCopter:FLTMODE2" documentation="Flight mode when Channel 5 pwm is &gt;1230, &lt;= 1360" user="Standard">
...@@ -1116,6 +1117,7 @@ ...@@ -1116,6 +1117,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 3" name="ArduCopter:FLTMODE3" documentation="Flight mode when Channel 5 pwm is &gt;1360, &lt;= 1490" user="Standard"> <param humanName="Flight Mode 3" name="ArduCopter:FLTMODE3" documentation="Flight mode when Channel 5 pwm is &gt;1360, &lt;= 1490" user="Standard">
...@@ -1138,6 +1140,7 @@ ...@@ -1138,6 +1140,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 4" name="ArduCopter:FLTMODE4" documentation="Flight mode when Channel 5 pwm is &gt;1490, &lt;= 1620" user="Standard"> <param humanName="Flight Mode 4" name="ArduCopter:FLTMODE4" documentation="Flight mode when Channel 5 pwm is &gt;1490, &lt;= 1620" user="Standard">
...@@ -1160,6 +1163,7 @@ ...@@ -1160,6 +1163,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 5" name="ArduCopter:FLTMODE5" documentation="Flight mode when Channel 5 pwm is &gt;1620, &lt;= 1749" user="Standard"> <param humanName="Flight Mode 5" name="ArduCopter:FLTMODE5" documentation="Flight mode when Channel 5 pwm is &gt;1620, &lt;= 1749" user="Standard">
...@@ -1182,6 +1186,7 @@ ...@@ -1182,6 +1186,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 6" name="ArduCopter:FLTMODE6" documentation="Flight mode when Channel 5 pwm is &gt;=1750" user="Standard"> <param humanName="Flight Mode 6" name="ArduCopter:FLTMODE6" documentation="Flight mode when Channel 5 pwm is &gt;=1750" user="Standard">
...@@ -1204,6 +1209,7 @@ ...@@ -1204,6 +1209,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Simple mode bitmask" name="ArduCopter:SIMPLE" documentation="Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode)" user="Advanced"> <param humanName="Simple mode bitmask" name="ArduCopter:SIMPLE" documentation="Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode)" user="Advanced">
......
...@@ -1013,6 +1013,7 @@ ...@@ -1013,6 +1013,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 2" name="ArduCopter:FLTMODE2" documentation="Flight mode when Channel 5 pwm is &gt;1230, &lt;= 1360" user="Standard"> <param humanName="Flight Mode 2" name="ArduCopter:FLTMODE2" documentation="Flight mode when Channel 5 pwm is &gt;1230, &lt;= 1360" user="Standard">
...@@ -1035,6 +1036,7 @@ ...@@ -1035,6 +1036,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 3" name="ArduCopter:FLTMODE3" documentation="Flight mode when Channel 5 pwm is &gt;1360, &lt;= 1490" user="Standard"> <param humanName="Flight Mode 3" name="ArduCopter:FLTMODE3" documentation="Flight mode when Channel 5 pwm is &gt;1360, &lt;= 1490" user="Standard">
...@@ -1057,6 +1059,7 @@ ...@@ -1057,6 +1059,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 4" name="ArduCopter:FLTMODE4" documentation="Flight mode when Channel 5 pwm is &gt;1490, &lt;= 1620" user="Standard"> <param humanName="Flight Mode 4" name="ArduCopter:FLTMODE4" documentation="Flight mode when Channel 5 pwm is &gt;1490, &lt;= 1620" user="Standard">
...@@ -1079,6 +1082,7 @@ ...@@ -1079,6 +1082,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 5" name="ArduCopter:FLTMODE5" documentation="Flight mode when Channel 5 pwm is &gt;1620, &lt;= 1749" user="Standard"> <param humanName="Flight Mode 5" name="ArduCopter:FLTMODE5" documentation="Flight mode when Channel 5 pwm is &gt;1620, &lt;= 1749" user="Standard">
...@@ -1101,6 +1105,7 @@ ...@@ -1101,6 +1105,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 6" name="ArduCopter:FLTMODE6" documentation="Flight mode when Channel 5 pwm is &gt;=1750" user="Standard"> <param humanName="Flight Mode 6" name="ArduCopter:FLTMODE6" documentation="Flight mode when Channel 5 pwm is &gt;=1750" user="Standard">
...@@ -1123,6 +1128,7 @@ ...@@ -1123,6 +1128,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Simple mode bitmask" name="ArduCopter:SIMPLE" documentation="Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode)" user="Advanced"> <param humanName="Simple mode bitmask" name="ArduCopter:SIMPLE" documentation="Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode)" user="Advanced">
......
...@@ -1013,6 +1013,7 @@ ...@@ -1013,6 +1013,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 2" name="ArduCopter:FLTMODE2" documentation="Flight mode when Channel 5 pwm is &gt;1230, &lt;= 1360" user="Standard"> <param humanName="Flight Mode 2" name="ArduCopter:FLTMODE2" documentation="Flight mode when Channel 5 pwm is &gt;1230, &lt;= 1360" user="Standard">
...@@ -1035,6 +1036,7 @@ ...@@ -1035,6 +1036,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 3" name="ArduCopter:FLTMODE3" documentation="Flight mode when Channel 5 pwm is &gt;1360, &lt;= 1490" user="Standard"> <param humanName="Flight Mode 3" name="ArduCopter:FLTMODE3" documentation="Flight mode when Channel 5 pwm is &gt;1360, &lt;= 1490" user="Standard">
...@@ -1057,6 +1059,7 @@ ...@@ -1057,6 +1059,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 4" name="ArduCopter:FLTMODE4" documentation="Flight mode when Channel 5 pwm is &gt;1490, &lt;= 1620" user="Standard"> <param humanName="Flight Mode 4" name="ArduCopter:FLTMODE4" documentation="Flight mode when Channel 5 pwm is &gt;1490, &lt;= 1620" user="Standard">
...@@ -1079,6 +1082,7 @@ ...@@ -1079,6 +1082,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 5" name="ArduCopter:FLTMODE5" documentation="Flight mode when Channel 5 pwm is &gt;1620, &lt;= 1749" user="Standard"> <param humanName="Flight Mode 5" name="ArduCopter:FLTMODE5" documentation="Flight mode when Channel 5 pwm is &gt;1620, &lt;= 1749" user="Standard">
...@@ -1101,6 +1105,7 @@ ...@@ -1101,6 +1105,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Flight Mode 6" name="ArduCopter:FLTMODE6" documentation="Flight mode when Channel 5 pwm is &gt;=1750" user="Standard"> <param humanName="Flight Mode 6" name="ArduCopter:FLTMODE6" documentation="Flight mode when Channel 5 pwm is &gt;=1750" user="Standard">
...@@ -1123,6 +1128,7 @@ ...@@ -1123,6 +1128,7 @@
<value code="18">Throw</value> <value code="18">Throw</value>
<value code="19">Avoid_ADSB</value> <value code="19">Avoid_ADSB</value>
<value code="20">Guided_NoGPS</value> <value code="20">Guided_NoGPS</value>
<value code="21">SafeRTL</value>
</values> </values>
</param> </param>
<param humanName="Simple mode bitmask" name="ArduCopter:SIMPLE" documentation="Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode)" user="Advanced"> <param humanName="Simple mode bitmask" name="ArduCopter:SIMPLE" documentation="Bitmask which holds which flight modes use simple heading mode (eg bit 0 = 1 means Flight Mode 0 uses simple mode)" user="Advanced">
......
...@@ -41,6 +41,8 @@ APMCopterMode::APMCopterMode(uint32_t mode, bool settable) : ...@@ -41,6 +41,8 @@ APMCopterMode::APMCopterMode(uint32_t mode, bool settable) :
enumToString.insert(THROW, "Throw"); enumToString.insert(THROW, "Throw");
enumToString.insert(AVOID_ADSB,"Avoid ADSB"); enumToString.insert(AVOID_ADSB,"Avoid ADSB");
enumToString.insert(GUIDED_NOGPS,"Guided No GPS"); enumToString.insert(GUIDED_NOGPS,"Guided No GPS");
enumToString.insert(SMART_RTL,"Smart RTL");
setEnumToStringMapping(enumToString); setEnumToStringMapping(enumToString);
} }
...@@ -66,6 +68,8 @@ ArduCopterFirmwarePlugin::ArduCopterFirmwarePlugin(void) ...@@ -66,6 +68,8 @@ ArduCopterFirmwarePlugin::ArduCopterFirmwarePlugin(void)
supportedFlightModes << APMCopterMode(APMCopterMode::THROW ,true); supportedFlightModes << APMCopterMode(APMCopterMode::THROW ,true);
supportedFlightModes << APMCopterMode(APMCopterMode::AVOID_ADSB,true); supportedFlightModes << APMCopterMode(APMCopterMode::AVOID_ADSB,true);
supportedFlightModes << APMCopterMode(APMCopterMode::GUIDED_NOGPS,true); supportedFlightModes << APMCopterMode(APMCopterMode::GUIDED_NOGPS,true);
supportedFlightModes << APMCopterMode(APMCopterMode::SMART_RTL,true);
setSupportedModes(supportedFlightModes); setSupportedModes(supportedFlightModes);
......
...@@ -41,8 +41,9 @@ public: ...@@ -41,8 +41,9 @@ public:
THROW = 18, THROW = 18,
AVOID_ADSB = 19, AVOID_ADSB = 19,
GUIDED_NOGPS= 20, 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); APMCopterMode(uint32_t mode, bool settable);
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment