Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 Wed Jul 13 2022 23:30:17 by
