
rosserial library for mbed Inspired by nucho's rosserial library This library is still under development
Dependents: mbed_roshydro_test
Library still under development!
Diff: moveit_msgs/GetStateValidity.h
- Revision:
- 0:30537dec6e0b
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/moveit_msgs/GetStateValidity.h Sun Feb 15 10:53:43 2015 +0000 @@ -0,0 +1,177 @@ +#ifndef _ROS_SERVICE_GetStateValidity_h +#define _ROS_SERVICE_GetStateValidity_h +#include <stdint.h> +#include <string.h> +#include <stdlib.h> +#include "ros/msg.h" +#include "moveit_msgs/ConstraintEvalResult.h" +#include "moveit_msgs/CostSource.h" +#include "moveit_msgs/ContactInformation.h" +#include "moveit_msgs/RobotState.h" +#include "moveit_msgs/Constraints.h" + +namespace moveit_msgs +{ + +static const char GETSTATEVALIDITY[] = "moveit_msgs/GetStateValidity"; + + class GetStateValidityRequest : public ros::Msg + { + public: + moveit_msgs::RobotState robot_state; + const char* group_name; + moveit_msgs::Constraints constraints; + + GetStateValidityRequest(): + robot_state(), + group_name(""), + constraints() + { + } + + virtual int serialize(unsigned char *outbuffer) const + { + int offset = 0; + offset += this->robot_state.serialize(outbuffer + offset); + uint32_t length_group_name = strlen(this->group_name); + memcpy(outbuffer + offset, &length_group_name, sizeof(uint32_t)); + offset += 4; + memcpy(outbuffer + offset, this->group_name, length_group_name); + offset += length_group_name; + offset += this->constraints.serialize(outbuffer + offset); + return offset; + } + + virtual int deserialize(unsigned char *inbuffer) + { + int offset = 0; + offset += this->robot_state.deserialize(inbuffer + offset); + uint32_t length_group_name; + memcpy(&length_group_name, (inbuffer + offset), sizeof(uint32_t)); + offset += 4; + for(unsigned int k= offset; k< offset+length_group_name; ++k){ + inbuffer[k-1]=inbuffer[k]; + } + inbuffer[offset+length_group_name-1]=0; + this->group_name = (char *)(inbuffer + offset-1); + offset += length_group_name; + offset += this->constraints.deserialize(inbuffer + offset); + return offset; + } + + const char * getType(){ return GETSTATEVALIDITY; }; + const char * getMD5(){ return "b569c609cafad20ba7d0e46e70e7cab1"; }; + + }; + + class GetStateValidityResponse : public ros::Msg + { + public: + bool valid; + uint8_t contacts_length; + moveit_msgs::ContactInformation st_contacts; + moveit_msgs::ContactInformation * contacts; + uint8_t cost_sources_length; + moveit_msgs::CostSource st_cost_sources; + moveit_msgs::CostSource * cost_sources; + uint8_t constraint_result_length; + moveit_msgs::ConstraintEvalResult st_constraint_result; + moveit_msgs::ConstraintEvalResult * constraint_result; + + GetStateValidityResponse(): + valid(0), + contacts_length(0), contacts(NULL), + cost_sources_length(0), cost_sources(NULL), + constraint_result_length(0), constraint_result(NULL) + { + } + + virtual int serialize(unsigned char *outbuffer) const + { + int offset = 0; + union { + bool real; + uint8_t base; + } u_valid; + u_valid.real = this->valid; + *(outbuffer + offset + 0) = (u_valid.base >> (8 * 0)) & 0xFF; + offset += sizeof(this->valid); + *(outbuffer + offset++) = contacts_length; + *(outbuffer + offset++) = 0; + *(outbuffer + offset++) = 0; + *(outbuffer + offset++) = 0; + for( uint8_t i = 0; i < contacts_length; i++){ + offset += this->contacts[i].serialize(outbuffer + offset); + } + *(outbuffer + offset++) = cost_sources_length; + *(outbuffer + offset++) = 0; + *(outbuffer + offset++) = 0; + *(outbuffer + offset++) = 0; + for( uint8_t i = 0; i < cost_sources_length; i++){ + offset += this->cost_sources[i].serialize(outbuffer + offset); + } + *(outbuffer + offset++) = constraint_result_length; + *(outbuffer + offset++) = 0; + *(outbuffer + offset++) = 0; + *(outbuffer + offset++) = 0; + for( uint8_t i = 0; i < constraint_result_length; i++){ + offset += this->constraint_result[i].serialize(outbuffer + offset); + } + return offset; + } + + virtual int deserialize(unsigned char *inbuffer) + { + int offset = 0; + union { + bool real; + uint8_t base; + } u_valid; + u_valid.base = 0; + u_valid.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); + this->valid = u_valid.real; + offset += sizeof(this->valid); + uint8_t contacts_lengthT = *(inbuffer + offset++); + if(contacts_lengthT > contacts_length) + this->contacts = (moveit_msgs::ContactInformation*)realloc(this->contacts, contacts_lengthT * sizeof(moveit_msgs::ContactInformation)); + offset += 3; + contacts_length = contacts_lengthT; + for( uint8_t i = 0; i < contacts_length; i++){ + offset += this->st_contacts.deserialize(inbuffer + offset); + memcpy( &(this->contacts[i]), &(this->st_contacts), sizeof(moveit_msgs::ContactInformation)); + } + uint8_t cost_sources_lengthT = *(inbuffer + offset++); + if(cost_sources_lengthT > cost_sources_length) + this->cost_sources = (moveit_msgs::CostSource*)realloc(this->cost_sources, cost_sources_lengthT * sizeof(moveit_msgs::CostSource)); + offset += 3; + cost_sources_length = cost_sources_lengthT; + for( uint8_t i = 0; i < cost_sources_length; i++){ + offset += this->st_cost_sources.deserialize(inbuffer + offset); + memcpy( &(this->cost_sources[i]), &(this->st_cost_sources), sizeof(moveit_msgs::CostSource)); + } + uint8_t constraint_result_lengthT = *(inbuffer + offset++); + if(constraint_result_lengthT > constraint_result_length) + this->constraint_result = (moveit_msgs::ConstraintEvalResult*)realloc(this->constraint_result, constraint_result_lengthT * sizeof(moveit_msgs::ConstraintEvalResult)); + offset += 3; + constraint_result_length = constraint_result_lengthT; + for( uint8_t i = 0; i < constraint_result_length; i++){ + offset += this->st_constraint_result.deserialize(inbuffer + offset); + memcpy( &(this->constraint_result[i]), &(this->st_constraint_result), sizeof(moveit_msgs::ConstraintEvalResult)); + } + return offset; + } + + const char * getType(){ return GETSTATEVALIDITY; }; + const char * getMD5(){ return "e326fb22b7448f29c0e726d9270d9929"; }; + + }; + + class GetStateValidity { + public: + typedef GetStateValidityRequest Request; + typedef GetStateValidityResponse Response; + }; + +} +#endif +