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_dynamic_reconfigure_Group_h
garyservin 0:9e9b7db60fd5 2 #define _ROS_dynamic_reconfigure_Group_h
garyservin 0:9e9b7db60fd5 3
garyservin 0:9e9b7db60fd5 4 #include <stdint.h>
garyservin 0:9e9b7db60fd5 5 #include <string.h>
garyservin 0:9e9b7db60fd5 6 #include <stdlib.h>
garyservin 0:9e9b7db60fd5 7 #include "ros/msg.h"
garyservin 0:9e9b7db60fd5 8 #include "dynamic_reconfigure/ParamDescription.h"
garyservin 0:9e9b7db60fd5 9
garyservin 0:9e9b7db60fd5 10 namespace dynamic_reconfigure
garyservin 0:9e9b7db60fd5 11 {
garyservin 0:9e9b7db60fd5 12
garyservin 0:9e9b7db60fd5 13 class Group : 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 typedef const char* _type_type;
garyservin 0:9e9b7db60fd5 19 _type_type type;
garyservin 0:9e9b7db60fd5 20 uint32_t parameters_length;
garyservin 0:9e9b7db60fd5 21 typedef dynamic_reconfigure::ParamDescription _parameters_type;
garyservin 0:9e9b7db60fd5 22 _parameters_type st_parameters;
garyservin 0:9e9b7db60fd5 23 _parameters_type * parameters;
garyservin 0:9e9b7db60fd5 24 typedef int32_t _parent_type;
garyservin 0:9e9b7db60fd5 25 _parent_type parent;
garyservin 0:9e9b7db60fd5 26 typedef int32_t _id_type;
garyservin 0:9e9b7db60fd5 27 _id_type id;
garyservin 0:9e9b7db60fd5 28
garyservin 0:9e9b7db60fd5 29 Group():
garyservin 0:9e9b7db60fd5 30 name(""),
garyservin 0:9e9b7db60fd5 31 type(""),
garyservin 0:9e9b7db60fd5 32 parameters_length(0), parameters(NULL),
garyservin 0:9e9b7db60fd5 33 parent(0),
garyservin 0:9e9b7db60fd5 34 id(0)
garyservin 0:9e9b7db60fd5 35 {
garyservin 0:9e9b7db60fd5 36 }
garyservin 0:9e9b7db60fd5 37
garyservin 0:9e9b7db60fd5 38 virtual int serialize(unsigned char *outbuffer) const
garyservin 0:9e9b7db60fd5 39 {
garyservin 0:9e9b7db60fd5 40 int offset = 0;
garyservin 0:9e9b7db60fd5 41 uint32_t length_name = strlen(this->name);
garyservin 0:9e9b7db60fd5 42 varToArr(outbuffer + offset, length_name);
garyservin 0:9e9b7db60fd5 43 offset += 4;
garyservin 0:9e9b7db60fd5 44 memcpy(outbuffer + offset, this->name, length_name);
garyservin 0:9e9b7db60fd5 45 offset += length_name;
garyservin 0:9e9b7db60fd5 46 uint32_t length_type = strlen(this->type);
garyservin 0:9e9b7db60fd5 47 varToArr(outbuffer + offset, length_type);
garyservin 0:9e9b7db60fd5 48 offset += 4;
garyservin 0:9e9b7db60fd5 49 memcpy(outbuffer + offset, this->type, length_type);
garyservin 0:9e9b7db60fd5 50 offset += length_type;
garyservin 0:9e9b7db60fd5 51 *(outbuffer + offset + 0) = (this->parameters_length >> (8 * 0)) & 0xFF;
garyservin 0:9e9b7db60fd5 52 *(outbuffer + offset + 1) = (this->parameters_length >> (8 * 1)) & 0xFF;
garyservin 0:9e9b7db60fd5 53 *(outbuffer + offset + 2) = (this->parameters_length >> (8 * 2)) & 0xFF;
garyservin 0:9e9b7db60fd5 54 *(outbuffer + offset + 3) = (this->parameters_length >> (8 * 3)) & 0xFF;
garyservin 0:9e9b7db60fd5 55 offset += sizeof(this->parameters_length);
garyservin 0:9e9b7db60fd5 56 for( uint32_t i = 0; i < parameters_length; i++){
garyservin 0:9e9b7db60fd5 57 offset += this->parameters[i].serialize(outbuffer + offset);
garyservin 0:9e9b7db60fd5 58 }
garyservin 0:9e9b7db60fd5 59 union {
garyservin 0:9e9b7db60fd5 60 int32_t real;
garyservin 0:9e9b7db60fd5 61 uint32_t base;
garyservin 0:9e9b7db60fd5 62 } u_parent;
garyservin 0:9e9b7db60fd5 63 u_parent.real = this->parent;
garyservin 0:9e9b7db60fd5 64 *(outbuffer + offset + 0) = (u_parent.base >> (8 * 0)) & 0xFF;
garyservin 0:9e9b7db60fd5 65 *(outbuffer + offset + 1) = (u_parent.base >> (8 * 1)) & 0xFF;
garyservin 0:9e9b7db60fd5 66 *(outbuffer + offset + 2) = (u_parent.base >> (8 * 2)) & 0xFF;
garyservin 0:9e9b7db60fd5 67 *(outbuffer + offset + 3) = (u_parent.base >> (8 * 3)) & 0xFF;
garyservin 0:9e9b7db60fd5 68 offset += sizeof(this->parent);
garyservin 0:9e9b7db60fd5 69 union {
garyservin 0:9e9b7db60fd5 70 int32_t real;
garyservin 0:9e9b7db60fd5 71 uint32_t base;
garyservin 0:9e9b7db60fd5 72 } u_id;
garyservin 0:9e9b7db60fd5 73 u_id.real = this->id;
garyservin 0:9e9b7db60fd5 74 *(outbuffer + offset + 0) = (u_id.base >> (8 * 0)) & 0xFF;
garyservin 0:9e9b7db60fd5 75 *(outbuffer + offset + 1) = (u_id.base >> (8 * 1)) & 0xFF;
garyservin 0:9e9b7db60fd5 76 *(outbuffer + offset + 2) = (u_id.base >> (8 * 2)) & 0xFF;
garyservin 0:9e9b7db60fd5 77 *(outbuffer + offset + 3) = (u_id.base >> (8 * 3)) & 0xFF;
garyservin 0:9e9b7db60fd5 78 offset += sizeof(this->id);
garyservin 0:9e9b7db60fd5 79 return offset;
garyservin 0:9e9b7db60fd5 80 }
garyservin 0:9e9b7db60fd5 81
garyservin 0:9e9b7db60fd5 82 virtual int deserialize(unsigned char *inbuffer)
garyservin 0:9e9b7db60fd5 83 {
garyservin 0:9e9b7db60fd5 84 int offset = 0;
garyservin 0:9e9b7db60fd5 85 uint32_t length_name;
garyservin 0:9e9b7db60fd5 86 arrToVar(length_name, (inbuffer + offset));
garyservin 0:9e9b7db60fd5 87 offset += 4;
garyservin 0:9e9b7db60fd5 88 for(unsigned int k= offset; k< offset+length_name; ++k){
garyservin 0:9e9b7db60fd5 89 inbuffer[k-1]=inbuffer[k];
garyservin 0:9e9b7db60fd5 90 }
garyservin 0:9e9b7db60fd5 91 inbuffer[offset+length_name-1]=0;
garyservin 0:9e9b7db60fd5 92 this->name = (char *)(inbuffer + offset-1);
garyservin 0:9e9b7db60fd5 93 offset += length_name;
garyservin 0:9e9b7db60fd5 94 uint32_t length_type;
garyservin 0:9e9b7db60fd5 95 arrToVar(length_type, (inbuffer + offset));
garyservin 0:9e9b7db60fd5 96 offset += 4;
garyservin 0:9e9b7db60fd5 97 for(unsigned int k= offset; k< offset+length_type; ++k){
garyservin 0:9e9b7db60fd5 98 inbuffer[k-1]=inbuffer[k];
garyservin 0:9e9b7db60fd5 99 }
garyservin 0:9e9b7db60fd5 100 inbuffer[offset+length_type-1]=0;
garyservin 0:9e9b7db60fd5 101 this->type = (char *)(inbuffer + offset-1);
garyservin 0:9e9b7db60fd5 102 offset += length_type;
garyservin 0:9e9b7db60fd5 103 uint32_t parameters_lengthT = ((uint32_t) (*(inbuffer + offset)));
garyservin 0:9e9b7db60fd5 104 parameters_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
garyservin 0:9e9b7db60fd5 105 parameters_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
garyservin 0:9e9b7db60fd5 106 parameters_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
garyservin 0:9e9b7db60fd5 107 offset += sizeof(this->parameters_length);
garyservin 0:9e9b7db60fd5 108 if(parameters_lengthT > parameters_length)
garyservin 0:9e9b7db60fd5 109 this->parameters = (dynamic_reconfigure::ParamDescription*)realloc(this->parameters, parameters_lengthT * sizeof(dynamic_reconfigure::ParamDescription));
garyservin 0:9e9b7db60fd5 110 parameters_length = parameters_lengthT;
garyservin 0:9e9b7db60fd5 111 for( uint32_t i = 0; i < parameters_length; i++){
garyservin 0:9e9b7db60fd5 112 offset += this->st_parameters.deserialize(inbuffer + offset);
garyservin 0:9e9b7db60fd5 113 memcpy( &(this->parameters[i]), &(this->st_parameters), sizeof(dynamic_reconfigure::ParamDescription));
garyservin 0:9e9b7db60fd5 114 }
garyservin 0:9e9b7db60fd5 115 union {
garyservin 0:9e9b7db60fd5 116 int32_t real;
garyservin 0:9e9b7db60fd5 117 uint32_t base;
garyservin 0:9e9b7db60fd5 118 } u_parent;
garyservin 0:9e9b7db60fd5 119 u_parent.base = 0;
garyservin 0:9e9b7db60fd5 120 u_parent.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
garyservin 0:9e9b7db60fd5 121 u_parent.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
garyservin 0:9e9b7db60fd5 122 u_parent.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
garyservin 0:9e9b7db60fd5 123 u_parent.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
garyservin 0:9e9b7db60fd5 124 this->parent = u_parent.real;
garyservin 0:9e9b7db60fd5 125 offset += sizeof(this->parent);
garyservin 0:9e9b7db60fd5 126 union {
garyservin 0:9e9b7db60fd5 127 int32_t real;
garyservin 0:9e9b7db60fd5 128 uint32_t base;
garyservin 0:9e9b7db60fd5 129 } u_id;
garyservin 0:9e9b7db60fd5 130 u_id.base = 0;
garyservin 0:9e9b7db60fd5 131 u_id.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
garyservin 0:9e9b7db60fd5 132 u_id.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
garyservin 0:9e9b7db60fd5 133 u_id.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
garyservin 0:9e9b7db60fd5 134 u_id.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
garyservin 0:9e9b7db60fd5 135 this->id = u_id.real;
garyservin 0:9e9b7db60fd5 136 offset += sizeof(this->id);
garyservin 0:9e9b7db60fd5 137 return offset;
garyservin 0:9e9b7db60fd5 138 }
garyservin 0:9e9b7db60fd5 139
garyservin 0:9e9b7db60fd5 140 const char * getType(){ return "dynamic_reconfigure/Group"; };
garyservin 0:9e9b7db60fd5 141 const char * getMD5(){ return "9e8cd9e9423c94823db3614dd8b1cf7a"; };
garyservin 0:9e9b7db60fd5 142
garyservin 0:9e9b7db60fd5 143 };
garyservin 0:9e9b7db60fd5 144
garyservin 0:9e9b7db60fd5 145 }
garyservin 0:9e9b7db60fd5 146 #endif