This is a fork from the original, including a small change in the buffer size of the hardware interface (increased to 2048) and decreasing the number of publishers and subscribers to 5. Besides, the library about the message Adc.h was modified so as to increase the number of available Adc channels to be read ( from 6 to 7 ) For this modification, a change in checksum was required

Dependencies:   BufferedSerial

Fork of ros_lib_kinetic by Gary Servin

Committer:
garyservin
Date:
Sat Dec 31 00:48:34 2016 +0000
Revision:
0:9e9b7db60fd5
Initial commit, generated based on a clean kinetic-desktop-full

Who changed what in which revision?

UserRevisionLine numberNew contents of line
garyservin 0:9e9b7db60fd5 1 #ifndef _ROS_SERVICE_RequestParam_h
garyservin 0:9e9b7db60fd5 2 #define _ROS_SERVICE_RequestParam_h
garyservin 0:9e9b7db60fd5 3 #include <stdint.h>
garyservin 0:9e9b7db60fd5 4 #include <string.h>
garyservin 0:9e9b7db60fd5 5 #include <stdlib.h>
garyservin 0:9e9b7db60fd5 6 #include "ros/msg.h"
garyservin 0:9e9b7db60fd5 7
garyservin 0:9e9b7db60fd5 8 namespace rosserial_msgs
garyservin 0:9e9b7db60fd5 9 {
garyservin 0:9e9b7db60fd5 10
garyservin 0:9e9b7db60fd5 11 static const char REQUESTPARAM[] = "rosserial_msgs/RequestParam";
garyservin 0:9e9b7db60fd5 12
garyservin 0:9e9b7db60fd5 13 class RequestParamRequest : public ros::Msg
garyservin 0:9e9b7db60fd5 14 {
garyservin 0:9e9b7db60fd5 15 public:
garyservin 0:9e9b7db60fd5 16 typedef const char* _name_type;
garyservin 0:9e9b7db60fd5 17 _name_type name;
garyservin 0:9e9b7db60fd5 18
garyservin 0:9e9b7db60fd5 19 RequestParamRequest():
garyservin 0:9e9b7db60fd5 20 name("")
garyservin 0:9e9b7db60fd5 21 {
garyservin 0:9e9b7db60fd5 22 }
garyservin 0:9e9b7db60fd5 23
garyservin 0:9e9b7db60fd5 24 virtual int serialize(unsigned char *outbuffer) const
garyservin 0:9e9b7db60fd5 25 {
garyservin 0:9e9b7db60fd5 26 int offset = 0;
garyservin 0:9e9b7db60fd5 27 uint32_t length_name = strlen(this->name);
garyservin 0:9e9b7db60fd5 28 varToArr(outbuffer + offset, length_name);
garyservin 0:9e9b7db60fd5 29 offset += 4;
garyservin 0:9e9b7db60fd5 30 memcpy(outbuffer + offset, this->name, length_name);
garyservin 0:9e9b7db60fd5 31 offset += length_name;
garyservin 0:9e9b7db60fd5 32 return offset;
garyservin 0:9e9b7db60fd5 33 }
garyservin 0:9e9b7db60fd5 34
garyservin 0:9e9b7db60fd5 35 virtual int deserialize(unsigned char *inbuffer)
garyservin 0:9e9b7db60fd5 36 {
garyservin 0:9e9b7db60fd5 37 int offset = 0;
garyservin 0:9e9b7db60fd5 38 uint32_t length_name;
garyservin 0:9e9b7db60fd5 39 arrToVar(length_name, (inbuffer + offset));
garyservin 0:9e9b7db60fd5 40 offset += 4;
garyservin 0:9e9b7db60fd5 41 for(unsigned int k= offset; k< offset+length_name; ++k){
garyservin 0:9e9b7db60fd5 42 inbuffer[k-1]=inbuffer[k];
garyservin 0:9e9b7db60fd5 43 }
garyservin 0:9e9b7db60fd5 44 inbuffer[offset+length_name-1]=0;
garyservin 0:9e9b7db60fd5 45 this->name = (char *)(inbuffer + offset-1);
garyservin 0:9e9b7db60fd5 46 offset += length_name;
garyservin 0:9e9b7db60fd5 47 return offset;
garyservin 0:9e9b7db60fd5 48 }
garyservin 0:9e9b7db60fd5 49
garyservin 0:9e9b7db60fd5 50 const char * getType(){ return REQUESTPARAM; };
garyservin 0:9e9b7db60fd5 51 const char * getMD5(){ return "c1f3d28f1b044c871e6eff2e9fc3c667"; };
garyservin 0:9e9b7db60fd5 52
garyservin 0:9e9b7db60fd5 53 };
garyservin 0:9e9b7db60fd5 54
garyservin 0:9e9b7db60fd5 55 class RequestParamResponse : public ros::Msg
garyservin 0:9e9b7db60fd5 56 {
garyservin 0:9e9b7db60fd5 57 public:
garyservin 0:9e9b7db60fd5 58 uint32_t ints_length;
garyservin 0:9e9b7db60fd5 59 typedef int32_t _ints_type;
garyservin 0:9e9b7db60fd5 60 _ints_type st_ints;
garyservin 0:9e9b7db60fd5 61 _ints_type * ints;
garyservin 0:9e9b7db60fd5 62 uint32_t floats_length;
garyservin 0:9e9b7db60fd5 63 typedef float _floats_type;
garyservin 0:9e9b7db60fd5 64 _floats_type st_floats;
garyservin 0:9e9b7db60fd5 65 _floats_type * floats;
garyservin 0:9e9b7db60fd5 66 uint32_t strings_length;
garyservin 0:9e9b7db60fd5 67 typedef char* _strings_type;
garyservin 0:9e9b7db60fd5 68 _strings_type st_strings;
garyservin 0:9e9b7db60fd5 69 _strings_type * strings;
garyservin 0:9e9b7db60fd5 70
garyservin 0:9e9b7db60fd5 71 RequestParamResponse():
garyservin 0:9e9b7db60fd5 72 ints_length(0), ints(NULL),
garyservin 0:9e9b7db60fd5 73 floats_length(0), floats(NULL),
garyservin 0:9e9b7db60fd5 74 strings_length(0), strings(NULL)
garyservin 0:9e9b7db60fd5 75 {
garyservin 0:9e9b7db60fd5 76 }
garyservin 0:9e9b7db60fd5 77
garyservin 0:9e9b7db60fd5 78 virtual int serialize(unsigned char *outbuffer) const
garyservin 0:9e9b7db60fd5 79 {
garyservin 0:9e9b7db60fd5 80 int offset = 0;
garyservin 0:9e9b7db60fd5 81 *(outbuffer + offset + 0) = (this->ints_length >> (8 * 0)) & 0xFF;
garyservin 0:9e9b7db60fd5 82 *(outbuffer + offset + 1) = (this->ints_length >> (8 * 1)) & 0xFF;
garyservin 0:9e9b7db60fd5 83 *(outbuffer + offset + 2) = (this->ints_length >> (8 * 2)) & 0xFF;
garyservin 0:9e9b7db60fd5 84 *(outbuffer + offset + 3) = (this->ints_length >> (8 * 3)) & 0xFF;
garyservin 0:9e9b7db60fd5 85 offset += sizeof(this->ints_length);
garyservin 0:9e9b7db60fd5 86 for( uint32_t i = 0; i < ints_length; i++){
garyservin 0:9e9b7db60fd5 87 union {
garyservin 0:9e9b7db60fd5 88 int32_t real;
garyservin 0:9e9b7db60fd5 89 uint32_t base;
garyservin 0:9e9b7db60fd5 90 } u_intsi;
garyservin 0:9e9b7db60fd5 91 u_intsi.real = this->ints[i];
garyservin 0:9e9b7db60fd5 92 *(outbuffer + offset + 0) = (u_intsi.base >> (8 * 0)) & 0xFF;
garyservin 0:9e9b7db60fd5 93 *(outbuffer + offset + 1) = (u_intsi.base >> (8 * 1)) & 0xFF;
garyservin 0:9e9b7db60fd5 94 *(outbuffer + offset + 2) = (u_intsi.base >> (8 * 2)) & 0xFF;
garyservin 0:9e9b7db60fd5 95 *(outbuffer + offset + 3) = (u_intsi.base >> (8 * 3)) & 0xFF;
garyservin 0:9e9b7db60fd5 96 offset += sizeof(this->ints[i]);
garyservin 0:9e9b7db60fd5 97 }
garyservin 0:9e9b7db60fd5 98 *(outbuffer + offset + 0) = (this->floats_length >> (8 * 0)) & 0xFF;
garyservin 0:9e9b7db60fd5 99 *(outbuffer + offset + 1) = (this->floats_length >> (8 * 1)) & 0xFF;
garyservin 0:9e9b7db60fd5 100 *(outbuffer + offset + 2) = (this->floats_length >> (8 * 2)) & 0xFF;
garyservin 0:9e9b7db60fd5 101 *(outbuffer + offset + 3) = (this->floats_length >> (8 * 3)) & 0xFF;
garyservin 0:9e9b7db60fd5 102 offset += sizeof(this->floats_length);
garyservin 0:9e9b7db60fd5 103 for( uint32_t i = 0; i < floats_length; i++){
garyservin 0:9e9b7db60fd5 104 union {
garyservin 0:9e9b7db60fd5 105 float real;
garyservin 0:9e9b7db60fd5 106 uint32_t base;
garyservin 0:9e9b7db60fd5 107 } u_floatsi;
garyservin 0:9e9b7db60fd5 108 u_floatsi.real = this->floats[i];
garyservin 0:9e9b7db60fd5 109 *(outbuffer + offset + 0) = (u_floatsi.base >> (8 * 0)) & 0xFF;
garyservin 0:9e9b7db60fd5 110 *(outbuffer + offset + 1) = (u_floatsi.base >> (8 * 1)) & 0xFF;
garyservin 0:9e9b7db60fd5 111 *(outbuffer + offset + 2) = (u_floatsi.base >> (8 * 2)) & 0xFF;
garyservin 0:9e9b7db60fd5 112 *(outbuffer + offset + 3) = (u_floatsi.base >> (8 * 3)) & 0xFF;
garyservin 0:9e9b7db60fd5 113 offset += sizeof(this->floats[i]);
garyservin 0:9e9b7db60fd5 114 }
garyservin 0:9e9b7db60fd5 115 *(outbuffer + offset + 0) = (this->strings_length >> (8 * 0)) & 0xFF;
garyservin 0:9e9b7db60fd5 116 *(outbuffer + offset + 1) = (this->strings_length >> (8 * 1)) & 0xFF;
garyservin 0:9e9b7db60fd5 117 *(outbuffer + offset + 2) = (this->strings_length >> (8 * 2)) & 0xFF;
garyservin 0:9e9b7db60fd5 118 *(outbuffer + offset + 3) = (this->strings_length >> (8 * 3)) & 0xFF;
garyservin 0:9e9b7db60fd5 119 offset += sizeof(this->strings_length);
garyservin 0:9e9b7db60fd5 120 for( uint32_t i = 0; i < strings_length; i++){
garyservin 0:9e9b7db60fd5 121 uint32_t length_stringsi = strlen(this->strings[i]);
garyservin 0:9e9b7db60fd5 122 varToArr(outbuffer + offset, length_stringsi);
garyservin 0:9e9b7db60fd5 123 offset += 4;
garyservin 0:9e9b7db60fd5 124 memcpy(outbuffer + offset, this->strings[i], length_stringsi);
garyservin 0:9e9b7db60fd5 125 offset += length_stringsi;
garyservin 0:9e9b7db60fd5 126 }
garyservin 0:9e9b7db60fd5 127 return offset;
garyservin 0:9e9b7db60fd5 128 }
garyservin 0:9e9b7db60fd5 129
garyservin 0:9e9b7db60fd5 130 virtual int deserialize(unsigned char *inbuffer)
garyservin 0:9e9b7db60fd5 131 {
garyservin 0:9e9b7db60fd5 132 int offset = 0;
garyservin 0:9e9b7db60fd5 133 uint32_t ints_lengthT = ((uint32_t) (*(inbuffer + offset)));
garyservin 0:9e9b7db60fd5 134 ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
garyservin 0:9e9b7db60fd5 135 ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
garyservin 0:9e9b7db60fd5 136 ints_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
garyservin 0:9e9b7db60fd5 137 offset += sizeof(this->ints_length);
garyservin 0:9e9b7db60fd5 138 if(ints_lengthT > ints_length)
garyservin 0:9e9b7db60fd5 139 this->ints = (int32_t*)realloc(this->ints, ints_lengthT * sizeof(int32_t));
garyservin 0:9e9b7db60fd5 140 ints_length = ints_lengthT;
garyservin 0:9e9b7db60fd5 141 for( uint32_t i = 0; i < ints_length; i++){
garyservin 0:9e9b7db60fd5 142 union {
garyservin 0:9e9b7db60fd5 143 int32_t real;
garyservin 0:9e9b7db60fd5 144 uint32_t base;
garyservin 0:9e9b7db60fd5 145 } u_st_ints;
garyservin 0:9e9b7db60fd5 146 u_st_ints.base = 0;
garyservin 0:9e9b7db60fd5 147 u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
garyservin 0:9e9b7db60fd5 148 u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
garyservin 0:9e9b7db60fd5 149 u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
garyservin 0:9e9b7db60fd5 150 u_st_ints.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
garyservin 0:9e9b7db60fd5 151 this->st_ints = u_st_ints.real;
garyservin 0:9e9b7db60fd5 152 offset += sizeof(this->st_ints);
garyservin 0:9e9b7db60fd5 153 memcpy( &(this->ints[i]), &(this->st_ints), sizeof(int32_t));
garyservin 0:9e9b7db60fd5 154 }
garyservin 0:9e9b7db60fd5 155 uint32_t floats_lengthT = ((uint32_t) (*(inbuffer + offset)));
garyservin 0:9e9b7db60fd5 156 floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
garyservin 0:9e9b7db60fd5 157 floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
garyservin 0:9e9b7db60fd5 158 floats_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
garyservin 0:9e9b7db60fd5 159 offset += sizeof(this->floats_length);
garyservin 0:9e9b7db60fd5 160 if(floats_lengthT > floats_length)
garyservin 0:9e9b7db60fd5 161 this->floats = (float*)realloc(this->floats, floats_lengthT * sizeof(float));
garyservin 0:9e9b7db60fd5 162 floats_length = floats_lengthT;
garyservin 0:9e9b7db60fd5 163 for( uint32_t i = 0; i < floats_length; i++){
garyservin 0:9e9b7db60fd5 164 union {
garyservin 0:9e9b7db60fd5 165 float real;
garyservin 0:9e9b7db60fd5 166 uint32_t base;
garyservin 0:9e9b7db60fd5 167 } u_st_floats;
garyservin 0:9e9b7db60fd5 168 u_st_floats.base = 0;
garyservin 0:9e9b7db60fd5 169 u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
garyservin 0:9e9b7db60fd5 170 u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
garyservin 0:9e9b7db60fd5 171 u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
garyservin 0:9e9b7db60fd5 172 u_st_floats.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
garyservin 0:9e9b7db60fd5 173 this->st_floats = u_st_floats.real;
garyservin 0:9e9b7db60fd5 174 offset += sizeof(this->st_floats);
garyservin 0:9e9b7db60fd5 175 memcpy( &(this->floats[i]), &(this->st_floats), sizeof(float));
garyservin 0:9e9b7db60fd5 176 }
garyservin 0:9e9b7db60fd5 177 uint32_t strings_lengthT = ((uint32_t) (*(inbuffer + offset)));
garyservin 0:9e9b7db60fd5 178 strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
garyservin 0:9e9b7db60fd5 179 strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
garyservin 0:9e9b7db60fd5 180 strings_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
garyservin 0:9e9b7db60fd5 181 offset += sizeof(this->strings_length);
garyservin 0:9e9b7db60fd5 182 if(strings_lengthT > strings_length)
garyservin 0:9e9b7db60fd5 183 this->strings = (char**)realloc(this->strings, strings_lengthT * sizeof(char*));
garyservin 0:9e9b7db60fd5 184 strings_length = strings_lengthT;
garyservin 0:9e9b7db60fd5 185 for( uint32_t i = 0; i < strings_length; i++){
garyservin 0:9e9b7db60fd5 186 uint32_t length_st_strings;
garyservin 0:9e9b7db60fd5 187 arrToVar(length_st_strings, (inbuffer + offset));
garyservin 0:9e9b7db60fd5 188 offset += 4;
garyservin 0:9e9b7db60fd5 189 for(unsigned int k= offset; k< offset+length_st_strings; ++k){
garyservin 0:9e9b7db60fd5 190 inbuffer[k-1]=inbuffer[k];
garyservin 0:9e9b7db60fd5 191 }
garyservin 0:9e9b7db60fd5 192 inbuffer[offset+length_st_strings-1]=0;
garyservin 0:9e9b7db60fd5 193 this->st_strings = (char *)(inbuffer + offset-1);
garyservin 0:9e9b7db60fd5 194 offset += length_st_strings;
garyservin 0:9e9b7db60fd5 195 memcpy( &(this->strings[i]), &(this->st_strings), sizeof(char*));
garyservin 0:9e9b7db60fd5 196 }
garyservin 0:9e9b7db60fd5 197 return offset;
garyservin 0:9e9b7db60fd5 198 }
garyservin 0:9e9b7db60fd5 199
garyservin 0:9e9b7db60fd5 200 const char * getType(){ return REQUESTPARAM; };
garyservin 0:9e9b7db60fd5 201 const char * getMD5(){ return "9f0e98bda65981986ddf53afa7a40e49"; };
garyservin 0:9e9b7db60fd5 202
garyservin 0:9e9b7db60fd5 203 };
garyservin 0:9e9b7db60fd5 204
garyservin 0:9e9b7db60fd5 205 class RequestParam {
garyservin 0:9e9b7db60fd5 206 public:
garyservin 0:9e9b7db60fd5 207 typedef RequestParamRequest Request;
garyservin 0:9e9b7db60fd5 208 typedef RequestParamResponse Response;
garyservin 0:9e9b7db60fd5 209 };
garyservin 0:9e9b7db60fd5 210
garyservin 0:9e9b7db60fd5 211 }
garyservin 0:9e9b7db60fd5 212 #endif