rosserial library for mbed Inspired by nucho's rosserial library This library is still under development

Dependencies:   MODSERIAL mbed

Dependents:   mbed_roshydro_test

Library still under development!

Committer:
akashvibhute
Date:
Sun Feb 15 10:53:43 2015 +0000
Revision:
0:30537dec6e0b
First commit; Library still need to be debugged, compilation issues with new mbed and modserial updates.

Who changed what in which revision?

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