It has only one change from original one. I added robotfeedback message on it.

Dependencies:   BufferedSerial

Dependents:   RobotFeedback mobileRobotITU

Fork of ros_lib_indigo by Gary Servin

Committer:
randalthor
Date:
Sat Mar 04 14:07:56 2017 +0000
Revision:
4:80d9bee5079a
fatih

Who changed what in which revision?

UserRevisionLine numberNew contents of line
randalthor 4:80d9bee5079a 1 #ifndef _ROS_openlab_RF_h
randalthor 4:80d9bee5079a 2 #define _ROS_openlab_RF_h
randalthor 4:80d9bee5079a 3
randalthor 4:80d9bee5079a 4 #include <stdint.h>
randalthor 4:80d9bee5079a 5 #include <string.h>
randalthor 4:80d9bee5079a 6 #include <stdlib.h>
randalthor 4:80d9bee5079a 7 #include "ros/msg.h"
randalthor 4:80d9bee5079a 8
randalthor 4:80d9bee5079a 9 namespace openlab
randalthor 4:80d9bee5079a 10 {
randalthor 4:80d9bee5079a 11
randalthor 4:80d9bee5079a 12 class RF : public ros::Msg
randalthor 4:80d9bee5079a 13 {
randalthor 4:80d9bee5079a 14 public:
randalthor 4:80d9bee5079a 15 typedef int32_t _encoder_1_type;
randalthor 4:80d9bee5079a 16 _encoder_1_type encoder_1;
randalthor 4:80d9bee5079a 17 typedef int32_t _encoder_2_type;
randalthor 4:80d9bee5079a 18 _encoder_2_type encoder_2;
randalthor 4:80d9bee5079a 19 typedef int32_t _encoder_3_type;
randalthor 4:80d9bee5079a 20 _encoder_3_type encoder_3;
randalthor 4:80d9bee5079a 21 typedef int32_t _encoder_4_type;
randalthor 4:80d9bee5079a 22 _encoder_4_type encoder_4;
randalthor 4:80d9bee5079a 23
randalthor 4:80d9bee5079a 24 RF():
randalthor 4:80d9bee5079a 25 encoder_1(0),
randalthor 4:80d9bee5079a 26 encoder_2(0),
randalthor 4:80d9bee5079a 27 encoder_3(0),
randalthor 4:80d9bee5079a 28 encoder_4(0)
randalthor 4:80d9bee5079a 29 {
randalthor 4:80d9bee5079a 30 }
randalthor 4:80d9bee5079a 31
randalthor 4:80d9bee5079a 32 virtual int serialize(unsigned char *outbuffer) const
randalthor 4:80d9bee5079a 33 {
randalthor 4:80d9bee5079a 34 int offset = 0;
randalthor 4:80d9bee5079a 35 union {
randalthor 4:80d9bee5079a 36 int32_t real;
randalthor 4:80d9bee5079a 37 uint32_t base;
randalthor 4:80d9bee5079a 38 } u_encoder_1;
randalthor 4:80d9bee5079a 39 u_encoder_1.real = this->encoder_1;
randalthor 4:80d9bee5079a 40 *(outbuffer + offset + 0) = (u_encoder_1.base >> (8 * 0)) & 0xFF;
randalthor 4:80d9bee5079a 41 *(outbuffer + offset + 1) = (u_encoder_1.base >> (8 * 1)) & 0xFF;
randalthor 4:80d9bee5079a 42 *(outbuffer + offset + 2) = (u_encoder_1.base >> (8 * 2)) & 0xFF;
randalthor 4:80d9bee5079a 43 *(outbuffer + offset + 3) = (u_encoder_1.base >> (8 * 3)) & 0xFF;
randalthor 4:80d9bee5079a 44 offset += sizeof(this->encoder_1);
randalthor 4:80d9bee5079a 45 union {
randalthor 4:80d9bee5079a 46 int32_t real;
randalthor 4:80d9bee5079a 47 uint32_t base;
randalthor 4:80d9bee5079a 48 } u_encoder_2;
randalthor 4:80d9bee5079a 49 u_encoder_2.real = this->encoder_2;
randalthor 4:80d9bee5079a 50 *(outbuffer + offset + 0) = (u_encoder_2.base >> (8 * 0)) & 0xFF;
randalthor 4:80d9bee5079a 51 *(outbuffer + offset + 1) = (u_encoder_2.base >> (8 * 1)) & 0xFF;
randalthor 4:80d9bee5079a 52 *(outbuffer + offset + 2) = (u_encoder_2.base >> (8 * 2)) & 0xFF;
randalthor 4:80d9bee5079a 53 *(outbuffer + offset + 3) = (u_encoder_2.base >> (8 * 3)) & 0xFF;
randalthor 4:80d9bee5079a 54 offset += sizeof(this->encoder_2);
randalthor 4:80d9bee5079a 55 union {
randalthor 4:80d9bee5079a 56 int32_t real;
randalthor 4:80d9bee5079a 57 uint32_t base;
randalthor 4:80d9bee5079a 58 } u_encoder_3;
randalthor 4:80d9bee5079a 59 u_encoder_3.real = this->encoder_3;
randalthor 4:80d9bee5079a 60 *(outbuffer + offset + 0) = (u_encoder_3.base >> (8 * 0)) & 0xFF;
randalthor 4:80d9bee5079a 61 *(outbuffer + offset + 1) = (u_encoder_3.base >> (8 * 1)) & 0xFF;
randalthor 4:80d9bee5079a 62 *(outbuffer + offset + 2) = (u_encoder_3.base >> (8 * 2)) & 0xFF;
randalthor 4:80d9bee5079a 63 *(outbuffer + offset + 3) = (u_encoder_3.base >> (8 * 3)) & 0xFF;
randalthor 4:80d9bee5079a 64 offset += sizeof(this->encoder_3);
randalthor 4:80d9bee5079a 65 union {
randalthor 4:80d9bee5079a 66 int32_t real;
randalthor 4:80d9bee5079a 67 uint32_t base;
randalthor 4:80d9bee5079a 68 } u_encoder_4;
randalthor 4:80d9bee5079a 69 u_encoder_4.real = this->encoder_4;
randalthor 4:80d9bee5079a 70 *(outbuffer + offset + 0) = (u_encoder_4.base >> (8 * 0)) & 0xFF;
randalthor 4:80d9bee5079a 71 *(outbuffer + offset + 1) = (u_encoder_4.base >> (8 * 1)) & 0xFF;
randalthor 4:80d9bee5079a 72 *(outbuffer + offset + 2) = (u_encoder_4.base >> (8 * 2)) & 0xFF;
randalthor 4:80d9bee5079a 73 *(outbuffer + offset + 3) = (u_encoder_4.base >> (8 * 3)) & 0xFF;
randalthor 4:80d9bee5079a 74 offset += sizeof(this->encoder_4);
randalthor 4:80d9bee5079a 75 return offset;
randalthor 4:80d9bee5079a 76 }
randalthor 4:80d9bee5079a 77
randalthor 4:80d9bee5079a 78 virtual int deserialize(unsigned char *inbuffer)
randalthor 4:80d9bee5079a 79 {
randalthor 4:80d9bee5079a 80 int offset = 0;
randalthor 4:80d9bee5079a 81 union {
randalthor 4:80d9bee5079a 82 int32_t real;
randalthor 4:80d9bee5079a 83 uint32_t base;
randalthor 4:80d9bee5079a 84 } u_encoder_1;
randalthor 4:80d9bee5079a 85 u_encoder_1.base = 0;
randalthor 4:80d9bee5079a 86 u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
randalthor 4:80d9bee5079a 87 u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
randalthor 4:80d9bee5079a 88 u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
randalthor 4:80d9bee5079a 89 u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
randalthor 4:80d9bee5079a 90 this->encoder_1 = u_encoder_1.real;
randalthor 4:80d9bee5079a 91 offset += sizeof(this->encoder_1);
randalthor 4:80d9bee5079a 92 union {
randalthor 4:80d9bee5079a 93 int32_t real;
randalthor 4:80d9bee5079a 94 uint32_t base;
randalthor 4:80d9bee5079a 95 } u_encoder_2;
randalthor 4:80d9bee5079a 96 u_encoder_2.base = 0;
randalthor 4:80d9bee5079a 97 u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
randalthor 4:80d9bee5079a 98 u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
randalthor 4:80d9bee5079a 99 u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
randalthor 4:80d9bee5079a 100 u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
randalthor 4:80d9bee5079a 101 this->encoder_2 = u_encoder_2.real;
randalthor 4:80d9bee5079a 102 offset += sizeof(this->encoder_2);
randalthor 4:80d9bee5079a 103 union {
randalthor 4:80d9bee5079a 104 int32_t real;
randalthor 4:80d9bee5079a 105 uint32_t base;
randalthor 4:80d9bee5079a 106 } u_encoder_3;
randalthor 4:80d9bee5079a 107 u_encoder_3.base = 0;
randalthor 4:80d9bee5079a 108 u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
randalthor 4:80d9bee5079a 109 u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
randalthor 4:80d9bee5079a 110 u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
randalthor 4:80d9bee5079a 111 u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
randalthor 4:80d9bee5079a 112 this->encoder_3 = u_encoder_3.real;
randalthor 4:80d9bee5079a 113 offset += sizeof(this->encoder_3);
randalthor 4:80d9bee5079a 114 union {
randalthor 4:80d9bee5079a 115 int32_t real;
randalthor 4:80d9bee5079a 116 uint32_t base;
randalthor 4:80d9bee5079a 117 } u_encoder_4;
randalthor 4:80d9bee5079a 118 u_encoder_4.base = 0;
randalthor 4:80d9bee5079a 119 u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
randalthor 4:80d9bee5079a 120 u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
randalthor 4:80d9bee5079a 121 u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
randalthor 4:80d9bee5079a 122 u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
randalthor 4:80d9bee5079a 123 this->encoder_4 = u_encoder_4.real;
randalthor 4:80d9bee5079a 124 offset += sizeof(this->encoder_4);
randalthor 4:80d9bee5079a 125 return offset;
randalthor 4:80d9bee5079a 126 }
randalthor 4:80d9bee5079a 127
randalthor 4:80d9bee5079a 128 const char * getType(){ return "openlab/RF"; };
randalthor 4:80d9bee5079a 129 const char * getMD5(){ return "72ef78eb5e9bafb28f2bd3ab6be8a6a5"; };
randalthor 4:80d9bee5079a 130
randalthor 4:80d9bee5079a 131 };
randalthor 4:80d9bee5079a 132
randalthor 4:80d9bee5079a 133 }
randalthor 4:80d9bee5079a 134 #endif