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_roscpp_Logger_h
jjzak 6:3c54bc7badd4 2 #define _ROS_roscpp_Logger_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 roscpp
jjzak 6:3c54bc7badd4 10 {
jjzak 6:3c54bc7badd4 11
jjzak 6:3c54bc7badd4 12 class Logger : public ros::Msg
jjzak 6:3c54bc7badd4 13 {
jjzak 6:3c54bc7badd4 14 public:
jjzak 6:3c54bc7badd4 15 char * name;
jjzak 6:3c54bc7badd4 16 char * level;
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_name = strlen( (const char*) this->name);
jjzak 6:3c54bc7badd4 22 memcpy(outbuffer + offset, &length_name, sizeof(uint32_t));
jjzak 6:3c54bc7badd4 23 offset += 4;
jjzak 6:3c54bc7badd4 24 memcpy(outbuffer + offset, this->name, length_name);
jjzak 6:3c54bc7badd4 25 offset += length_name;
jjzak 6:3c54bc7badd4 26 uint32_t length_level = strlen( (const char*) this->level);
jjzak 6:3c54bc7badd4 27 memcpy(outbuffer + offset, &length_level, sizeof(uint32_t));
jjzak 6:3c54bc7badd4 28 offset += 4;
jjzak 6:3c54bc7badd4 29 memcpy(outbuffer + offset, this->level, length_level);
jjzak 6:3c54bc7badd4 30 offset += length_level;
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_name;
jjzak 6:3c54bc7badd4 38 memcpy(&length_name, (inbuffer + offset), sizeof(uint32_t));
jjzak 6:3c54bc7badd4 39 offset += 4;
jjzak 6:3c54bc7badd4 40 for(unsigned int k= offset; k< offset+length_name; ++k){
jjzak 6:3c54bc7badd4 41 inbuffer[k-1]=inbuffer[k];
jjzak 6:3c54bc7badd4 42 }
jjzak 6:3c54bc7badd4 43 inbuffer[offset+length_name-1]=0;
jjzak 6:3c54bc7badd4 44 this->name = (char *)(inbuffer + offset-1);
jjzak 6:3c54bc7badd4 45 offset += length_name;
jjzak 6:3c54bc7badd4 46 uint32_t length_level;
jjzak 6:3c54bc7badd4 47 memcpy(&length_level, (inbuffer + offset), sizeof(uint32_t));
jjzak 6:3c54bc7badd4 48 offset += 4;
jjzak 6:3c54bc7badd4 49 for(unsigned int k= offset; k< offset+length_level; ++k){
jjzak 6:3c54bc7badd4 50 inbuffer[k-1]=inbuffer[k];
jjzak 6:3c54bc7badd4 51 }
jjzak 6:3c54bc7badd4 52 inbuffer[offset+length_level-1]=0;
jjzak 6:3c54bc7badd4 53 this->level = (char *)(inbuffer + offset-1);
jjzak 6:3c54bc7badd4 54 offset += length_level;
jjzak 6:3c54bc7badd4 55 return offset;
jjzak 6:3c54bc7badd4 56 }
jjzak 6:3c54bc7badd4 57
jjzak 6:3c54bc7badd4 58 const char * getType(){ return "roscpp/Logger"; };
jjzak 6:3c54bc7badd4 59 const char * getMD5(){ return "a6069a2ff40db7bd32143dd66e1f408e"; };
jjzak 6:3c54bc7badd4 60
jjzak 6:3c54bc7badd4 61 };
jjzak 6:3c54bc7badd4 62
jjzak 6:3c54bc7badd4 63 }
jjzak 6:3c54bc7badd4 64 #endif