From fccf23dff25162379cc25fb0fd4a4479f8cd480d Mon Sep 17 00:00:00 2001 From: Michael du Breuil Date: Mon, 24 Dec 2018 22:17:39 -0700 Subject: [PATCH] AP_Mission: Add a helper to check if a mission contains an item --- libraries/AP_Mission/AP_Mission.cpp | 14 ++++++++++++++ libraries/AP_Mission/AP_Mission.h | 3 +++ 2 files changed, 17 insertions(+) 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[];