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.
Dependencies: mbed
PlotData.h
00001 #ifndef _ROS_jsk_recognition_msgs_PlotData_h 00002 #define _ROS_jsk_recognition_msgs_PlotData_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 jsk_recognition_msgs 00011 { 00012 00013 class PlotData : public ros::Msg 00014 { 00015 public: 00016 typedef std_msgs::Header _header_type; 00017 _header_type header; 00018 uint32_t xs_length; 00019 typedef float _xs_type; 00020 _xs_type st_xs; 00021 _xs_type * xs; 00022 uint32_t ys_length; 00023 typedef float _ys_type; 00024 _ys_type st_ys; 00025 _ys_type * ys; 00026 typedef uint32_t _type_type; 00027 _type_type type; 00028 typedef const char* _label_type; 00029 _label_type label; 00030 typedef bool _fit_line_type; 00031 _fit_line_type fit_line; 00032 typedef bool _fit_line_ransac_type; 00033 _fit_line_ransac_type fit_line_ransac; 00034 enum { SCATTER = 1 }; 00035 enum { LINE = 2 }; 00036 00037 PlotData(): 00038 header(), 00039 xs_length(0), xs(NULL), 00040 ys_length(0), ys(NULL), 00041 type(0), 00042 label(""), 00043 fit_line(0), 00044 fit_line_ransac(0) 00045 { 00046 } 00047 00048 virtual int serialize(unsigned char *outbuffer) const 00049 { 00050 int offset = 0; 00051 offset += this->header.serialize(outbuffer + offset); 00052 *(outbuffer + offset + 0) = (this->xs_length >> (8 * 0)) & 0xFF; 00053 *(outbuffer + offset + 1) = (this->xs_length >> (8 * 1)) & 0xFF; 00054 *(outbuffer + offset + 2) = (this->xs_length >> (8 * 2)) & 0xFF; 00055 *(outbuffer + offset + 3) = (this->xs_length >> (8 * 3)) & 0xFF; 00056 offset += sizeof(this->xs_length); 00057 for( uint32_t i = 0; i < xs_length; i++){ 00058 union { 00059 float real; 00060 uint32_t base; 00061 } u_xsi; 00062 u_xsi.real = this->xs[i]; 00063 *(outbuffer + offset + 0) = (u_xsi.base >> (8 * 0)) & 0xFF; 00064 *(outbuffer + offset + 1) = (u_xsi.base >> (8 * 1)) & 0xFF; 00065 *(outbuffer + offset + 2) = (u_xsi.base >> (8 * 2)) & 0xFF; 00066 *(outbuffer + offset + 3) = (u_xsi.base >> (8 * 3)) & 0xFF; 00067 offset += sizeof(this->xs[i]); 00068 } 00069 *(outbuffer + offset + 0) = (this->ys_length >> (8 * 0)) & 0xFF; 00070 *(outbuffer + offset + 1) = (this->ys_length >> (8 * 1)) & 0xFF; 00071 *(outbuffer + offset + 2) = (this->ys_length >> (8 * 2)) & 0xFF; 00072 *(outbuffer + offset + 3) = (this->ys_length >> (8 * 3)) & 0xFF; 00073 offset += sizeof(this->ys_length); 00074 for( uint32_t i = 0; i < ys_length; i++){ 00075 union { 00076 float real; 00077 uint32_t base; 00078 } u_ysi; 00079 u_ysi.real = this->ys[i]; 00080 *(outbuffer + offset + 0) = (u_ysi.base >> (8 * 0)) & 0xFF; 00081 *(outbuffer + offset + 1) = (u_ysi.base >> (8 * 1)) & 0xFF; 00082 *(outbuffer + offset + 2) = (u_ysi.base >> (8 * 2)) & 0xFF; 00083 *(outbuffer + offset + 3) = (u_ysi.base >> (8 * 3)) & 0xFF; 00084 offset += sizeof(this->ys[i]); 00085 } 00086 *(outbuffer + offset + 0) = (this->type >> (8 * 0)) & 0xFF; 00087 *(outbuffer + offset + 1) = (this->type >> (8 * 1)) & 0xFF; 00088 *(outbuffer + offset + 2) = (this->type >> (8 * 2)) & 0xFF; 00089 *(outbuffer + offset + 3) = (this->type >> (8 * 3)) & 0xFF; 00090 offset += sizeof(this->type); 00091 uint32_t length_label = strlen(this->label); 00092 varToArr(outbuffer + offset, length_label); 00093 offset += 4; 00094 memcpy(outbuffer + offset, this->label, length_label); 00095 offset += length_label; 00096 union { 00097 bool real; 00098 uint8_t base; 00099 } u_fit_line; 00100 u_fit_line.real = this->fit_line; 00101 *(outbuffer + offset + 0) = (u_fit_line.base >> (8 * 0)) & 0xFF; 00102 offset += sizeof(this->fit_line); 00103 union { 00104 bool real; 00105 uint8_t base; 00106 } u_fit_line_ransac; 00107 u_fit_line_ransac.real = this->fit_line_ransac; 00108 *(outbuffer + offset + 0) = (u_fit_line_ransac.base >> (8 * 0)) & 0xFF; 00109 offset += sizeof(this->fit_line_ransac); 00110 return offset; 00111 } 00112 00113 virtual int deserialize(unsigned char *inbuffer) 00114 { 00115 int offset = 0; 00116 offset += this->header.deserialize(inbuffer + offset); 00117 uint32_t xs_lengthT = ((uint32_t) (*(inbuffer + offset))); 00118 xs_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00119 xs_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00120 xs_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00121 offset += sizeof(this->xs_length); 00122 if(xs_lengthT > xs_length) 00123 this->xs = (float*)realloc(this->xs, xs_lengthT * sizeof(float)); 00124 xs_length = xs_lengthT; 00125 for( uint32_t i = 0; i < xs_length; i++){ 00126 union { 00127 float real; 00128 uint32_t base; 00129 } u_st_xs; 00130 u_st_xs.base = 0; 00131 u_st_xs.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 00132 u_st_xs.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00133 u_st_xs.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00134 u_st_xs.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00135 this->st_xs = u_st_xs.real; 00136 offset += sizeof(this->st_xs); 00137 memcpy( &(this->xs[i]), &(this->st_xs), sizeof(float)); 00138 } 00139 uint32_t ys_lengthT = ((uint32_t) (*(inbuffer + offset))); 00140 ys_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00141 ys_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00142 ys_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00143 offset += sizeof(this->ys_length); 00144 if(ys_lengthT > ys_length) 00145 this->ys = (float*)realloc(this->ys, ys_lengthT * sizeof(float)); 00146 ys_length = ys_lengthT; 00147 for( uint32_t i = 0; i < ys_length; i++){ 00148 union { 00149 float real; 00150 uint32_t base; 00151 } u_st_ys; 00152 u_st_ys.base = 0; 00153 u_st_ys.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 00154 u_st_ys.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00155 u_st_ys.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00156 u_st_ys.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00157 this->st_ys = u_st_ys.real; 00158 offset += sizeof(this->st_ys); 00159 memcpy( &(this->ys[i]), &(this->st_ys), sizeof(float)); 00160 } 00161 this->type = ((uint32_t) (*(inbuffer + offset))); 00162 this->type |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00163 this->type |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00164 this->type |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00165 offset += sizeof(this->type); 00166 uint32_t length_label; 00167 arrToVar(length_label, (inbuffer + offset)); 00168 offset += 4; 00169 for(unsigned int k= offset; k< offset+length_label; ++k){ 00170 inbuffer[k-1]=inbuffer[k]; 00171 } 00172 inbuffer[offset+length_label-1]=0; 00173 this->label = (char *)(inbuffer + offset-1); 00174 offset += length_label; 00175 union { 00176 bool real; 00177 uint8_t base; 00178 } u_fit_line; 00179 u_fit_line.base = 0; 00180 u_fit_line.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 00181 this->fit_line = u_fit_line.real; 00182 offset += sizeof(this->fit_line); 00183 union { 00184 bool real; 00185 uint8_t base; 00186 } u_fit_line_ransac; 00187 u_fit_line_ransac.base = 0; 00188 u_fit_line_ransac.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 00189 this->fit_line_ransac = u_fit_line_ransac.real; 00190 offset += sizeof(this->fit_line_ransac); 00191 return offset; 00192 } 00193 00194 virtual const char * getType(){ return "jsk_recognition_msgs/PlotData"; }; 00195 virtual const char * getMD5(){ return "abc388ba2207b305f8695ad025452af4"; }; 00196 00197 }; 00198 00199 } 00200 #endif
Generated on Mon Sep 26 2022 13:47:03 by
