diff --git a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc index e5ba76c473292b28e317c23e6a08263d68407f61..7275a916a9134d53a300b07122572bf7a96f0378 100644 --- a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc +++ b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.cc @@ -23,50 +23,56 @@ APMCopterMode::APMCopterMode(uint32_t mode, bool settable) : APMCustomMode(mode, settable) { setEnumToStringMapping({ - {STABILIZE, "Stabilize"}, - {ACRO, "Acro"}, - {ALT_HOLD, "Altitude Hold"}, - {AUTO, "Auto"}, - {GUIDED, "Guided"}, - {LOITER, "Loiter"}, - {RTL, "RTL"}, - {CIRCLE, "Circle"}, - {LAND, "Land"}, - {DRIFT, "Drift"}, - {SPORT, "Sport"}, - {FLIP, "Flip"}, - {AUTOTUNE, "Autotune"}, - {POS_HOLD, "Position Hold"}, - {BRAKE, "Brake"}, - {THROW, "Throw"}, - {AVOID_ADSB, "Avoid ADSB"}, - {GUIDED_NOGPS, "Guided No GPS"}, - {SAFE_RTL, "Smart RTL"}, + { STABILIZE, "Stabilize"}, + { ACRO, "Acro"}, + { ALT_HOLD, "Altitude Hold"}, + { AUTO, "Auto"}, + { GUIDED, "Guided"}, + { LOITER, "Loiter"}, + { RTL, "RTL"}, + { CIRCLE, "Circle"}, + { LAND, "Land"}, + { DRIFT, "Drift"}, + { SPORT, "Sport"}, + { FLIP, "Flip"}, + { AUTOTUNE, "Autotune"}, + { POS_HOLD, "Position Hold"}, + { BRAKE, "Brake"}, + { THROW, "Throw"}, + { AVOID_ADSB, "Avoid ADSB"}, + { GUIDED_NOGPS, "Guided No GPS"}, + { SMART_RTL, "Smart RTL"}, + { FLOWHOLD, "Flow Hold" }, + { FOLLOW, "Follow" }, + { ZIGZAG, "ZigZag" }, }); } ArduCopterFirmwarePlugin::ArduCopterFirmwarePlugin(void) { setSupportedModes({ - APMCopterMode(APMCopterMode::STABILIZE ,true), - APMCopterMode(APMCopterMode::ACRO ,true), - APMCopterMode(APMCopterMode::ALT_HOLD ,true), - APMCopterMode(APMCopterMode::AUTO ,true), - APMCopterMode(APMCopterMode::GUIDED ,true), - APMCopterMode(APMCopterMode::LOITER ,true), - APMCopterMode(APMCopterMode::RTL ,true), - APMCopterMode(APMCopterMode::CIRCLE ,true), - APMCopterMode(APMCopterMode::LAND ,true), - APMCopterMode(APMCopterMode::DRIFT ,true), - APMCopterMode(APMCopterMode::SPORT ,true), - APMCopterMode(APMCopterMode::FLIP ,true), - APMCopterMode(APMCopterMode::AUTOTUNE ,true), - APMCopterMode(APMCopterMode::POS_HOLD ,true), - APMCopterMode(APMCopterMode::BRAKE ,true), - APMCopterMode(APMCopterMode::THROW ,true), - APMCopterMode(APMCopterMode::AVOID_ADSB,true), - APMCopterMode(APMCopterMode::GUIDED_NOGPS,true), - APMCopterMode(APMCopterMode::SAFE_RTL,true), + APMCopterMode(APMCopterMode::STABILIZE, true), + APMCopterMode(APMCopterMode::ACRO, true), + APMCopterMode(APMCopterMode::ALT_HOLD, true), + APMCopterMode(APMCopterMode::AUTO, true), + APMCopterMode(APMCopterMode::GUIDED, true), + APMCopterMode(APMCopterMode::LOITER, true), + APMCopterMode(APMCopterMode::RTL, true), + APMCopterMode(APMCopterMode::CIRCLE, true), + APMCopterMode(APMCopterMode::LAND, true), + APMCopterMode(APMCopterMode::DRIFT, true), + APMCopterMode(APMCopterMode::SPORT, true), + APMCopterMode(APMCopterMode::FLIP, true), + APMCopterMode(APMCopterMode::AUTOTUNE, true), + APMCopterMode(APMCopterMode::POS_HOLD, true), + APMCopterMode(APMCopterMode::BRAKE, true), + APMCopterMode(APMCopterMode::THROW, true), + APMCopterMode(APMCopterMode::AVOID_ADSB, true), + APMCopterMode(APMCopterMode::GUIDED_NOGPS, true), + APMCopterMode(APMCopterMode::SMART_RTL, true), + APMCopterMode(APMCopterMode::FLOWHOLD, true), + APMCopterMode(APMCopterMode::FOLLOW, true), + APMCopterMode(APMCopterMode::ZIGZAG, true), }); if (!_remapParamNameIntialized) { diff --git a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h index 563baf7b68fd7db0c300ecfbf24c94257cd574a2..a675e74a4a8f516d67bec0932d1ea5fe93315905 100644 --- a/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h +++ b/src/FirmwarePlugin/APM/ArduCopterFirmwarePlugin.h @@ -41,9 +41,11 @@ public: THROW = 18, AVOID_ADSB = 19, GUIDED_NOGPS= 20, - SAFE_RTL = 21, //Safe Return to Launch + SMART_RTL = 21, // SMART_RTL returns to home by retracing its steps + FLOWHOLD = 22, // FLOWHOLD holds position with optical flow without rangefinder + FOLLOW = 23, // follow attempts to follow another vehicle or ground station + ZIGZAG = 24, // ZIGZAG mode is able to fly in a zigzag manner with predefined point A and point B }; - static const int modeCount = 22; APMCopterMode(uint32_t mode, bool settable); };