modify for Hydro version

Dependencies:   MODSERIAL

Fork of rosserial_mbed_lib by nucho

Committer:
jjzak
Date:
Sat Oct 26 15:38:35 2013 +0000
Revision:
5:8cd48977ec68
modify for Hydro version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jjzak 5:8cd48977ec68 1 #ifndef _ROS_SERVICE_RequestMessageInfo_h
jjzak 5:8cd48977ec68 2 #define _ROS_SERVICE_RequestMessageInfo_h
jjzak 5:8cd48977ec68 3 #include <stdint.h>
jjzak 5:8cd48977ec68 4 #include <string.h>
jjzak 5:8cd48977ec68 5 #include <stdlib.h>
jjzak 5:8cd48977ec68 6 #include "ros/msg.h"
jjzak 5:8cd48977ec68 7
jjzak 5:8cd48977ec68 8 namespace rosserial_msgs
jjzak 5:8cd48977ec68 9 {
jjzak 5:8cd48977ec68 10
jjzak 5:8cd48977ec68 11 static const char REQUESTMESSAGEINFO[] = "rosserial_msgs/RequestMessageInfo";
jjzak 5:8cd48977ec68 12
jjzak 5:8cd48977ec68 13 class RequestMessageInfoRequest : public ros::Msg
jjzak 5:8cd48977ec68 14 {
jjzak 5:8cd48977ec68 15 public:
jjzak 5:8cd48977ec68 16 char * type;
jjzak 5:8cd48977ec68 17
jjzak 5:8cd48977ec68 18 virtual int serialize(unsigned char *outbuffer) const
jjzak 5:8cd48977ec68 19 {
jjzak 5:8cd48977ec68 20 int offset = 0;
jjzak 5:8cd48977ec68 21 uint32_t length_type = strlen( (const char*) this->type);
jjzak 5:8cd48977ec68 22 memcpy(outbuffer + offset, &length_type, sizeof(uint32_t));
jjzak 5:8cd48977ec68 23 offset += 4;
jjzak 5:8cd48977ec68 24 memcpy(outbuffer + offset, this->type, length_type);
jjzak 5:8cd48977ec68 25 offset += length_type;
jjzak 5:8cd48977ec68 26 return offset;
jjzak 5:8cd48977ec68 27 }
jjzak 5:8cd48977ec68 28
jjzak 5:8cd48977ec68 29 virtual int deserialize(unsigned char *inbuffer)
jjzak 5:8cd48977ec68 30 {
jjzak 5:8cd48977ec68 31 int offset = 0;
jjzak 5:8cd48977ec68 32 uint32_t length_type;
jjzak 5:8cd48977ec68 33 memcpy(&length_type, (inbuffer + offset), sizeof(uint32_t));
jjzak 5:8cd48977ec68 34 offset += 4;
jjzak 5:8cd48977ec68 35 for(unsigned int k= offset; k< offset+length_type; ++k){
jjzak 5:8cd48977ec68 36 inbuffer[k-1]=inbuffer[k];
jjzak 5:8cd48977ec68 37 }
jjzak 5:8cd48977ec68 38 inbuffer[offset+length_type-1]=0;
jjzak 5:8cd48977ec68 39 this->type = (char *)(inbuffer + offset-1);
jjzak 5:8cd48977ec68 40 offset += length_type;
jjzak 5:8cd48977ec68 41 return offset;
jjzak 5:8cd48977ec68 42 }
jjzak 5:8cd48977ec68 43
jjzak 5:8cd48977ec68 44 const char * getType(){ return REQUESTMESSAGEINFO; };
jjzak 5:8cd48977ec68 45 const char * getMD5(){ return "dc67331de85cf97091b7d45e5c64ab75"; };
jjzak 5:8cd48977ec68 46
jjzak 5:8cd48977ec68 47 };
jjzak 5:8cd48977ec68 48
jjzak 5:8cd48977ec68 49 class RequestMessageInfoResponse : public ros::Msg
jjzak 5:8cd48977ec68 50 {
jjzak 5:8cd48977ec68 51 public:
jjzak 5:8cd48977ec68 52 char * md5;
jjzak 5:8cd48977ec68 53 char * definition;
jjzak 5:8cd48977ec68 54
jjzak 5:8cd48977ec68 55 virtual int serialize(unsigned char *outbuffer) const
jjzak 5:8cd48977ec68 56 {
jjzak 5:8cd48977ec68 57 int offset = 0;
jjzak 5:8cd48977ec68 58 uint32_t length_md5 = strlen( (const char*) this->md5);
jjzak 5:8cd48977ec68 59 memcpy(outbuffer + offset, &length_md5, sizeof(uint32_t));
jjzak 5:8cd48977ec68 60 offset += 4;
jjzak 5:8cd48977ec68 61 memcpy(outbuffer + offset, this->md5, length_md5);
jjzak 5:8cd48977ec68 62 offset += length_md5;
jjzak 5:8cd48977ec68 63 uint32_t length_definition = strlen( (const char*) this->definition);
jjzak 5:8cd48977ec68 64 memcpy(outbuffer + offset, &length_definition, sizeof(uint32_t));
jjzak 5:8cd48977ec68 65 offset += 4;
jjzak 5:8cd48977ec68 66 memcpy(outbuffer + offset, this->definition, length_definition);
jjzak 5:8cd48977ec68 67 offset += length_definition;
jjzak 5:8cd48977ec68 68 return offset;
jjzak 5:8cd48977ec68 69 }
jjzak 5:8cd48977ec68 70
jjzak 5:8cd48977ec68 71 virtual int deserialize(unsigned char *inbuffer)
jjzak 5:8cd48977ec68 72 {
jjzak 5:8cd48977ec68 73 int offset = 0;
jjzak 5:8cd48977ec68 74 uint32_t length_md5;
jjzak 5:8cd48977ec68 75 memcpy(&length_md5, (inbuffer + offset), sizeof(uint32_t));
jjzak 5:8cd48977ec68 76 offset += 4;
jjzak 5:8cd48977ec68 77 for(unsigned int k= offset; k< offset+length_md5; ++k){
jjzak 5:8cd48977ec68 78 inbuffer[k-1]=inbuffer[k];
jjzak 5:8cd48977ec68 79 }
jjzak 5:8cd48977ec68 80 inbuffer[offset+length_md5-1]=0;
jjzak 5:8cd48977ec68 81 this->md5 = (char *)(inbuffer + offset-1);
jjzak 5:8cd48977ec68 82 offset += length_md5;
jjzak 5:8cd48977ec68 83 uint32_t length_definition;
jjzak 5:8cd48977ec68 84 memcpy(&length_definition, (inbuffer + offset), sizeof(uint32_t));
jjzak 5:8cd48977ec68 85 offset += 4;
jjzak 5:8cd48977ec68 86 for(unsigned int k= offset; k< offset+length_definition; ++k){
jjzak 5:8cd48977ec68 87 inbuffer[k-1]=inbuffer[k];
jjzak 5:8cd48977ec68 88 }
jjzak 5:8cd48977ec68 89 inbuffer[offset+length_definition-1]=0;
jjzak 5:8cd48977ec68 90 this->definition = (char *)(inbuffer + offset-1);
jjzak 5:8cd48977ec68 91 offset += length_definition;
jjzak 5:8cd48977ec68 92 return offset;
jjzak 5:8cd48977ec68 93 }
jjzak 5:8cd48977ec68 94
jjzak 5:8cd48977ec68 95 const char * getType(){ return REQUESTMESSAGEINFO; };
jjzak 5:8cd48977ec68 96 const char * getMD5(){ return "fe452186a069bed40f09b8628fe5eac8"; };
jjzak 5:8cd48977ec68 97
jjzak 5:8cd48977ec68 98 };
jjzak 5:8cd48977ec68 99
jjzak 5:8cd48977ec68 100 class RequestMessageInfo {
jjzak 5:8cd48977ec68 101 public:
jjzak 5:8cd48977ec68 102 typedef RequestMessageInfoRequest Request;
jjzak 5:8cd48977ec68 103 typedef RequestMessageInfoResponse Response;
jjzak 5:8cd48977ec68 104 };
jjzak 5:8cd48977ec68 105
jjzak 5:8cd48977ec68 106 }
jjzak 5:8cd48977ec68 107 #endif
jjzak 5:8cd48977ec68 108