start to work from here...

Dependencies:   MPU6050-DMP mbed ros_lib_kinetic

Fork of AGV_0411 by Weber Yang

Committer:
WeberYang
Date:
Tue Oct 02 00:57:35 2018 +0000
Revision:
11:6d5307ceb569
Parent:
2:648583d6e41a
_0829_demo_version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WeberYang 2:648583d6e41a 1 #ifndef _ROS_tiny_msgs_tinyVector_h
WeberYang 2:648583d6e41a 2 #define _ROS_tiny_msgs_tinyVector_h
WeberYang 2:648583d6e41a 3
WeberYang 2:648583d6e41a 4 #include <stdint.h>
WeberYang 2:648583d6e41a 5 #include <string.h>
WeberYang 2:648583d6e41a 6 #include <stdlib.h>
WeberYang 2:648583d6e41a 7 #include "ros/msg.h"
WeberYang 2:648583d6e41a 8
WeberYang 2:648583d6e41a 9 namespace tiny_msgs
WeberYang 2:648583d6e41a 10 {
WeberYang 2:648583d6e41a 11
WeberYang 2:648583d6e41a 12 class tinyVector : public ros::Msg
WeberYang 2:648583d6e41a 13 {
WeberYang 2:648583d6e41a 14 public:
WeberYang 2:648583d6e41a 15 typedef int16_t _x_type;
WeberYang 2:648583d6e41a 16 _x_type x;
WeberYang 2:648583d6e41a 17 typedef int16_t _y_type;
WeberYang 2:648583d6e41a 18 _y_type y;
WeberYang 2:648583d6e41a 19 typedef int16_t _z_type;
WeberYang 2:648583d6e41a 20 _z_type z;
WeberYang 2:648583d6e41a 21
WeberYang 2:648583d6e41a 22 tinyVector():
WeberYang 2:648583d6e41a 23 x(0),
WeberYang 2:648583d6e41a 24 y(0),
WeberYang 2:648583d6e41a 25 z(0)
WeberYang 2:648583d6e41a 26 {
WeberYang 2:648583d6e41a 27 }
WeberYang 2:648583d6e41a 28
WeberYang 2:648583d6e41a 29 virtual int serialize(unsigned char *outbuffer) const
WeberYang 2:648583d6e41a 30 {
WeberYang 2:648583d6e41a 31 int offset = 0;
WeberYang 2:648583d6e41a 32 union {
WeberYang 2:648583d6e41a 33 int16_t real;
WeberYang 2:648583d6e41a 34 uint16_t base;
WeberYang 2:648583d6e41a 35 } u_x;
WeberYang 2:648583d6e41a 36 u_x.real = this->x;
WeberYang 2:648583d6e41a 37 *(outbuffer + offset + 0) = (u_x.base >> (8 * 0)) & 0xFF;
WeberYang 2:648583d6e41a 38 *(outbuffer + offset + 1) = (u_x.base >> (8 * 1)) & 0xFF;
WeberYang 2:648583d6e41a 39 offset += sizeof(this->x);
WeberYang 2:648583d6e41a 40 union {
WeberYang 2:648583d6e41a 41 int16_t real;
WeberYang 2:648583d6e41a 42 uint16_t base;
WeberYang 2:648583d6e41a 43 } u_y;
WeberYang 2:648583d6e41a 44 u_y.real = this->y;
WeberYang 2:648583d6e41a 45 *(outbuffer + offset + 0) = (u_y.base >> (8 * 0)) & 0xFF;
WeberYang 2:648583d6e41a 46 *(outbuffer + offset + 1) = (u_y.base >> (8 * 1)) & 0xFF;
WeberYang 2:648583d6e41a 47 offset += sizeof(this->y);
WeberYang 2:648583d6e41a 48 union {
WeberYang 2:648583d6e41a 49 int16_t real;
WeberYang 2:648583d6e41a 50 uint16_t base;
WeberYang 2:648583d6e41a 51 } u_z;
WeberYang 2:648583d6e41a 52 u_z.real = this->z;
WeberYang 2:648583d6e41a 53 *(outbuffer + offset + 0) = (u_z.base >> (8 * 0)) & 0xFF;
WeberYang 2:648583d6e41a 54 *(outbuffer + offset + 1) = (u_z.base >> (8 * 1)) & 0xFF;
WeberYang 2:648583d6e41a 55 offset += sizeof(this->z);
WeberYang 2:648583d6e41a 56 return offset;
WeberYang 2:648583d6e41a 57 }
WeberYang 2:648583d6e41a 58
WeberYang 2:648583d6e41a 59 virtual int deserialize(unsigned char *inbuffer)
WeberYang 2:648583d6e41a 60 {
WeberYang 2:648583d6e41a 61 int offset = 0;
WeberYang 2:648583d6e41a 62 union {
WeberYang 2:648583d6e41a 63 int16_t real;
WeberYang 2:648583d6e41a 64 uint16_t base;
WeberYang 2:648583d6e41a 65 } u_x;
WeberYang 2:648583d6e41a 66 u_x.base = 0;
WeberYang 2:648583d6e41a 67 u_x.base |= ((uint16_t) (*(inbuffer + offset + 0))) << (8 * 0);
WeberYang 2:648583d6e41a 68 u_x.base |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1);
WeberYang 2:648583d6e41a 69 this->x = u_x.real;
WeberYang 2:648583d6e41a 70 offset += sizeof(this->x);
WeberYang 2:648583d6e41a 71 union {
WeberYang 2:648583d6e41a 72 int16_t real;
WeberYang 2:648583d6e41a 73 uint16_t base;
WeberYang 2:648583d6e41a 74 } u_y;
WeberYang 2:648583d6e41a 75 u_y.base = 0;
WeberYang 2:648583d6e41a 76 u_y.base |= ((uint16_t) (*(inbuffer + offset + 0))) << (8 * 0);
WeberYang 2:648583d6e41a 77 u_y.base |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1);
WeberYang 2:648583d6e41a 78 this->y = u_y.real;
WeberYang 2:648583d6e41a 79 offset += sizeof(this->y);
WeberYang 2:648583d6e41a 80 union {
WeberYang 2:648583d6e41a 81 int16_t real;
WeberYang 2:648583d6e41a 82 uint16_t base;
WeberYang 2:648583d6e41a 83 } u_z;
WeberYang 2:648583d6e41a 84 u_z.base = 0;
WeberYang 2:648583d6e41a 85 u_z.base |= ((uint16_t) (*(inbuffer + offset + 0))) << (8 * 0);
WeberYang 2:648583d6e41a 86 u_z.base |= ((uint16_t) (*(inbuffer + offset + 1))) << (8 * 1);
WeberYang 2:648583d6e41a 87 this->z = u_z.real;
WeberYang 2:648583d6e41a 88 offset += sizeof(this->z);
WeberYang 2:648583d6e41a 89 return offset;
WeberYang 2:648583d6e41a 90 }
WeberYang 2:648583d6e41a 91
WeberYang 2:648583d6e41a 92 const char * getType(){ return "tinyVector"; };
WeberYang 2:648583d6e41a 93 const char * getMD5(){ return "85729383565f7e059d4a213b3db1317b"; };
WeberYang 2:648583d6e41a 94
WeberYang 2:648583d6e41a 95 };
WeberYang 2:648583d6e41a 96
WeberYang 2:648583d6e41a 97 }
WeberYang 2:648583d6e41a 98 #endif