This program is porting rosserial_arduino for mbed http://www.ros.org/wiki/rosserial_arduino This program supported the revision of 169 of rosserial. This program contains an example.

Dependencies:   rosserial_mbed_lib mbed Servo

Committer:
nucho
Date:
Sun Oct 16 07:17:43 2011 +0000
Revision:
1:098e75fd5ad2
Parent:
0:06fc856e99ca
Child:
3:dff241b66f84
This program supported the revision of 143 of rosserial.
And the bug fix of receive of array data.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucho 0:06fc856e99ca 1 #ifndef ros_Float32_h
nucho 0:06fc856e99ca 2 #define ros_Float32_h
nucho 0:06fc856e99ca 3
nucho 0:06fc856e99ca 4 #include <stdint.h>
nucho 0:06fc856e99ca 5 #include <string.h>
nucho 0:06fc856e99ca 6 #include <stdlib.h>
nucho 0:06fc856e99ca 7 #include "../ros/msg.h"
nucho 0:06fc856e99ca 8
nucho 0:06fc856e99ca 9 namespace std_msgs
nucho 0:06fc856e99ca 10 {
nucho 0:06fc856e99ca 11
nucho 0:06fc856e99ca 12 class Float32 : public ros::Msg
nucho 0:06fc856e99ca 13 {
nucho 0:06fc856e99ca 14 public:
nucho 0:06fc856e99ca 15 float data;
nucho 0:06fc856e99ca 16
nucho 0:06fc856e99ca 17 virtual int serialize(unsigned char *outbuffer)
nucho 0:06fc856e99ca 18 {
nucho 0:06fc856e99ca 19 int offset = 0;
nucho 0:06fc856e99ca 20 union {
nucho 0:06fc856e99ca 21 float real;
nucho 1:098e75fd5ad2 22 uint32_t base;
nucho 0:06fc856e99ca 23 } u_data;
nucho 0:06fc856e99ca 24 u_data.real = this->data;
nucho 0:06fc856e99ca 25 *(outbuffer + offset + 0) = (u_data.base >> (8 * 0)) & 0xFF;
nucho 0:06fc856e99ca 26 *(outbuffer + offset + 1) = (u_data.base >> (8 * 1)) & 0xFF;
nucho 0:06fc856e99ca 27 *(outbuffer + offset + 2) = (u_data.base >> (8 * 2)) & 0xFF;
nucho 0:06fc856e99ca 28 *(outbuffer + offset + 3) = (u_data.base >> (8 * 3)) & 0xFF;
nucho 0:06fc856e99ca 29 offset += sizeof(this->data);
nucho 0:06fc856e99ca 30 return offset;
nucho 0:06fc856e99ca 31 }
nucho 0:06fc856e99ca 32
nucho 0:06fc856e99ca 33 virtual int deserialize(unsigned char *inbuffer)
nucho 0:06fc856e99ca 34 {
nucho 0:06fc856e99ca 35 int offset = 0;
nucho 0:06fc856e99ca 36 union {
nucho 0:06fc856e99ca 37 float real;
nucho 1:098e75fd5ad2 38 uint32_t base;
nucho 0:06fc856e99ca 39 } u_data;
nucho 0:06fc856e99ca 40 u_data.base = 0;
nucho 0:06fc856e99ca 41 u_data.base |= ((typeof(u_data.base)) (*(inbuffer + offset + 0))) << (8 * 0);
nucho 0:06fc856e99ca 42 u_data.base |= ((typeof(u_data.base)) (*(inbuffer + offset + 1))) << (8 * 1);
nucho 0:06fc856e99ca 43 u_data.base |= ((typeof(u_data.base)) (*(inbuffer + offset + 2))) << (8 * 2);
nucho 0:06fc856e99ca 44 u_data.base |= ((typeof(u_data.base)) (*(inbuffer + offset + 3))) << (8 * 3);
nucho 0:06fc856e99ca 45 this->data = u_data.real;
nucho 0:06fc856e99ca 46 offset += sizeof(this->data);
nucho 0:06fc856e99ca 47 return offset;
nucho 0:06fc856e99ca 48 }
nucho 0:06fc856e99ca 49
nucho 0:06fc856e99ca 50 virtual const char * getType(){ return "std_msgs/Float32"; };
nucho 0:06fc856e99ca 51
nucho 0:06fc856e99ca 52 };
nucho 0:06fc856e99ca 53
nucho 0:06fc856e99ca 54 }
nucho 0:06fc856e99ca 55 #endif