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.
DebugValue.h
00001 #ifndef _ROS_mavros_msgs_DebugValue_h 00002 #define _ROS_mavros_msgs_DebugValue_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 mavros_msgs 00011 { 00012 00013 class DebugValue : public ros::Msg 00014 { 00015 public: 00016 typedef std_msgs::Header _header_type; 00017 _header_type header; 00018 typedef int32_t _index_type; 00019 _index_type index; 00020 typedef const char* _name_type; 00021 _name_type name; 00022 typedef float _value_float_type; 00023 _value_float_type value_float; 00024 typedef int32_t _value_int_type; 00025 _value_int_type value_int; 00026 uint32_t data_length; 00027 typedef float _data_type; 00028 _data_type st_data; 00029 _data_type * data; 00030 typedef uint8_t _type_type; 00031 _type_type type; 00032 enum { TYPE_DEBUG = 0 }; 00033 enum { TYPE_DEBUG_VECT = 1 }; 00034 enum { TYPE_DEBUG_ARRAY = 2 }; 00035 enum { TYPE_NAMED_VALUE_FLOAT = 3 }; 00036 enum { TYPE_NAMED_VALUE_INT = 4 }; 00037 00038 DebugValue(): 00039 header(), 00040 index(0), 00041 name(""), 00042 value_float(0), 00043 value_int(0), 00044 data_length(0), data(NULL), 00045 type(0) 00046 { 00047 } 00048 00049 virtual int serialize(unsigned char *outbuffer) const 00050 { 00051 int offset = 0; 00052 offset += this->header.serialize(outbuffer + offset); 00053 union { 00054 int32_t real; 00055 uint32_t base; 00056 } u_index; 00057 u_index.real = this->index; 00058 *(outbuffer + offset + 0) = (u_index.base >> (8 * 0)) & 0xFF; 00059 *(outbuffer + offset + 1) = (u_index.base >> (8 * 1)) & 0xFF; 00060 *(outbuffer + offset + 2) = (u_index.base >> (8 * 2)) & 0xFF; 00061 *(outbuffer + offset + 3) = (u_index.base >> (8 * 3)) & 0xFF; 00062 offset += sizeof(this->index); 00063 uint32_t length_name = strlen(this->name); 00064 varToArr(outbuffer + offset, length_name); 00065 offset += 4; 00066 memcpy(outbuffer + offset, this->name, length_name); 00067 offset += length_name; 00068 union { 00069 float real; 00070 uint32_t base; 00071 } u_value_float; 00072 u_value_float.real = this->value_float; 00073 *(outbuffer + offset + 0) = (u_value_float.base >> (8 * 0)) & 0xFF; 00074 *(outbuffer + offset + 1) = (u_value_float.base >> (8 * 1)) & 0xFF; 00075 *(outbuffer + offset + 2) = (u_value_float.base >> (8 * 2)) & 0xFF; 00076 *(outbuffer + offset + 3) = (u_value_float.base >> (8 * 3)) & 0xFF; 00077 offset += sizeof(this->value_float); 00078 union { 00079 int32_t real; 00080 uint32_t base; 00081 } u_value_int; 00082 u_value_int.real = this->value_int; 00083 *(outbuffer + offset + 0) = (u_value_int.base >> (8 * 0)) & 0xFF; 00084 *(outbuffer + offset + 1) = (u_value_int.base >> (8 * 1)) & 0xFF; 00085 *(outbuffer + offset + 2) = (u_value_int.base >> (8 * 2)) & 0xFF; 00086 *(outbuffer + offset + 3) = (u_value_int.base >> (8 * 3)) & 0xFF; 00087 offset += sizeof(this->value_int); 00088 *(outbuffer + offset + 0) = (this->data_length >> (8 * 0)) & 0xFF; 00089 *(outbuffer + offset + 1) = (this->data_length >> (8 * 1)) & 0xFF; 00090 *(outbuffer + offset + 2) = (this->data_length >> (8 * 2)) & 0xFF; 00091 *(outbuffer + offset + 3) = (this->data_length >> (8 * 3)) & 0xFF; 00092 offset += sizeof(this->data_length); 00093 for( uint32_t i = 0; i < data_length; i++){ 00094 union { 00095 float real; 00096 uint32_t base; 00097 } u_datai; 00098 u_datai.real = this->data[i]; 00099 *(outbuffer + offset + 0) = (u_datai.base >> (8 * 0)) & 0xFF; 00100 *(outbuffer + offset + 1) = (u_datai.base >> (8 * 1)) & 0xFF; 00101 *(outbuffer + offset + 2) = (u_datai.base >> (8 * 2)) & 0xFF; 00102 *(outbuffer + offset + 3) = (u_datai.base >> (8 * 3)) & 0xFF; 00103 offset += sizeof(this->data[i]); 00104 } 00105 *(outbuffer + offset + 0) = (this->type >> (8 * 0)) & 0xFF; 00106 offset += sizeof(this->type); 00107 return offset; 00108 } 00109 00110 virtual int deserialize(unsigned char *inbuffer) 00111 { 00112 int offset = 0; 00113 offset += this->header.deserialize(inbuffer + offset); 00114 union { 00115 int32_t real; 00116 uint32_t base; 00117 } u_index; 00118 u_index.base = 0; 00119 u_index.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 00120 u_index.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00121 u_index.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00122 u_index.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00123 this->index = u_index.real; 00124 offset += sizeof(this->index); 00125 uint32_t length_name; 00126 arrToVar(length_name, (inbuffer + offset)); 00127 offset += 4; 00128 for(unsigned int k= offset; k< offset+length_name; ++k){ 00129 inbuffer[k-1]=inbuffer[k]; 00130 } 00131 inbuffer[offset+length_name-1]=0; 00132 this->name = (char *)(inbuffer + offset-1); 00133 offset += length_name; 00134 union { 00135 float real; 00136 uint32_t base; 00137 } u_value_float; 00138 u_value_float.base = 0; 00139 u_value_float.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 00140 u_value_float.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00141 u_value_float.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00142 u_value_float.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00143 this->value_float = u_value_float.real; 00144 offset += sizeof(this->value_float); 00145 union { 00146 int32_t real; 00147 uint32_t base; 00148 } u_value_int; 00149 u_value_int.base = 0; 00150 u_value_int.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 00151 u_value_int.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00152 u_value_int.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00153 u_value_int.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00154 this->value_int = u_value_int.real; 00155 offset += sizeof(this->value_int); 00156 uint32_t data_lengthT = ((uint32_t) (*(inbuffer + offset))); 00157 data_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00158 data_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00159 data_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00160 offset += sizeof(this->data_length); 00161 if(data_lengthT > data_length) 00162 this->data = (float*)realloc(this->data, data_lengthT * sizeof(float)); 00163 data_length = data_lengthT; 00164 for( uint32_t i = 0; i < data_length; i++){ 00165 union { 00166 float real; 00167 uint32_t base; 00168 } u_st_data; 00169 u_st_data.base = 0; 00170 u_st_data.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0); 00171 u_st_data.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00172 u_st_data.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00173 u_st_data.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00174 this->st_data = u_st_data.real; 00175 offset += sizeof(this->st_data); 00176 memcpy( &(this->data[i]), &(this->st_data), sizeof(float)); 00177 } 00178 this->type = ((uint8_t) (*(inbuffer + offset))); 00179 offset += sizeof(this->type); 00180 return offset; 00181 } 00182 00183 const char * getType(){ return "mavros_msgs/DebugValue"; }; 00184 const char * getMD5(){ return "af412ff7223c64155e7e3c6b7508eaaa"; }; 00185 00186 }; 00187 00188 } 00189 #endif
Generated on Thu Jul 14 2022 10:09:23 by
