00001 #ifndef STATUS_PUBLISHER_H 00002 #define STATUS_PUBLISHER_H 00003 00004 #include "continual_planning_executive/ContinualPlanningStatus.h" 00005 #include "continual_planning_executive/plan.h" 00006 #include "continual_planning_executive/symbolicState.h" 00007 #include <ros/ros.h> 00008 00009 class StatusPublisher 00010 { 00011 public: 00012 StatusPublisher(); 00013 ~StatusPublisher(); 00014 00015 void startedStateEstimation(); 00016 void finishedStateEstimation(bool success, const SymbolicState & state); 00017 00018 void startedMonitoring(); 00019 void finishedMonitoring(bool success); 00020 00021 void startedPlanning(); 00022 void finishedPlanning(bool success, const Plan & plan); 00023 00024 void startedExecution(const DurativeAction & a); 00025 void finishedExecution(bool success, const DurativeAction & a); 00026 00027 void updateCurrentPlan(const Plan & plan); 00028 00029 void finishedContinualPlanning(bool success, const std::string & result); 00030 00031 00032 void publishStatus(int component, int status, const std::string & description); 00033 00034 void setEnabled(bool on) { _enabled = on; } 00035 00036 private: 00037 ros::Publisher _pubStatus; 00038 bool _enabled; 00039 }; 00040 00041 #endif 00042