Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of ros_lib_kinetic by
Revision 2:af816ffd33df, committed 2017-05-19
- Comitter:
- randalthor
- Date:
- Fri May 19 08:59:12 2017 +0000
- Parent:
- 1:a849bf78d77f
- Commit message:
- custom message mobile robot added for ITU cyber physical lab
Changed in this revision
--- a/MbedHardware.h Sat Dec 31 00:59:58 2016 +0000
+++ b/MbedHardware.h Fri May 19 08:59:12 2017 +0000
@@ -14,7 +14,7 @@
class MbedHardware {
public:
- MbedHardware(PinName tx, PinName rx, long baud = 57600)
+ MbedHardware(PinName tx, PinName rx, long baud = 1843200)
:iostream(tx, rx){
baud_ = baud;
t.start();
@@ -22,7 +22,7 @@
MbedHardware()
:iostream(USBTX, USBRX) {
- baud_ = 57600;
+ baud_ = 1843200;
t.start();
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/openlab/RF.h Fri May 19 08:59:12 2017 +0000
@@ -0,0 +1,134 @@
+#ifndef _ROS_openlab_RF_h
+#define _ROS_openlab_RF_h
+
+#include <stdint.h>
+#include <string.h>
+#include <stdlib.h>
+#include "ros/msg.h"
+
+namespace openlab
+{
+
+ class RF : public ros::Msg
+ {
+ public:
+ typedef int32_t _encoder_1_type;
+ _encoder_1_type encoder_1;
+ typedef int32_t _encoder_2_type;
+ _encoder_2_type encoder_2;
+ typedef int32_t _encoder_3_type;
+ _encoder_3_type encoder_3;
+ typedef int32_t _encoder_4_type;
+ _encoder_4_type encoder_4;
+
+ RF():
+ encoder_1(0),
+ encoder_2(0),
+ encoder_3(0),
+ encoder_4(0)
+ {
+ }
+
+ virtual int serialize(unsigned char *outbuffer) const
+ {
+ int offset = 0;
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_1;
+ u_encoder_1.real = this->encoder_1;
+ *(outbuffer + offset + 0) = (u_encoder_1.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_1.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_1.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_1.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_1);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_2;
+ u_encoder_2.real = this->encoder_2;
+ *(outbuffer + offset + 0) = (u_encoder_2.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_2.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_2.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_2.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_2);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_3;
+ u_encoder_3.real = this->encoder_3;
+ *(outbuffer + offset + 0) = (u_encoder_3.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_3.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_3.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_3.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_3);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_4;
+ u_encoder_4.real = this->encoder_4;
+ *(outbuffer + offset + 0) = (u_encoder_4.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_4.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_4.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_4.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_4);
+ return offset;
+ }
+
+ virtual int deserialize(unsigned char *inbuffer)
+ {
+ int offset = 0;
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_1;
+ u_encoder_1.base = 0;
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_1 = u_encoder_1.real;
+ offset += sizeof(this->encoder_1);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_2;
+ u_encoder_2.base = 0;
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_2 = u_encoder_2.real;
+ offset += sizeof(this->encoder_2);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_3;
+ u_encoder_3.base = 0;
+ u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_3 = u_encoder_3.real;
+ offset += sizeof(this->encoder_3);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_4;
+ u_encoder_4.base = 0;
+ u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_4 = u_encoder_4.real;
+ offset += sizeof(this->encoder_4);
+ return offset;
+ }
+
+ const char * getType(){ return "openlab/RF"; };
+ const char * getMD5(){ return "72ef78eb5e9bafb28f2bd3ab6be8a6a5"; };
+
+ };
+
+}
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/openlab/RobotFeedback.h Fri May 19 08:59:12 2017 +0000
@@ -0,0 +1,422 @@
+#ifndef _ROS_openlab_RobotFeedback_h
+#define _ROS_openlab_RobotFeedback_h
+
+#include <stdint.h>
+#include <string.h>
+#include <stdlib.h>
+#include "ros/msg.h"
+
+namespace openlab
+{
+
+ class RobotFeedback : public ros::Msg
+ {
+ public:
+ typedef int32_t _encoder_1_type;
+ _encoder_1_type encoder_1;
+ typedef int32_t _encoder_2_type;
+ _encoder_2_type encoder_2;
+ typedef int32_t _encoder_3_type;
+ _encoder_3_type encoder_3;
+ typedef int32_t _encoder_4_type;
+ _encoder_4_type encoder_4;
+ typedef float _pwm_1_type;
+ _pwm_1_type pwm_1;
+ typedef float _pwm_2_type;
+ _pwm_2_type pwm_2;
+ typedef float _pwm_3_type;
+ _pwm_3_type pwm_3;
+ typedef float _pwm_4_type;
+ _pwm_4_type pwm_4;
+ typedef float _dc_current_1_type;
+ _dc_current_1_type dc_current_1;
+ typedef float _dc_current_2_type;
+ _dc_current_2_type dc_current_2;
+ typedef float _dc_current_3_type;
+ _dc_current_3_type dc_current_3;
+ typedef float _dc_current_4_type;
+ _dc_current_4_type dc_current_4;
+ typedef float _sensor_1_type;
+ _sensor_1_type sensor_1;
+ typedef float _sensor_2_type;
+ _sensor_2_type sensor_2;
+ typedef float _sensor_3_type;
+ _sensor_3_type sensor_3;
+ typedef float _sensor_4_type;
+ _sensor_4_type sensor_4;
+
+ RobotFeedback():
+ encoder_1(0),
+ encoder_2(0),
+ encoder_3(0),
+ encoder_4(0),
+ pwm_1(0),
+ pwm_2(0),
+ pwm_3(0),
+ pwm_4(0),
+ dc_current_1(0),
+ dc_current_2(0),
+ dc_current_3(0),
+ dc_current_4(0),
+ sensor_1(0),
+ sensor_2(0),
+ sensor_3(0),
+ sensor_4(0)
+ {
+ }
+
+ virtual int serialize(unsigned char *outbuffer) const
+ {
+ int offset = 0;
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_1;
+ u_encoder_1.real = this->encoder_1;
+ *(outbuffer + offset + 0) = (u_encoder_1.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_1.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_1.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_1.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_1);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_2;
+ u_encoder_2.real = this->encoder_2;
+ *(outbuffer + offset + 0) = (u_encoder_2.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_2.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_2.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_2.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_2);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_3;
+ u_encoder_3.real = this->encoder_3;
+ *(outbuffer + offset + 0) = (u_encoder_3.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_3.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_3.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_3.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_3);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_4;
+ u_encoder_4.real = this->encoder_4;
+ *(outbuffer + offset + 0) = (u_encoder_4.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_4.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_4.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_4.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_4);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_1;
+ u_pwm_1.real = this->pwm_1;
+ *(outbuffer + offset + 0) = (u_pwm_1.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_pwm_1.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_pwm_1.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_pwm_1.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->pwm_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_2;
+ u_pwm_2.real = this->pwm_2;
+ *(outbuffer + offset + 0) = (u_pwm_2.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_pwm_2.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_pwm_2.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_pwm_2.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->pwm_2);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_3;
+ u_pwm_3.real = this->pwm_3;
+ *(outbuffer + offset + 0) = (u_pwm_3.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_pwm_3.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_pwm_3.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_pwm_3.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->pwm_3);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_4;
+ u_pwm_4.real = this->pwm_4;
+ *(outbuffer + offset + 0) = (u_pwm_4.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_pwm_4.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_pwm_4.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_pwm_4.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->pwm_4);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_1;
+ u_dc_current_1.real = this->dc_current_1;
+ *(outbuffer + offset + 0) = (u_dc_current_1.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_dc_current_1.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_dc_current_1.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_dc_current_1.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->dc_current_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_2;
+ u_dc_current_2.real = this->dc_current_2;
+ *(outbuffer + offset + 0) = (u_dc_current_2.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_dc_current_2.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_dc_current_2.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_dc_current_2.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->dc_current_2);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_3;
+ u_dc_current_3.real = this->dc_current_3;
+ *(outbuffer + offset + 0) = (u_dc_current_3.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_dc_current_3.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_dc_current_3.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_dc_current_3.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->dc_current_3);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_4;
+ u_dc_current_4.real = this->dc_current_4;
+ *(outbuffer + offset + 0) = (u_dc_current_4.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_dc_current_4.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_dc_current_4.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_dc_current_4.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->dc_current_4);
+ union {
+ float real;
+ uint32_t base;
+ } u_sensor_1;
+ u_sensor_1.real = this->sensor_1;
+ *(outbuffer + offset + 0) = (u_sensor_1.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_sensor_1.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_sensor_1.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_sensor_1.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->sensor_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_sensor_2;
+ u_sensor_2.real = this->sensor_2;
+ *(outbuffer + offset + 0) = (u_sensor_2.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_sensor_2.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_sensor_2.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_sensor_2.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->sensor_2);
+ union {
+ float real;
+ uint32_t base;
+ } u_sensor_3;
+ u_sensor_3.real = this->sensor_3;
+ *(outbuffer + offset + 0) = (u_sensor_3.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_sensor_3.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_sensor_3.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_sensor_3.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->sensor_3);
+ union {
+ float real;
+ uint32_t base;
+ } u_sensor_4;
+ u_sensor_4.real = this->sensor_4;
+ *(outbuffer + offset + 0) = (u_sensor_4.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_sensor_4.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_sensor_4.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_sensor_4.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->sensor_4);
+ return offset;
+ }
+
+ virtual int deserialize(unsigned char *inbuffer)
+ {
+ int offset = 0;
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_1;
+ u_encoder_1.base = 0;
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_1 = u_encoder_1.real;
+ offset += sizeof(this->encoder_1);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_2;
+ u_encoder_2.base = 0;
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_2 = u_encoder_2.real;
+ offset += sizeof(this->encoder_2);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_3;
+ u_encoder_3.base = 0;
+ u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_3.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_3 = u_encoder_3.real;
+ offset += sizeof(this->encoder_3);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_4;
+ u_encoder_4.base = 0;
+ u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_4.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_4 = u_encoder_4.real;
+ offset += sizeof(this->encoder_4);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_1;
+ u_pwm_1.base = 0;
+ u_pwm_1.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_pwm_1.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_pwm_1.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_pwm_1.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->pwm_1 = u_pwm_1.real;
+ offset += sizeof(this->pwm_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_2;
+ u_pwm_2.base = 0;
+ u_pwm_2.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_pwm_2.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_pwm_2.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_pwm_2.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->pwm_2 = u_pwm_2.real;
+ offset += sizeof(this->pwm_2);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_3;
+ u_pwm_3.base = 0;
+ u_pwm_3.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_pwm_3.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_pwm_3.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_pwm_3.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->pwm_3 = u_pwm_3.real;
+ offset += sizeof(this->pwm_3);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_4;
+ u_pwm_4.base = 0;
+ u_pwm_4.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_pwm_4.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_pwm_4.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_pwm_4.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->pwm_4 = u_pwm_4.real;
+ offset += sizeof(this->pwm_4);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_1;
+ u_dc_current_1.base = 0;
+ u_dc_current_1.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_dc_current_1.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_dc_current_1.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_dc_current_1.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->dc_current_1 = u_dc_current_1.real;
+ offset += sizeof(this->dc_current_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_2;
+ u_dc_current_2.base = 0;
+ u_dc_current_2.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_dc_current_2.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_dc_current_2.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_dc_current_2.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->dc_current_2 = u_dc_current_2.real;
+ offset += sizeof(this->dc_current_2);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_3;
+ u_dc_current_3.base = 0;
+ u_dc_current_3.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_dc_current_3.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_dc_current_3.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_dc_current_3.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->dc_current_3 = u_dc_current_3.real;
+ offset += sizeof(this->dc_current_3);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_4;
+ u_dc_current_4.base = 0;
+ u_dc_current_4.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_dc_current_4.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_dc_current_4.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_dc_current_4.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->dc_current_4 = u_dc_current_4.real;
+ offset += sizeof(this->dc_current_4);
+ union {
+ float real;
+ uint32_t base;
+ } u_sensor_1;
+ u_sensor_1.base = 0;
+ u_sensor_1.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_sensor_1.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_sensor_1.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_sensor_1.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->sensor_1 = u_sensor_1.real;
+ offset += sizeof(this->sensor_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_sensor_2;
+ u_sensor_2.base = 0;
+ u_sensor_2.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_sensor_2.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_sensor_2.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_sensor_2.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->sensor_2 = u_sensor_2.real;
+ offset += sizeof(this->sensor_2);
+ union {
+ float real;
+ uint32_t base;
+ } u_sensor_3;
+ u_sensor_3.base = 0;
+ u_sensor_3.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_sensor_3.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_sensor_3.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_sensor_3.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->sensor_3 = u_sensor_3.real;
+ offset += sizeof(this->sensor_3);
+ union {
+ float real;
+ uint32_t base;
+ } u_sensor_4;
+ u_sensor_4.base = 0;
+ u_sensor_4.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_sensor_4.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_sensor_4.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_sensor_4.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->sensor_4 = u_sensor_4.real;
+ offset += sizeof(this->sensor_4);
+ return offset;
+ }
+
+ const char * getType(){ return "openlab/RobotFeedback"; };
+ const char * getMD5(){ return "f31bdce92ed3d88b204eacb08d719892"; };
+
+ };
+
+}
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/openlab/mobileRobot.h Fri May 19 08:59:12 2017 +0000
@@ -0,0 +1,278 @@
+#ifndef _ROS_openlab_mobileRobot_h
+#define _ROS_openlab_mobileRobot_h
+
+#include <stdint.h>
+#include <string.h>
+#include <stdlib.h>
+#include "ros/msg.h"
+
+namespace openlab
+{
+
+ class mobileRobot : public ros::Msg
+ {
+ public:
+ typedef float _cmd_velocity_linx_type;
+ _cmd_velocity_linx_type cmd_velocity_linx;
+ typedef float _cmd_velocity_angz_type;
+ _cmd_velocity_angz_type cmd_velocity_angz;
+ typedef float _real_velocity_linx_type;
+ _real_velocity_linx_type real_velocity_linx;
+ typedef float _real_velocity_angz_type;
+ _real_velocity_angz_type real_velocity_angz;
+ typedef float _pwm_1_type;
+ _pwm_1_type pwm_1;
+ typedef float _pwm_2_type;
+ _pwm_2_type pwm_2;
+ typedef float _dc_current_1_type;
+ _dc_current_1_type dc_current_1;
+ typedef float _dc_current_2_type;
+ _dc_current_2_type dc_current_2;
+ typedef int32_t _encoder_1_type;
+ _encoder_1_type encoder_1;
+ typedef int32_t _encoder_2_type;
+ _encoder_2_type encoder_2;
+
+ mobileRobot():
+ cmd_velocity_linx(0),
+ cmd_velocity_angz(0),
+ real_velocity_linx(0),
+ real_velocity_angz(0),
+ pwm_1(0),
+ pwm_2(0),
+ dc_current_1(0),
+ dc_current_2(0),
+ encoder_1(0),
+ encoder_2(0)
+ {
+ }
+
+ virtual int serialize(unsigned char *outbuffer) const
+ {
+ int offset = 0;
+ union {
+ float real;
+ uint32_t base;
+ } u_cmd_velocity_linx;
+ u_cmd_velocity_linx.real = this->cmd_velocity_linx;
+ *(outbuffer + offset + 0) = (u_cmd_velocity_linx.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_cmd_velocity_linx.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_cmd_velocity_linx.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_cmd_velocity_linx.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->cmd_velocity_linx);
+ union {
+ float real;
+ uint32_t base;
+ } u_cmd_velocity_angz;
+ u_cmd_velocity_angz.real = this->cmd_velocity_angz;
+ *(outbuffer + offset + 0) = (u_cmd_velocity_angz.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_cmd_velocity_angz.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_cmd_velocity_angz.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_cmd_velocity_angz.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->cmd_velocity_angz);
+ union {
+ float real;
+ uint32_t base;
+ } u_real_velocity_linx;
+ u_real_velocity_linx.real = this->real_velocity_linx;
+ *(outbuffer + offset + 0) = (u_real_velocity_linx.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_real_velocity_linx.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_real_velocity_linx.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_real_velocity_linx.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->real_velocity_linx);
+ union {
+ float real;
+ uint32_t base;
+ } u_real_velocity_angz;
+ u_real_velocity_angz.real = this->real_velocity_angz;
+ *(outbuffer + offset + 0) = (u_real_velocity_angz.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_real_velocity_angz.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_real_velocity_angz.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_real_velocity_angz.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->real_velocity_angz);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_1;
+ u_pwm_1.real = this->pwm_1;
+ *(outbuffer + offset + 0) = (u_pwm_1.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_pwm_1.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_pwm_1.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_pwm_1.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->pwm_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_2;
+ u_pwm_2.real = this->pwm_2;
+ *(outbuffer + offset + 0) = (u_pwm_2.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_pwm_2.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_pwm_2.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_pwm_2.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->pwm_2);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_1;
+ u_dc_current_1.real = this->dc_current_1;
+ *(outbuffer + offset + 0) = (u_dc_current_1.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_dc_current_1.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_dc_current_1.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_dc_current_1.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->dc_current_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_2;
+ u_dc_current_2.real = this->dc_current_2;
+ *(outbuffer + offset + 0) = (u_dc_current_2.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_dc_current_2.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_dc_current_2.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_dc_current_2.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->dc_current_2);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_1;
+ u_encoder_1.real = this->encoder_1;
+ *(outbuffer + offset + 0) = (u_encoder_1.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_1.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_1.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_1.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_1);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_2;
+ u_encoder_2.real = this->encoder_2;
+ *(outbuffer + offset + 0) = (u_encoder_2.base >> (8 * 0)) & 0xFF;
+ *(outbuffer + offset + 1) = (u_encoder_2.base >> (8 * 1)) & 0xFF;
+ *(outbuffer + offset + 2) = (u_encoder_2.base >> (8 * 2)) & 0xFF;
+ *(outbuffer + offset + 3) = (u_encoder_2.base >> (8 * 3)) & 0xFF;
+ offset += sizeof(this->encoder_2);
+ return offset;
+ }
+
+ virtual int deserialize(unsigned char *inbuffer)
+ {
+ int offset = 0;
+ union {
+ float real;
+ uint32_t base;
+ } u_cmd_velocity_linx;
+ u_cmd_velocity_linx.base = 0;
+ u_cmd_velocity_linx.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_cmd_velocity_linx.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_cmd_velocity_linx.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_cmd_velocity_linx.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->cmd_velocity_linx = u_cmd_velocity_linx.real;
+ offset += sizeof(this->cmd_velocity_linx);
+ union {
+ float real;
+ uint32_t base;
+ } u_cmd_velocity_angz;
+ u_cmd_velocity_angz.base = 0;
+ u_cmd_velocity_angz.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_cmd_velocity_angz.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_cmd_velocity_angz.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_cmd_velocity_angz.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->cmd_velocity_angz = u_cmd_velocity_angz.real;
+ offset += sizeof(this->cmd_velocity_angz);
+ union {
+ float real;
+ uint32_t base;
+ } u_real_velocity_linx;
+ u_real_velocity_linx.base = 0;
+ u_real_velocity_linx.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_real_velocity_linx.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_real_velocity_linx.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_real_velocity_linx.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->real_velocity_linx = u_real_velocity_linx.real;
+ offset += sizeof(this->real_velocity_linx);
+ union {
+ float real;
+ uint32_t base;
+ } u_real_velocity_angz;
+ u_real_velocity_angz.base = 0;
+ u_real_velocity_angz.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_real_velocity_angz.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_real_velocity_angz.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_real_velocity_angz.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->real_velocity_angz = u_real_velocity_angz.real;
+ offset += sizeof(this->real_velocity_angz);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_1;
+ u_pwm_1.base = 0;
+ u_pwm_1.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_pwm_1.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_pwm_1.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_pwm_1.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->pwm_1 = u_pwm_1.real;
+ offset += sizeof(this->pwm_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_pwm_2;
+ u_pwm_2.base = 0;
+ u_pwm_2.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_pwm_2.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_pwm_2.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_pwm_2.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->pwm_2 = u_pwm_2.real;
+ offset += sizeof(this->pwm_2);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_1;
+ u_dc_current_1.base = 0;
+ u_dc_current_1.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_dc_current_1.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_dc_current_1.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_dc_current_1.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->dc_current_1 = u_dc_current_1.real;
+ offset += sizeof(this->dc_current_1);
+ union {
+ float real;
+ uint32_t base;
+ } u_dc_current_2;
+ u_dc_current_2.base = 0;
+ u_dc_current_2.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_dc_current_2.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_dc_current_2.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_dc_current_2.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->dc_current_2 = u_dc_current_2.real;
+ offset += sizeof(this->dc_current_2);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_1;
+ u_encoder_1.base = 0;
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_1.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_1 = u_encoder_1.real;
+ offset += sizeof(this->encoder_1);
+ union {
+ int32_t real;
+ uint32_t base;
+ } u_encoder_2;
+ u_encoder_2.base = 0;
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
+ u_encoder_2.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
+ this->encoder_2 = u_encoder_2.real;
+ offset += sizeof(this->encoder_2);
+ return offset;
+ }
+
+ const char * getType(){ return "openlab/mobileRobot"; };
+ const char * getMD5(){ return "5e54beb06e233db01abe11e2006b8b2e"; };
+
+ };
+
+}
+#endif
