#ifndef _ROS_actionlib_msgs_GoalStatus_h #define _ROS_actionlib_msgs_GoalStatus_h #include #include #include #include "ros/msg.h" #include "actionlib_msgs/GoalID.h" namespace actionlib_msgs { class GoalStatus : public ros::Msg { public: actionlib_msgs::GoalID goal_id; uint8_t status; const char* text; enum { PENDING = 0 }; enum { ACTIVE = 1 }; enum { PREEMPTED = 2 }; enum { SUCCEEDED = 3 }; enum { ABORTED = 4 }; enum { REJECTED = 5 }; enum { PREEMPTING = 6 }; enum { RECALLING = 7 }; enum { RECALLED = 8 }; enum { LOST = 9 }; GoalStatus(): goal_id(), status(0), text("") { } virtual int serialize(unsigned char *outbuffer) const { int offset = 0; offset += this->goal_id.serialize(outbuffer + offset); *(outbuffer + offset + 0) = (this->status >> (8 * 0)) & 0xFF; offset += sizeof(this->status); uint32_t length_text = strlen(this->text); memcpy(outbuffer + offset, &length_text, sizeof(uint32_t)); offset += 4; memcpy(outbuffer + offset, this->text, length_text); offset += length_text; return offset; } virtual int deserialize(unsigned char *inbuffer) { int offset = 0; offset += this->goal_id.deserialize(inbuffer + offset); this->status = ((uint8_t) (*(inbuffer + offset))); offset += sizeof(this->status); uint32_t length_text; memcpy(&length_text, (inbuffer + offset), sizeof(uint32_t)); offset += 4; for(unsigned int k= offset; k< offset+length_text; ++k){ inbuffer[k-1]=inbuffer[k]; } inbuffer[offset+length_text-1]=0; this->text = (char *)(inbuffer + offset-1); offset += length_text; return offset; } const char * getType(){ return "actionlib_msgs/GoalStatus"; }; const char * getMD5(){ return "d388f9b87b3c471f784434d671988d4a"; }; }; } #endif