Working towards recieving twists
Fork of ros_lib_kinetic by
Embed:
(wiki syntax)
Show/hide line numbers
CompressedImage.h
00001 #ifndef _ROS_sensor_msgs_CompressedImage_h 00002 #define _ROS_sensor_msgs_CompressedImage_h 00003 00004 #include <stdint.h> 00005 #include <string.h> 00006 #include <stdlib.h> 00007 #include "ros/msg.h" 00008 #include "std_msgs/Header.h" 00009 00010 namespace sensor_msgs 00011 { 00012 00013 class CompressedImage : public ros::Msg 00014 { 00015 public: 00016 typedef std_msgs::Header _header_type; 00017 _header_type header; 00018 typedef const char* _format_type; 00019 _format_type format; 00020 uint32_t data_length; 00021 typedef uint8_t _data_type; 00022 _data_type st_data; 00023 _data_type * data; 00024 00025 CompressedImage(): 00026 header(), 00027 format(""), 00028 data_length(0), data(NULL) 00029 { 00030 } 00031 00032 virtual int serialize(unsigned char *outbuffer) const 00033 { 00034 int offset = 0; 00035 offset += this->header.serialize(outbuffer + offset); 00036 uint32_t length_format = strlen(this->format); 00037 varToArr(outbuffer + offset, length_format); 00038 offset += 4; 00039 memcpy(outbuffer + offset, this->format, length_format); 00040 offset += length_format; 00041 *(outbuffer + offset + 0) = (this->data_length >> (8 * 0)) & 0xFF; 00042 *(outbuffer + offset + 1) = (this->data_length >> (8 * 1)) & 0xFF; 00043 *(outbuffer + offset + 2) = (this->data_length >> (8 * 2)) & 0xFF; 00044 *(outbuffer + offset + 3) = (this->data_length >> (8 * 3)) & 0xFF; 00045 offset += sizeof(this->data_length); 00046 for( uint32_t i = 0; i < data_length; i++){ 00047 *(outbuffer + offset + 0) = (this->data[i] >> (8 * 0)) & 0xFF; 00048 offset += sizeof(this->data[i]); 00049 } 00050 return offset; 00051 } 00052 00053 virtual int deserialize(unsigned char *inbuffer) 00054 { 00055 int offset = 0; 00056 offset += this->header.deserialize(inbuffer + offset); 00057 uint32_t length_format; 00058 arrToVar(length_format, (inbuffer + offset)); 00059 offset += 4; 00060 for(unsigned int k= offset; k< offset+length_format; ++k){ 00061 inbuffer[k-1]=inbuffer[k]; 00062 } 00063 inbuffer[offset+length_format-1]=0; 00064 this->format = (char *)(inbuffer + offset-1); 00065 offset += length_format; 00066 uint32_t data_lengthT = ((uint32_t) (*(inbuffer + offset))); 00067 data_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00068 data_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00069 data_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00070 offset += sizeof(this->data_length); 00071 if(data_lengthT > data_length) 00072 this->data = (uint8_t*)realloc(this->data, data_lengthT * sizeof(uint8_t)); 00073 data_length = data_lengthT; 00074 for( uint32_t i = 0; i < data_length; i++){ 00075 this->st_data = ((uint8_t) (*(inbuffer + offset))); 00076 offset += sizeof(this->st_data); 00077 memcpy( &(this->data[i]), &(this->st_data), sizeof(uint8_t)); 00078 } 00079 return offset; 00080 } 00081 00082 const char * getType(){ return "sensor_msgs/CompressedImage"; }; 00083 const char * getMD5(){ return "8f7a12909da2c9d3332d540a0977563f"; }; 00084 00085 }; 00086 00087 } 00088 #endif
Generated on Tue Jul 12 2022 21:32:15 by 1.7.2