make changes on buffer serial

Dependencies:   BufferedSerial

Dependents:  

Committer:
howanglam3
Date:
Wed May 19 09:50:43 2021 +0000
Revision:
2:3f1139cf73be
Parent:
0:04ac6be8229a
updated buffer serial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Gary Servin 0:04ac6be8229a 1 #ifndef _ROS_dynamic_reconfigure_ConfigDescription_h
Gary Servin 0:04ac6be8229a 2 #define _ROS_dynamic_reconfigure_ConfigDescription_h
Gary Servin 0:04ac6be8229a 3
Gary Servin 0:04ac6be8229a 4 #include <stdint.h>
Gary Servin 0:04ac6be8229a 5 #include <string.h>
Gary Servin 0:04ac6be8229a 6 #include <stdlib.h>
Gary Servin 0:04ac6be8229a 7 #include "ros/msg.h"
Gary Servin 0:04ac6be8229a 8 #include "dynamic_reconfigure/Group.h"
Gary Servin 0:04ac6be8229a 9 #include "dynamic_reconfigure/Config.h"
Gary Servin 0:04ac6be8229a 10
Gary Servin 0:04ac6be8229a 11 namespace dynamic_reconfigure
Gary Servin 0:04ac6be8229a 12 {
Gary Servin 0:04ac6be8229a 13
Gary Servin 0:04ac6be8229a 14 class ConfigDescription : public ros::Msg
Gary Servin 0:04ac6be8229a 15 {
Gary Servin 0:04ac6be8229a 16 public:
Gary Servin 0:04ac6be8229a 17 uint32_t groups_length;
Gary Servin 0:04ac6be8229a 18 typedef dynamic_reconfigure::Group _groups_type;
Gary Servin 0:04ac6be8229a 19 _groups_type st_groups;
Gary Servin 0:04ac6be8229a 20 _groups_type * groups;
Gary Servin 0:04ac6be8229a 21 typedef dynamic_reconfigure::Config _max_type;
Gary Servin 0:04ac6be8229a 22 _max_type max;
Gary Servin 0:04ac6be8229a 23 typedef dynamic_reconfigure::Config _min_type;
Gary Servin 0:04ac6be8229a 24 _min_type min;
Gary Servin 0:04ac6be8229a 25 typedef dynamic_reconfigure::Config _dflt_type;
Gary Servin 0:04ac6be8229a 26 _dflt_type dflt;
Gary Servin 0:04ac6be8229a 27
Gary Servin 0:04ac6be8229a 28 ConfigDescription():
Gary Servin 0:04ac6be8229a 29 groups_length(0), groups(NULL),
Gary Servin 0:04ac6be8229a 30 max(),
Gary Servin 0:04ac6be8229a 31 min(),
Gary Servin 0:04ac6be8229a 32 dflt()
Gary Servin 0:04ac6be8229a 33 {
Gary Servin 0:04ac6be8229a 34 }
Gary Servin 0:04ac6be8229a 35
Gary Servin 0:04ac6be8229a 36 virtual int serialize(unsigned char *outbuffer) const
Gary Servin 0:04ac6be8229a 37 {
Gary Servin 0:04ac6be8229a 38 int offset = 0;
Gary Servin 0:04ac6be8229a 39 *(outbuffer + offset + 0) = (this->groups_length >> (8 * 0)) & 0xFF;
Gary Servin 0:04ac6be8229a 40 *(outbuffer + offset + 1) = (this->groups_length >> (8 * 1)) & 0xFF;
Gary Servin 0:04ac6be8229a 41 *(outbuffer + offset + 2) = (this->groups_length >> (8 * 2)) & 0xFF;
Gary Servin 0:04ac6be8229a 42 *(outbuffer + offset + 3) = (this->groups_length >> (8 * 3)) & 0xFF;
Gary Servin 0:04ac6be8229a 43 offset += sizeof(this->groups_length);
Gary Servin 0:04ac6be8229a 44 for( uint32_t i = 0; i < groups_length; i++){
Gary Servin 0:04ac6be8229a 45 offset += this->groups[i].serialize(outbuffer + offset);
Gary Servin 0:04ac6be8229a 46 }
Gary Servin 0:04ac6be8229a 47 offset += this->max.serialize(outbuffer + offset);
Gary Servin 0:04ac6be8229a 48 offset += this->min.serialize(outbuffer + offset);
Gary Servin 0:04ac6be8229a 49 offset += this->dflt.serialize(outbuffer + offset);
Gary Servin 0:04ac6be8229a 50 return offset;
Gary Servin 0:04ac6be8229a 51 }
Gary Servin 0:04ac6be8229a 52
Gary Servin 0:04ac6be8229a 53 virtual int deserialize(unsigned char *inbuffer)
Gary Servin 0:04ac6be8229a 54 {
Gary Servin 0:04ac6be8229a 55 int offset = 0;
Gary Servin 0:04ac6be8229a 56 uint32_t groups_lengthT = ((uint32_t) (*(inbuffer + offset)));
Gary Servin 0:04ac6be8229a 57 groups_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
Gary Servin 0:04ac6be8229a 58 groups_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
Gary Servin 0:04ac6be8229a 59 groups_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
Gary Servin 0:04ac6be8229a 60 offset += sizeof(this->groups_length);
Gary Servin 0:04ac6be8229a 61 if(groups_lengthT > groups_length)
Gary Servin 0:04ac6be8229a 62 this->groups = (dynamic_reconfigure::Group*)realloc(this->groups, groups_lengthT * sizeof(dynamic_reconfigure::Group));
Gary Servin 0:04ac6be8229a 63 groups_length = groups_lengthT;
Gary Servin 0:04ac6be8229a 64 for( uint32_t i = 0; i < groups_length; i++){
Gary Servin 0:04ac6be8229a 65 offset += this->st_groups.deserialize(inbuffer + offset);
Gary Servin 0:04ac6be8229a 66 memcpy( &(this->groups[i]), &(this->st_groups), sizeof(dynamic_reconfigure::Group));
Gary Servin 0:04ac6be8229a 67 }
Gary Servin 0:04ac6be8229a 68 offset += this->max.deserialize(inbuffer + offset);
Gary Servin 0:04ac6be8229a 69 offset += this->min.deserialize(inbuffer + offset);
Gary Servin 0:04ac6be8229a 70 offset += this->dflt.deserialize(inbuffer + offset);
Gary Servin 0:04ac6be8229a 71 return offset;
Gary Servin 0:04ac6be8229a 72 }
Gary Servin 0:04ac6be8229a 73
Gary Servin 0:04ac6be8229a 74 const char * getType(){ return "dynamic_reconfigure/ConfigDescription"; };
Gary Servin 0:04ac6be8229a 75 const char * getMD5(){ return "757ce9d44ba8ddd801bb30bc456f946f"; };
Gary Servin 0:04ac6be8229a 76
Gary Servin 0:04ac6be8229a 77 };
Gary Servin 0:04ac6be8229a 78
Gary Servin 0:04ac6be8229a 79 }
Gary Servin 0:04ac6be8229a 80 #endif