diff --git a/libraries/AP_Mission/AP_Mission.cpp b/libraries/AP_Mission/AP_Mission.cpp index ae737c116d..817f61d317 100644 --- a/libraries/AP_Mission/AP_Mission.cpp +++ b/libraries/AP_Mission/AP_Mission.cpp @@ -1849,6 +1849,20 @@ const char *AP_Mission::Mission_Command::type() const { } } +bool AP_Mission::contains_item(MAV_CMD command) const +{ + for (int i = 1; i < num_commands(); i++) { + Mission_Command tmp; + if (!read_cmd_from_storage(i, tmp)) { + continue; + } + if (tmp.id == command) { + return true; + } + } + return false; +} + // singleton instance AP_Mission *AP_Mission::_singleton; diff --git a/libraries/AP_Mission/AP_Mission.h b/libraries/AP_Mission/AP_Mission.h index 22ae34650a..11aa0437ed 100644 --- a/libraries/AP_Mission/AP_Mission.h +++ b/libraries/AP_Mission/AP_Mission.h @@ -478,6 +478,9 @@ public: return _rsem; } + // returns true if the mission contains the requested items + bool contains_item(MAV_CMD command) const; + // user settable parameters static const struct AP_Param::GroupInfo var_info[];