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.
Int16MultiArray.h
00001 #ifndef _ROS_std_msgs_Int16MultiArray_h 00002 #define _ROS_std_msgs_Int16MultiArray_h 00003 00004 #include <stdint.h> 00005 #include <string.h> 00006 #include <stdlib.h> 00007 #include "ros/msg.h" 00008 #include "std_msgs/MultiArrayLayout.h" 00009 00010 namespace std_msgs 00011 { 00012 00013 class Int16MultiArray : public ros::Msg 00014 { 00015 public: 00016 typedef std_msgs::MultiArrayLayout _layout_type; 00017 _layout_type layout; 00018 uint32_t data_length; 00019 typedef int16_t _data_type; 00020 _data_type st_data; 00021 _data_type * data; 00022 00023 Int16MultiArray(): 00024 layout(), 00025 data_length(0), data(NULL) 00026 { 00027 } 00028 00029 virtual int serialize(unsigned char *outbuffer) const 00030 { 00031 int offset = 0; 00032 offset += this->layout.serialize(outbuffer + offset); 00033 *(outbuffer + offset + 0) = (this->data_length >> (8 * 0)) & 0xFF; 00034 *(outbuffer + offset + 1) = (this->data_length >> (8 * 1)) & 0xFF; 00035 *(outbuffer + offset + 2) = (this->data_length >> (8 * 2)) & 0xFF; 00036 *(outbuffer + offset + 3) = (this->data_length >> (8 * 3)) & 0xFF; 00037 offset += sizeof(this->data_length); 00038 for( uint32_t i = 0; i < data_length; i++){ 00039 union { 00040 int16_t real; 00041 uint16_t base; 00042 } u_datai; 00043 u_datai.real = this->data[i]; 00044 *(outbuffer + offset + 0) = (u_datai.base >> (8 * 0)) & 0xFF; 00045 *(outbuffer + offset + 1) = (u_datai.base >> (8 * 1)) & 0xFF; 00046 offset += sizeof(this->data[i]); 00047 } 00048 return offset; 00049 } 00050 00051 virtual int deserialize(unsigned char *inbuffer) 00052 { 00053 int offset = 0; 00054 offset += this->layout.deserialize(inbuffer + offset); 00055 uint32_t data_lengthT = ((uint32_t) (*(inbuffer + offset))); 00056 data_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00057 data_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00058 data_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00059 offset += sizeof(this->data_length); 00060 if(data_lengthT > data_length) 00061 this->data = (int16_t*)realloc(this->data, data_lengthT * sizeof(int16_t)); 00062 data_length = data_lengthT; 00063 for( uint32_t i = 0; i < data_length; i++){ 00064 union { 00065 int16_t real; 00066 uint16_t base; 00067 } u_st_data; 00068 u_st_data.base = 0; 00069 u_st_data.base |= ((uint16_t) (*(inbuffer + offset + 0))) << (8 * 0); 00070 u_st_data.base |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1); 00071 this->st_data = u_st_data.real; 00072 offset += sizeof(this->st_data); 00073 memcpy( &(this->data[i]), &(this->st_data), sizeof(int16_t)); 00074 } 00075 return offset; 00076 } 00077 00078 const char * getType(){ return "std_msgs/Int16MultiArray"; }; 00079 const char * getMD5(){ return "d9338d7f523fcb692fae9d0a0e9f067c"; }; 00080 00081 }; 00082 00083 } 00084 #endif
Generated on Wed Jul 13 2022 23:30:18 by
