Personal fork

Dependencies:   MODSERIAL

Dependents:   rosserial_mbed

Fork of rosserial_mbed_lib by nucho

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MuxSelect.h Source File

MuxSelect.h

00001 #ifndef _ROS_SERVICE_MuxSelect_h
00002 #define _ROS_SERVICE_MuxSelect_h
00003 #include <stdint.h>
00004 #include <string.h>
00005 #include <stdlib.h>
00006 #include "ros/msg.h"
00007 
00008 namespace topic_tools
00009 {
00010 
00011 static const char MUXSELECT[] = "topic_tools/MuxSelect";
00012 
00013   class MuxSelectRequest : public ros::Msg
00014   {
00015     public:
00016       char * topic;
00017 
00018     virtual int serialize(unsigned char *outbuffer) const
00019     {
00020       int offset = 0;
00021       uint32_t * length_topic = (uint32_t *)(outbuffer + offset);
00022       *length_topic = strlen( (const char*) this->topic);
00023       offset += 4;
00024       memcpy(outbuffer + offset, this->topic, *length_topic);
00025       offset += *length_topic;
00026       return offset;
00027     }
00028 
00029     virtual int deserialize(unsigned char *inbuffer)
00030     {
00031       int offset = 0;
00032       uint32_t length_topic = *(uint32_t *)(inbuffer + offset);
00033       offset += 4;
00034       for(unsigned int k= offset; k< offset+length_topic; ++k){
00035           inbuffer[k-1]=inbuffer[k];
00036       }
00037       inbuffer[offset+length_topic-1]=0;
00038       this->topic = (char *)(inbuffer + offset-1);
00039       offset += length_topic;
00040      return offset;
00041     }
00042 
00043     virtual const char * getType(){ return MUXSELECT; };
00044     virtual const char * getMD5(){ return "d8f94bae31b356b24d0427f80426d0c3"; };
00045 
00046   };
00047 
00048   class MuxSelectResponse : public ros::Msg
00049   {
00050     public:
00051       char * prev_topic;
00052 
00053     virtual int serialize(unsigned char *outbuffer) const
00054     {
00055       int offset = 0;
00056       uint32_t * length_prev_topic = (uint32_t *)(outbuffer + offset);
00057       *length_prev_topic = strlen( (const char*) this->prev_topic);
00058       offset += 4;
00059       memcpy(outbuffer + offset, this->prev_topic, *length_prev_topic);
00060       offset += *length_prev_topic;
00061       return offset;
00062     }
00063 
00064     virtual int deserialize(unsigned char *inbuffer)
00065     {
00066       int offset = 0;
00067       uint32_t length_prev_topic = *(uint32_t *)(inbuffer + offset);
00068       offset += 4;
00069       for(unsigned int k= offset; k< offset+length_prev_topic; ++k){
00070           inbuffer[k-1]=inbuffer[k];
00071       }
00072       inbuffer[offset+length_prev_topic-1]=0;
00073       this->prev_topic = (char *)(inbuffer + offset-1);
00074       offset += length_prev_topic;
00075      return offset;
00076     }
00077 
00078     virtual const char * getType(){ return MUXSELECT; };
00079     virtual const char * getMD5(){ return "3db0a473debdbafea387c9e49358c320"; };
00080 
00081   };
00082 
00083   class MuxSelect {
00084     public:
00085     typedef MuxSelectRequest Request;
00086     typedef MuxSelectResponse Response;
00087   };
00088 
00089 }
00090 #endif