It has only one change from original one. I added robotfeedback message on it.
Dependents: RobotFeedback mobileRobotITU
Fork of ros_lib_indigo by
map_msgs/OccupancyGridUpdate.h
- Committer:
- garyservin
- Date:
- 2016-03-31
- Revision:
- 0:fd24f7ca9688
File content as of revision 0:fd24f7ca9688:
#ifndef _ROS_map_msgs_OccupancyGridUpdate_h #define _ROS_map_msgs_OccupancyGridUpdate_h #include <stdint.h> #include <string.h> #include <stdlib.h> #include "ros/msg.h" #include "std_msgs/Header.h" namespace map_msgs { class OccupancyGridUpdate : public ros::Msg { public: std_msgs::Header header; int32_t x; int32_t y; uint32_t width; uint32_t height; uint8_t data_length; int8_t st_data; int8_t * data; OccupancyGridUpdate(): header(), x(0), y(0), width(0), height(0), data_length(0), data(NULL) { } virtual int serialize(unsigned char *outbuffer) const { int offset = 0; offset += this->header.serialize(outbuffer + offset); union { int32_t real; uint32_t base; } u_x; u_x.real = this->x; *(outbuffer + offset + 0) = (u_x.base >> (8 * 0)) & 0xFF; *(outbuffer + offset + 1) = (u_x.base >> (8 * 1)) & 0xFF; *(outbuffer + offset + 2) = (u_x.base >> (8 * 2)) & 0xFF; *(outbuffer + offset + 3) = (u_x.base >> (8 * 3)) & 0xFF; offset += sizeof(this->x); union { int32_t real; uint32_t base; } u_y; u_y.real = this->y; *(outbuffer + offset + 0) = (u_y.base >> (8 * 0)) & 0xFF; *(outbuffer + offset + 1) = (u_y.base >> (8 * 1)) & 0xFF; *(outbuffer + offset + 2) = (u_y.base >> (8 * 2)) & 0xFF; *(outbuffer + offset + 3) = (u_y.base >> (8 * 3)) & 0xFF; offset += sizeof(this->y); *(outbuffer + offset + 0) = (this->width >> (8 * 0)) & 0xFF; *(outbuffer + offset + 1) = (this->width >> (8 * 1)) & 0xFF; *(outbuffer + offset + 2) = (this->width >> (8 * 2)) & 0xFF; *(outbuffer + offset + 3) = (this->width >> (8 * 3)) & 0xFF; offset += sizeof(this->width); *(outbuffer + offset + 0) = (this->height >> (8 * 0)) & 0xFF; *(outbuffer + offset + 1) = (this->height >> (8 * 1)) & 0xFF; *(outbuffer + offset + 2) = (this->height >> (8 * 2)) & 0xFF; *(outbuffer + offset + 3) = (this->height >> (8 * 3)) & 0xFF; offset += sizeof(this->height); *(outbuffer + offset++) = data_length; *(outbuffer + offset++) = 0; *(outbuffer + offset++) = 0; *(outbuffer + offset++) = 0; for( uint8_t i = 0; i < data_length; i++){ union { int8_t real; uint8_t base; } u_datai; u_datai.real = this->data[i]; *(outbuffer + offset + 0) = (u_datai.base >> (8 * 0)) & 0xFF; offset += sizeof(this->data[i]); } return offset; } virtual int deserialize(unsigned char *inbuffer) { int offset = 0; offset += this->header.deserialize(inbuffer + offset); union { int32_t real; uint32_t base; } u_x; u_x.base = 0; u_x.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); u_x.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); u_x.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); u_x.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); this->x = u_x.real; offset += sizeof(this->x); union { int32_t real; uint32_t base; } u_y; u_y.base = 0; u_y.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); u_y.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); u_y.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); u_y.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); this->y = u_y.real; offset += sizeof(this->y); this->width = ((uint32_t) (*(inbuffer + offset))); this->width |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); this->width |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); this->width |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); offset += sizeof(this->width); this->height = ((uint32_t) (*(inbuffer + offset))); this->height |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); this->height |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); this->height |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); offset += sizeof(this->height); uint8_t data_lengthT = *(inbuffer + offset++); if(data_lengthT > data_length) this->data = (int8_t*)realloc(this->data, data_lengthT * sizeof(int8_t)); offset += 3; data_length = data_lengthT; for( uint8_t i = 0; i < data_length; i++){ union { int8_t real; uint8_t base; } u_st_data; u_st_data.base = 0; u_st_data.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); this->st_data = u_st_data.real; offset += sizeof(this->st_data); memcpy( &(this->data[i]), &(this->st_data), sizeof(int8_t)); } return offset; } const char * getType(){ return "map_msgs/OccupancyGridUpdate"; }; const char * getMD5(){ return "b295be292b335c34718bd939deebe1c9"; }; }; } #endif