modify for Hydro version

Dependencies:   MODSERIAL

Fork of rosserial_mbed_lib by nucho

Committer:
jjzak
Date:
Sat Oct 26 15:39:01 2013 +0000
Revision:
6:3c54bc7badd4
modify for Hydro version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jjzak 6:3c54bc7badd4 1 #ifndef _ROS_diagnostic_msgs_KeyValue_h
jjzak 6:3c54bc7badd4 2 #define _ROS_diagnostic_msgs_KeyValue_h
jjzak 6:3c54bc7badd4 3
jjzak 6:3c54bc7badd4 4 #include <stdint.h>
jjzak 6:3c54bc7badd4 5 #include <string.h>
jjzak 6:3c54bc7badd4 6 #include <stdlib.h>
jjzak 6:3c54bc7badd4 7 #include "ros/msg.h"
jjzak 6:3c54bc7badd4 8
jjzak 6:3c54bc7badd4 9 namespace diagnostic_msgs
jjzak 6:3c54bc7badd4 10 {
jjzak 6:3c54bc7badd4 11
jjzak 6:3c54bc7badd4 12 class KeyValue : public ros::Msg
jjzak 6:3c54bc7badd4 13 {
jjzak 6:3c54bc7badd4 14 public:
jjzak 6:3c54bc7badd4 15 char * key;
jjzak 6:3c54bc7badd4 16 char * value;
jjzak 6:3c54bc7badd4 17
jjzak 6:3c54bc7badd4 18 virtual int serialize(unsigned char *outbuffer) const
jjzak 6:3c54bc7badd4 19 {
jjzak 6:3c54bc7badd4 20 int offset = 0;
jjzak 6:3c54bc7badd4 21 uint32_t length_key = strlen( (const char*) this->key);
jjzak 6:3c54bc7badd4 22 memcpy(outbuffer + offset, &length_key, sizeof(uint32_t));
jjzak 6:3c54bc7badd4 23 offset += 4;
jjzak 6:3c54bc7badd4 24 memcpy(outbuffer + offset, this->key, length_key);
jjzak 6:3c54bc7badd4 25 offset += length_key;
jjzak 6:3c54bc7badd4 26 uint32_t length_value = strlen( (const char*) this->value);
jjzak 6:3c54bc7badd4 27 memcpy(outbuffer + offset, &length_value, sizeof(uint32_t));
jjzak 6:3c54bc7badd4 28 offset += 4;
jjzak 6:3c54bc7badd4 29 memcpy(outbuffer + offset, this->value, length_value);
jjzak 6:3c54bc7badd4 30 offset += length_value;
jjzak 6:3c54bc7badd4 31 return offset;
jjzak 6:3c54bc7badd4 32 }
jjzak 6:3c54bc7badd4 33
jjzak 6:3c54bc7badd4 34 virtual int deserialize(unsigned char *inbuffer)
jjzak 6:3c54bc7badd4 35 {
jjzak 6:3c54bc7badd4 36 int offset = 0;
jjzak 6:3c54bc7badd4 37 uint32_t length_key;
jjzak 6:3c54bc7badd4 38 memcpy(&length_key, (inbuffer + offset), sizeof(uint32_t));
jjzak 6:3c54bc7badd4 39 offset += 4;
jjzak 6:3c54bc7badd4 40 for(unsigned int k= offset; k< offset+length_key; ++k){
jjzak 6:3c54bc7badd4 41 inbuffer[k-1]=inbuffer[k];
jjzak 6:3c54bc7badd4 42 }
jjzak 6:3c54bc7badd4 43 inbuffer[offset+length_key-1]=0;
jjzak 6:3c54bc7badd4 44 this->key = (char *)(inbuffer + offset-1);
jjzak 6:3c54bc7badd4 45 offset += length_key;
jjzak 6:3c54bc7badd4 46 uint32_t length_value;
jjzak 6:3c54bc7badd4 47 memcpy(&length_value, (inbuffer + offset), sizeof(uint32_t));
jjzak 6:3c54bc7badd4 48 offset += 4;
jjzak 6:3c54bc7badd4 49 for(unsigned int k= offset; k< offset+length_value; ++k){
jjzak 6:3c54bc7badd4 50 inbuffer[k-1]=inbuffer[k];
jjzak 6:3c54bc7badd4 51 }
jjzak 6:3c54bc7badd4 52 inbuffer[offset+length_value-1]=0;
jjzak 6:3c54bc7badd4 53 this->value = (char *)(inbuffer + offset-1);
jjzak 6:3c54bc7badd4 54 offset += length_value;
jjzak 6:3c54bc7badd4 55 return offset;
jjzak 6:3c54bc7badd4 56 }
jjzak 6:3c54bc7badd4 57
jjzak 6:3c54bc7badd4 58 const char * getType(){ return "diagnostic_msgs/KeyValue"; };
jjzak 6:3c54bc7badd4 59 const char * getMD5(){ return "cf57fdc6617a881a88c16e768132149c"; };
jjzak 6:3c54bc7badd4 60
jjzak 6:3c54bc7badd4 61 };
jjzak 6:3c54bc7badd4 62
jjzak 6:3c54bc7badd4 63 }
jjzak 6:3c54bc7badd4 64 #endif