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_sensor_msgs_TimeReference_h
jjzak 5:8cd48977ec68 2 #define _ROS_sensor_msgs_TimeReference_h
jjzak 5:8cd48977ec68 3
jjzak 5:8cd48977ec68 4 #include <stdint.h>
jjzak 5:8cd48977ec68 5 #include <string.h>
jjzak 5:8cd48977ec68 6 #include <stdlib.h>
jjzak 5:8cd48977ec68 7 #include "ros/msg.h"
jjzak 5:8cd48977ec68 8 #include "std_msgs/Header.h"
jjzak 5:8cd48977ec68 9 #include "ros/time.h"
jjzak 5:8cd48977ec68 10
jjzak 5:8cd48977ec68 11 namespace sensor_msgs
jjzak 5:8cd48977ec68 12 {
jjzak 5:8cd48977ec68 13
jjzak 5:8cd48977ec68 14 class TimeReference : public ros::Msg
jjzak 5:8cd48977ec68 15 {
jjzak 5:8cd48977ec68 16 public:
jjzak 5:8cd48977ec68 17 std_msgs::Header header;
jjzak 5:8cd48977ec68 18 ros::Time time_ref;
jjzak 5:8cd48977ec68 19 char * source;
jjzak 5:8cd48977ec68 20
jjzak 5:8cd48977ec68 21 virtual int serialize(unsigned char *outbuffer) const
jjzak 5:8cd48977ec68 22 {
jjzak 5:8cd48977ec68 23 int offset = 0;
jjzak 5:8cd48977ec68 24 offset += this->header.serialize(outbuffer + offset);
jjzak 5:8cd48977ec68 25 *(outbuffer + offset + 0) = (this->time_ref.sec >> (8 * 0)) & 0xFF;
jjzak 5:8cd48977ec68 26 *(outbuffer + offset + 1) = (this->time_ref.sec >> (8 * 1)) & 0xFF;
jjzak 5:8cd48977ec68 27 *(outbuffer + offset + 2) = (this->time_ref.sec >> (8 * 2)) & 0xFF;
jjzak 5:8cd48977ec68 28 *(outbuffer + offset + 3) = (this->time_ref.sec >> (8 * 3)) & 0xFF;
jjzak 5:8cd48977ec68 29 offset += sizeof(this->time_ref.sec);
jjzak 5:8cd48977ec68 30 *(outbuffer + offset + 0) = (this->time_ref.nsec >> (8 * 0)) & 0xFF;
jjzak 5:8cd48977ec68 31 *(outbuffer + offset + 1) = (this->time_ref.nsec >> (8 * 1)) & 0xFF;
jjzak 5:8cd48977ec68 32 *(outbuffer + offset + 2) = (this->time_ref.nsec >> (8 * 2)) & 0xFF;
jjzak 5:8cd48977ec68 33 *(outbuffer + offset + 3) = (this->time_ref.nsec >> (8 * 3)) & 0xFF;
jjzak 5:8cd48977ec68 34 offset += sizeof(this->time_ref.nsec);
jjzak 5:8cd48977ec68 35 uint32_t length_source = strlen( (const char*) this->source);
jjzak 5:8cd48977ec68 36 memcpy(outbuffer + offset, &length_source, sizeof(uint32_t));
jjzak 5:8cd48977ec68 37 offset += 4;
jjzak 5:8cd48977ec68 38 memcpy(outbuffer + offset, this->source, length_source);
jjzak 5:8cd48977ec68 39 offset += length_source;
jjzak 5:8cd48977ec68 40 return offset;
jjzak 5:8cd48977ec68 41 }
jjzak 5:8cd48977ec68 42
jjzak 5:8cd48977ec68 43 virtual int deserialize(unsigned char *inbuffer)
jjzak 5:8cd48977ec68 44 {
jjzak 5:8cd48977ec68 45 int offset = 0;
jjzak 5:8cd48977ec68 46 offset += this->header.deserialize(inbuffer + offset);
jjzak 5:8cd48977ec68 47 this->time_ref.sec = ((uint32_t) (*(inbuffer + offset)));
jjzak 5:8cd48977ec68 48 this->time_ref.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
jjzak 5:8cd48977ec68 49 this->time_ref.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
jjzak 5:8cd48977ec68 50 this->time_ref.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
jjzak 5:8cd48977ec68 51 offset += sizeof(this->time_ref.sec);
jjzak 5:8cd48977ec68 52 this->time_ref.nsec = ((uint32_t) (*(inbuffer + offset)));
jjzak 5:8cd48977ec68 53 this->time_ref.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
jjzak 5:8cd48977ec68 54 this->time_ref.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
jjzak 5:8cd48977ec68 55 this->time_ref.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
jjzak 5:8cd48977ec68 56 offset += sizeof(this->time_ref.nsec);
jjzak 5:8cd48977ec68 57 uint32_t length_source;
jjzak 5:8cd48977ec68 58 memcpy(&length_source, (inbuffer + offset), sizeof(uint32_t));
jjzak 5:8cd48977ec68 59 offset += 4;
jjzak 5:8cd48977ec68 60 for(unsigned int k= offset; k< offset+length_source; ++k){
jjzak 5:8cd48977ec68 61 inbuffer[k-1]=inbuffer[k];
jjzak 5:8cd48977ec68 62 }
jjzak 5:8cd48977ec68 63 inbuffer[offset+length_source-1]=0;
jjzak 5:8cd48977ec68 64 this->source = (char *)(inbuffer + offset-1);
jjzak 5:8cd48977ec68 65 offset += length_source;
jjzak 5:8cd48977ec68 66 return offset;
jjzak 5:8cd48977ec68 67 }
jjzak 5:8cd48977ec68 68
jjzak 5:8cd48977ec68 69 const char * getType(){ return "sensor_msgs/TimeReference"; };
jjzak 5:8cd48977ec68 70 const char * getMD5(){ return "fded64a0265108ba86c3d38fb11c0c16"; };
jjzak 5:8cd48977ec68 71
jjzak 5:8cd48977ec68 72 };
jjzak 5:8cd48977ec68 73
jjzak 5:8cd48977ec68 74 }
jjzak 5:8cd48977ec68 75 #endif