rosserial library for mbed Inspired by nucho's rosserial library This library is still under development

Dependencies:   MODSERIAL mbed

Dependents:   mbed_roshydro_test

Library still under development!

Committer:
akashvibhute
Date:
Sun Feb 15 10:53:43 2015 +0000
Revision:
0:30537dec6e0b
First commit; Library still need to be debugged, compilation issues with new mbed and modserial updates.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
akashvibhute 0:30537dec6e0b 1 #ifndef _ROS_dynamic_reconfigure_Config_h
akashvibhute 0:30537dec6e0b 2 #define _ROS_dynamic_reconfigure_Config_h
akashvibhute 0:30537dec6e0b 3
akashvibhute 0:30537dec6e0b 4 #include <stdint.h>
akashvibhute 0:30537dec6e0b 5 #include <string.h>
akashvibhute 0:30537dec6e0b 6 #include <stdlib.h>
akashvibhute 0:30537dec6e0b 7 #include "ros/msg.h"
akashvibhute 0:30537dec6e0b 8 #include "dynamic_reconfigure/BoolParameter.h"
akashvibhute 0:30537dec6e0b 9 #include "dynamic_reconfigure/IntParameter.h"
akashvibhute 0:30537dec6e0b 10 #include "dynamic_reconfigure/StrParameter.h"
akashvibhute 0:30537dec6e0b 11 #include "dynamic_reconfigure/DoubleParameter.h"
akashvibhute 0:30537dec6e0b 12 #include "dynamic_reconfigure/GroupState.h"
akashvibhute 0:30537dec6e0b 13
akashvibhute 0:30537dec6e0b 14 namespace dynamic_reconfigure
akashvibhute 0:30537dec6e0b 15 {
akashvibhute 0:30537dec6e0b 16
akashvibhute 0:30537dec6e0b 17 class Config : public ros::Msg
akashvibhute 0:30537dec6e0b 18 {
akashvibhute 0:30537dec6e0b 19 public:
akashvibhute 0:30537dec6e0b 20 uint8_t bools_length;
akashvibhute 0:30537dec6e0b 21 dynamic_reconfigure::BoolParameter st_bools;
akashvibhute 0:30537dec6e0b 22 dynamic_reconfigure::BoolParameter * bools;
akashvibhute 0:30537dec6e0b 23 uint8_t ints_length;
akashvibhute 0:30537dec6e0b 24 dynamic_reconfigure::IntParameter st_ints;
akashvibhute 0:30537dec6e0b 25 dynamic_reconfigure::IntParameter * ints;
akashvibhute 0:30537dec6e0b 26 uint8_t strs_length;
akashvibhute 0:30537dec6e0b 27 dynamic_reconfigure::StrParameter st_strs;
akashvibhute 0:30537dec6e0b 28 dynamic_reconfigure::StrParameter * strs;
akashvibhute 0:30537dec6e0b 29 uint8_t doubles_length;
akashvibhute 0:30537dec6e0b 30 dynamic_reconfigure::DoubleParameter st_doubles;
akashvibhute 0:30537dec6e0b 31 dynamic_reconfigure::DoubleParameter * doubles;
akashvibhute 0:30537dec6e0b 32 uint8_t groups_length;
akashvibhute 0:30537dec6e0b 33 dynamic_reconfigure::GroupState st_groups;
akashvibhute 0:30537dec6e0b 34 dynamic_reconfigure::GroupState * groups;
akashvibhute 0:30537dec6e0b 35
akashvibhute 0:30537dec6e0b 36 Config():
akashvibhute 0:30537dec6e0b 37 bools_length(0), bools(NULL),
akashvibhute 0:30537dec6e0b 38 ints_length(0), ints(NULL),
akashvibhute 0:30537dec6e0b 39 strs_length(0), strs(NULL),
akashvibhute 0:30537dec6e0b 40 doubles_length(0), doubles(NULL),
akashvibhute 0:30537dec6e0b 41 groups_length(0), groups(NULL)
akashvibhute 0:30537dec6e0b 42 {
akashvibhute 0:30537dec6e0b 43 }
akashvibhute 0:30537dec6e0b 44
akashvibhute 0:30537dec6e0b 45 virtual int serialize(unsigned char *outbuffer) const
akashvibhute 0:30537dec6e0b 46 {
akashvibhute 0:30537dec6e0b 47 int offset = 0;
akashvibhute 0:30537dec6e0b 48 *(outbuffer + offset++) = bools_length;
akashvibhute 0:30537dec6e0b 49 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 50 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 51 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 52 for( uint8_t i = 0; i < bools_length; i++){
akashvibhute 0:30537dec6e0b 53 offset += this->bools[i].serialize(outbuffer + offset);
akashvibhute 0:30537dec6e0b 54 }
akashvibhute 0:30537dec6e0b 55 *(outbuffer + offset++) = ints_length;
akashvibhute 0:30537dec6e0b 56 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 57 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 58 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 59 for( uint8_t i = 0; i < ints_length; i++){
akashvibhute 0:30537dec6e0b 60 offset += this->ints[i].serialize(outbuffer + offset);
akashvibhute 0:30537dec6e0b 61 }
akashvibhute 0:30537dec6e0b 62 *(outbuffer + offset++) = strs_length;
akashvibhute 0:30537dec6e0b 63 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 64 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 65 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 66 for( uint8_t i = 0; i < strs_length; i++){
akashvibhute 0:30537dec6e0b 67 offset += this->strs[i].serialize(outbuffer + offset);
akashvibhute 0:30537dec6e0b 68 }
akashvibhute 0:30537dec6e0b 69 *(outbuffer + offset++) = doubles_length;
akashvibhute 0:30537dec6e0b 70 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 71 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 72 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 73 for( uint8_t i = 0; i < doubles_length; i++){
akashvibhute 0:30537dec6e0b 74 offset += this->doubles[i].serialize(outbuffer + offset);
akashvibhute 0:30537dec6e0b 75 }
akashvibhute 0:30537dec6e0b 76 *(outbuffer + offset++) = groups_length;
akashvibhute 0:30537dec6e0b 77 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 78 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 79 *(outbuffer + offset++) = 0;
akashvibhute 0:30537dec6e0b 80 for( uint8_t i = 0; i < groups_length; i++){
akashvibhute 0:30537dec6e0b 81 offset += this->groups[i].serialize(outbuffer + offset);
akashvibhute 0:30537dec6e0b 82 }
akashvibhute 0:30537dec6e0b 83 return offset;
akashvibhute 0:30537dec6e0b 84 }
akashvibhute 0:30537dec6e0b 85
akashvibhute 0:30537dec6e0b 86 virtual int deserialize(unsigned char *inbuffer)
akashvibhute 0:30537dec6e0b 87 {
akashvibhute 0:30537dec6e0b 88 int offset = 0;
akashvibhute 0:30537dec6e0b 89 uint8_t bools_lengthT = *(inbuffer + offset++);
akashvibhute 0:30537dec6e0b 90 if(bools_lengthT > bools_length)
akashvibhute 0:30537dec6e0b 91 this->bools = (dynamic_reconfigure::BoolParameter*)realloc(this->bools, bools_lengthT * sizeof(dynamic_reconfigure::BoolParameter));
akashvibhute 0:30537dec6e0b 92 offset += 3;
akashvibhute 0:30537dec6e0b 93 bools_length = bools_lengthT;
akashvibhute 0:30537dec6e0b 94 for( uint8_t i = 0; i < bools_length; i++){
akashvibhute 0:30537dec6e0b 95 offset += this->st_bools.deserialize(inbuffer + offset);
akashvibhute 0:30537dec6e0b 96 memcpy( &(this->bools[i]), &(this->st_bools), sizeof(dynamic_reconfigure::BoolParameter));
akashvibhute 0:30537dec6e0b 97 }
akashvibhute 0:30537dec6e0b 98 uint8_t ints_lengthT = *(inbuffer + offset++);
akashvibhute 0:30537dec6e0b 99 if(ints_lengthT > ints_length)
akashvibhute 0:30537dec6e0b 100 this->ints = (dynamic_reconfigure::IntParameter*)realloc(this->ints, ints_lengthT * sizeof(dynamic_reconfigure::IntParameter));
akashvibhute 0:30537dec6e0b 101 offset += 3;
akashvibhute 0:30537dec6e0b 102 ints_length = ints_lengthT;
akashvibhute 0:30537dec6e0b 103 for( uint8_t i = 0; i < ints_length; i++){
akashvibhute 0:30537dec6e0b 104 offset += this->st_ints.deserialize(inbuffer + offset);
akashvibhute 0:30537dec6e0b 105 memcpy( &(this->ints[i]), &(this->st_ints), sizeof(dynamic_reconfigure::IntParameter));
akashvibhute 0:30537dec6e0b 106 }
akashvibhute 0:30537dec6e0b 107 uint8_t strs_lengthT = *(inbuffer + offset++);
akashvibhute 0:30537dec6e0b 108 if(strs_lengthT > strs_length)
akashvibhute 0:30537dec6e0b 109 this->strs = (dynamic_reconfigure::StrParameter*)realloc(this->strs, strs_lengthT * sizeof(dynamic_reconfigure::StrParameter));
akashvibhute 0:30537dec6e0b 110 offset += 3;
akashvibhute 0:30537dec6e0b 111 strs_length = strs_lengthT;
akashvibhute 0:30537dec6e0b 112 for( uint8_t i = 0; i < strs_length; i++){
akashvibhute 0:30537dec6e0b 113 offset += this->st_strs.deserialize(inbuffer + offset);
akashvibhute 0:30537dec6e0b 114 memcpy( &(this->strs[i]), &(this->st_strs), sizeof(dynamic_reconfigure::StrParameter));
akashvibhute 0:30537dec6e0b 115 }
akashvibhute 0:30537dec6e0b 116 uint8_t doubles_lengthT = *(inbuffer + offset++);
akashvibhute 0:30537dec6e0b 117 if(doubles_lengthT > doubles_length)
akashvibhute 0:30537dec6e0b 118 this->doubles = (dynamic_reconfigure::DoubleParameter*)realloc(this->doubles, doubles_lengthT * sizeof(dynamic_reconfigure::DoubleParameter));
akashvibhute 0:30537dec6e0b 119 offset += 3;
akashvibhute 0:30537dec6e0b 120 doubles_length = doubles_lengthT;
akashvibhute 0:30537dec6e0b 121 for( uint8_t i = 0; i < doubles_length; i++){
akashvibhute 0:30537dec6e0b 122 offset += this->st_doubles.deserialize(inbuffer + offset);
akashvibhute 0:30537dec6e0b 123 memcpy( &(this->doubles[i]), &(this->st_doubles), sizeof(dynamic_reconfigure::DoubleParameter));
akashvibhute 0:30537dec6e0b 124 }
akashvibhute 0:30537dec6e0b 125 uint8_t groups_lengthT = *(inbuffer + offset++);
akashvibhute 0:30537dec6e0b 126 if(groups_lengthT > groups_length)
akashvibhute 0:30537dec6e0b 127 this->groups = (dynamic_reconfigure::GroupState*)realloc(this->groups, groups_lengthT * sizeof(dynamic_reconfigure::GroupState));
akashvibhute 0:30537dec6e0b 128 offset += 3;
akashvibhute 0:30537dec6e0b 129 groups_length = groups_lengthT;
akashvibhute 0:30537dec6e0b 130 for( uint8_t i = 0; i < groups_length; i++){
akashvibhute 0:30537dec6e0b 131 offset += this->st_groups.deserialize(inbuffer + offset);
akashvibhute 0:30537dec6e0b 132 memcpy( &(this->groups[i]), &(this->st_groups), sizeof(dynamic_reconfigure::GroupState));
akashvibhute 0:30537dec6e0b 133 }
akashvibhute 0:30537dec6e0b 134 return offset;
akashvibhute 0:30537dec6e0b 135 }
akashvibhute 0:30537dec6e0b 136
akashvibhute 0:30537dec6e0b 137 const char * getType(){ return "dynamic_reconfigure/Config"; };
akashvibhute 0:30537dec6e0b 138 const char * getMD5(){ return "958f16a05573709014982821e6822580"; };
akashvibhute 0:30537dec6e0b 139
akashvibhute 0:30537dec6e0b 140 };
akashvibhute 0:30537dec6e0b 141
akashvibhute 0:30537dec6e0b 142 }
akashvibhute 0:30537dec6e0b 143 #endif