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:
Sat Nov 12 23:53:04 2011 +0000
Revision:
3:dff241b66f84
Parent:
1:098e75fd5ad2
This program supported the revision of 167 of rosserial.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucho 3:dff241b66f84 1 #ifndef _ROS_geometry_msgs_Polygon_h
nucho 3:dff241b66f84 2 #define _ROS_geometry_msgs_Polygon_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 3:dff241b66f84 7 #include "ros/msg.h"
nucho 0:06fc856e99ca 8 #include "geometry_msgs/Point32.h"
nucho 0:06fc856e99ca 9
nucho 3:dff241b66f84 10 namespace geometry_msgs
nucho 3:dff241b66f84 11 {
nucho 0:06fc856e99ca 12
nucho 3:dff241b66f84 13 class Polygon : public ros::Msg
nucho 3:dff241b66f84 14 {
nucho 3:dff241b66f84 15 public:
nucho 3:dff241b66f84 16 uint8_t points_length;
nucho 3:dff241b66f84 17 geometry_msgs::Point32 st_points;
nucho 3:dff241b66f84 18 geometry_msgs::Point32 * points;
nucho 0:06fc856e99ca 19
nucho 3:dff241b66f84 20 virtual int serialize(unsigned char *outbuffer) const
nucho 3:dff241b66f84 21 {
nucho 3:dff241b66f84 22 int offset = 0;
nucho 3:dff241b66f84 23 *(outbuffer + offset++) = points_length;
nucho 3:dff241b66f84 24 *(outbuffer + offset++) = 0;
nucho 3:dff241b66f84 25 *(outbuffer + offset++) = 0;
nucho 3:dff241b66f84 26 *(outbuffer + offset++) = 0;
nucho 3:dff241b66f84 27 for( uint8_t i = 0; i < points_length; i++){
nucho 3:dff241b66f84 28 offset += this->points[i].serialize(outbuffer + offset);
nucho 3:dff241b66f84 29 }
nucho 3:dff241b66f84 30 return offset;
nucho 0:06fc856e99ca 31 }
nucho 0:06fc856e99ca 32
nucho 3:dff241b66f84 33 virtual int deserialize(unsigned char *inbuffer)
nucho 3:dff241b66f84 34 {
nucho 3:dff241b66f84 35 int offset = 0;
nucho 3:dff241b66f84 36 uint8_t points_lengthT = *(inbuffer + offset++);
nucho 3:dff241b66f84 37 if(points_lengthT > points_length)
nucho 3:dff241b66f84 38 this->points = (geometry_msgs::Point32*)realloc(this->points, points_lengthT * sizeof(geometry_msgs::Point32));
nucho 3:dff241b66f84 39 offset += 3;
nucho 3:dff241b66f84 40 points_length = points_lengthT;
nucho 3:dff241b66f84 41 for( uint8_t i = 0; i < points_length; i++){
nucho 3:dff241b66f84 42 offset += this->st_points.deserialize(inbuffer + offset);
nucho 3:dff241b66f84 43 memcpy( &(this->points[i]), &(this->st_points), sizeof(geometry_msgs::Point32));
nucho 3:dff241b66f84 44 }
nucho 3:dff241b66f84 45 return offset;
nucho 0:06fc856e99ca 46 }
nucho 0:06fc856e99ca 47
nucho 3:dff241b66f84 48 virtual const char * getType(){ return "geometry_msgs/Polygon"; };
nucho 3:dff241b66f84 49 virtual const char * getMD5(){ return "cd60a26494a087f577976f0329fa120e"; };
nucho 0:06fc856e99ca 50
nucho 3:dff241b66f84 51 };
nucho 0:06fc856e99ca 52
nucho 0:06fc856e99ca 53 }
nucho 0:06fc856e99ca 54 #endif