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.
InteractiveMarkerUpdate.h
00001 #ifndef _ROS_visualization_msgs_InteractiveMarkerUpdate_h 00002 #define _ROS_visualization_msgs_InteractiveMarkerUpdate_h 00003 00004 #include <stdint.h> 00005 #include <string.h> 00006 #include <stdlib.h> 00007 #include "ros/msg.h" 00008 #include "visualization_msgs/InteractiveMarker.h" 00009 #include "visualization_msgs/InteractiveMarkerPose.h" 00010 00011 namespace visualization_msgs 00012 { 00013 00014 class InteractiveMarkerUpdate : public ros::Msg 00015 { 00016 public: 00017 typedef const char* _server_id_type; 00018 _server_id_type server_id; 00019 typedef uint64_t _seq_num_type; 00020 _seq_num_type seq_num; 00021 typedef uint8_t _type_type; 00022 _type_type type; 00023 uint32_t markers_length; 00024 typedef visualization_msgs::InteractiveMarker _markers_type; 00025 _markers_type st_markers; 00026 _markers_type * markers; 00027 uint32_t poses_length; 00028 typedef visualization_msgs::InteractiveMarkerPose _poses_type; 00029 _poses_type st_poses; 00030 _poses_type * poses; 00031 uint32_t erases_length; 00032 typedef char* _erases_type; 00033 _erases_type st_erases; 00034 _erases_type * erases; 00035 enum { KEEP_ALIVE = 0 }; 00036 enum { UPDATE = 1 }; 00037 00038 InteractiveMarkerUpdate(): 00039 server_id(""), 00040 seq_num(0), 00041 type(0), 00042 markers_length(0), markers(NULL), 00043 poses_length(0), poses(NULL), 00044 erases_length(0), erases(NULL) 00045 { 00046 } 00047 00048 virtual int serialize(unsigned char *outbuffer) const 00049 { 00050 int offset = 0; 00051 uint32_t length_server_id = strlen(this->server_id); 00052 varToArr(outbuffer + offset, length_server_id); 00053 offset += 4; 00054 memcpy(outbuffer + offset, this->server_id, length_server_id); 00055 offset += length_server_id; 00056 union { 00057 uint64_t real; 00058 uint32_t base; 00059 } u_seq_num; 00060 u_seq_num.real = this->seq_num; 00061 *(outbuffer + offset + 0) = (u_seq_num.base >> (8 * 0)) & 0xFF; 00062 *(outbuffer + offset + 1) = (u_seq_num.base >> (8 * 1)) & 0xFF; 00063 *(outbuffer + offset + 2) = (u_seq_num.base >> (8 * 2)) & 0xFF; 00064 *(outbuffer + offset + 3) = (u_seq_num.base >> (8 * 3)) & 0xFF; 00065 offset += sizeof(this->seq_num); 00066 *(outbuffer + offset + 0) = (this->type >> (8 * 0)) & 0xFF; 00067 offset += sizeof(this->type); 00068 *(outbuffer + offset + 0) = (this->markers_length >> (8 * 0)) & 0xFF; 00069 *(outbuffer + offset + 1) = (this->markers_length >> (8 * 1)) & 0xFF; 00070 *(outbuffer + offset + 2) = (this->markers_length >> (8 * 2)) & 0xFF; 00071 *(outbuffer + offset + 3) = (this->markers_length >> (8 * 3)) & 0xFF; 00072 offset += sizeof(this->markers_length); 00073 for( uint32_t i = 0; i < markers_length; i++){ 00074 offset += this->markers[i].serialize(outbuffer + offset); 00075 } 00076 *(outbuffer + offset + 0) = (this->poses_length >> (8 * 0)) & 0xFF; 00077 *(outbuffer + offset + 1) = (this->poses_length >> (8 * 1)) & 0xFF; 00078 *(outbuffer + offset + 2) = (this->poses_length >> (8 * 2)) & 0xFF; 00079 *(outbuffer + offset + 3) = (this->poses_length >> (8 * 3)) & 0xFF; 00080 offset += sizeof(this->poses_length); 00081 for( uint32_t i = 0; i < poses_length; i++){ 00082 offset += this->poses[i].serialize(outbuffer + offset); 00083 } 00084 *(outbuffer + offset + 0) = (this->erases_length >> (8 * 0)) & 0xFF; 00085 *(outbuffer + offset + 1) = (this->erases_length >> (8 * 1)) & 0xFF; 00086 *(outbuffer + offset + 2) = (this->erases_length >> (8 * 2)) & 0xFF; 00087 *(outbuffer + offset + 3) = (this->erases_length >> (8 * 3)) & 0xFF; 00088 offset += sizeof(this->erases_length); 00089 for( uint32_t i = 0; i < erases_length; i++){ 00090 uint32_t length_erasesi = strlen(this->erases[i]); 00091 varToArr(outbuffer + offset, length_erasesi); 00092 offset += 4; 00093 memcpy(outbuffer + offset, this->erases[i], length_erasesi); 00094 offset += length_erasesi; 00095 } 00096 return offset; 00097 } 00098 00099 virtual int deserialize(unsigned char *inbuffer) 00100 { 00101 int offset = 0; 00102 uint32_t length_server_id; 00103 arrToVar(length_server_id, (inbuffer + offset)); 00104 offset += 4; 00105 for(unsigned int k= offset; k< offset+length_server_id; ++k){ 00106 inbuffer[k-1]=inbuffer[k]; 00107 } 00108 inbuffer[offset+length_server_id-1]=0; 00109 this->server_id = (char *)(inbuffer + offset-1); 00110 offset += length_server_id; 00111 union { 00112 uint64_t real; 00113 uint32_t base; 00114 } u_seq_num; 00115 u_seq_num.base = 0; 00116 u_seq_num.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 00117 u_seq_num.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00118 u_seq_num.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00119 u_seq_num.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00120 this->seq_num = u_seq_num.real; 00121 offset += sizeof(this->seq_num); 00122 this->type = ((uint8_t) (*(inbuffer + offset))); 00123 offset += sizeof(this->type); 00124 uint32_t markers_lengthT = ((uint32_t) (*(inbuffer + offset))); 00125 markers_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00126 markers_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00127 markers_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00128 offset += sizeof(this->markers_length); 00129 if(markers_lengthT > markers_length) 00130 this->markers = (visualization_msgs::InteractiveMarker*)realloc(this->markers, markers_lengthT * sizeof(visualization_msgs::InteractiveMarker)); 00131 markers_length = markers_lengthT; 00132 for( uint32_t i = 0; i < markers_length; i++){ 00133 offset += this->st_markers.deserialize(inbuffer + offset); 00134 memcpy( &(this->markers[i]), &(this->st_markers), sizeof(visualization_msgs::InteractiveMarker)); 00135 } 00136 uint32_t poses_lengthT = ((uint32_t) (*(inbuffer + offset))); 00137 poses_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00138 poses_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00139 poses_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00140 offset += sizeof(this->poses_length); 00141 if(poses_lengthT > poses_length) 00142 this->poses = (visualization_msgs::InteractiveMarkerPose*)realloc(this->poses, poses_lengthT * sizeof(visualization_msgs::InteractiveMarkerPose)); 00143 poses_length = poses_lengthT; 00144 for( uint32_t i = 0; i < poses_length; i++){ 00145 offset += this->st_poses.deserialize(inbuffer + offset); 00146 memcpy( &(this->poses[i]), &(this->st_poses), sizeof(visualization_msgs::InteractiveMarkerPose)); 00147 } 00148 uint32_t erases_lengthT = ((uint32_t) (*(inbuffer + offset))); 00149 erases_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00150 erases_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00151 erases_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00152 offset += sizeof(this->erases_length); 00153 if(erases_lengthT > erases_length) 00154 this->erases = (char**)realloc(this->erases, erases_lengthT * sizeof(char*)); 00155 erases_length = erases_lengthT; 00156 for( uint32_t i = 0; i < erases_length; i++){ 00157 uint32_t length_st_erases; 00158 arrToVar(length_st_erases, (inbuffer + offset)); 00159 offset += 4; 00160 for(unsigned int k= offset; k< offset+length_st_erases; ++k){ 00161 inbuffer[k-1]=inbuffer[k]; 00162 } 00163 inbuffer[offset+length_st_erases-1]=0; 00164 this->st_erases = (char *)(inbuffer + offset-1); 00165 offset += length_st_erases; 00166 memcpy( &(this->erases[i]), &(this->st_erases), sizeof(char*)); 00167 } 00168 return offset; 00169 } 00170 00171 const char * getType(){ return "visualization_msgs/InteractiveMarkerUpdate"; }; 00172 const char * getMD5(){ return "710d308d0a9276d65945e92dd30b3946"; }; 00173 00174 }; 00175 00176 } 00177 #endif
Generated on Tue Jul 12 2022 17:32:44 by
