00001 #ifndef bwi_actexec_LogicalNavigation_h__guard 00002 #define bwi_actexec_LogicalNavigation_h__guard 00003 00004 #include "actasp/Action.h" 00005 00006 #include <actionlib/client/simple_action_client.h> 00007 #include <bwi_msgs/LogicalNavigationAction.h> 00008 00009 namespace bwi_krexec { 00010 00011 00012 class LogicalNavigation : public actasp::Action { 00013 public: 00014 00015 explicit LogicalNavigation(const std::string &name, 00016 const std::vector<std::string>& parameters = std::vector<std::string>()); 00017 00018 int paramNumber() const {return 1;} 00019 00020 std::string getName() const {return name;} 00021 00022 virtual void run(); 00023 00024 bool hasFinished() const {return done;} 00025 00026 virtual Action *cloneAndInit(const actasp::AspFluent & fluent) const; 00027 00028 virtual Action *clone() const {return new LogicalNavigation(*this);} 00029 00030 virtual ~LogicalNavigation(); 00031 00032 protected: 00033 00034 virtual std::vector<std::string> getParameters() const {return parameters;} 00035 00036 std::string name; 00037 std::vector<std::string> parameters; 00038 bool done; 00039 00040 actionlib::SimpleActionClient<bwi_msgs::LogicalNavigationAction>* lnac; 00041 bwi_msgs::LogicalNavigationGoal goal; 00042 bool request_in_progress; 00043 00044 }; 00045 } 00046 00047 #endif