ROS Serial library for Mbed platforms for ROS Indigo Igloo. Check http://wiki.ros.org/rosserial_mbed/ for more information

Dependencies:   BufferedSerial

Dependents:   rosserial_mbed_hello_world_publisher rtos_base_control rosserial_mbed_F64MA ROS-RTOS ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers DisparityImage.h Source File

DisparityImage.h

00001 #ifndef _ROS_stereo_msgs_DisparityImage_h
00002 #define _ROS_stereo_msgs_DisparityImage_h
00003 
00004 #include <stdint.h>
00005 #include <string.h>
00006 #include <stdlib.h>
00007 #include "ros/msg.h"
00008 #include "std_msgs/Header.h"
00009 #include "sensor_msgs/Image.h"
00010 #include "sensor_msgs/RegionOfInterest.h"
00011 
00012 namespace stereo_msgs
00013 {
00014 
00015   class DisparityImage : public ros::Msg
00016   {
00017     public:
00018       std_msgs::Header header;
00019       sensor_msgs::Image image;
00020       float f;
00021       float T;
00022       sensor_msgs::RegionOfInterest valid_window;
00023       float min_disparity;
00024       float max_disparity;
00025       float delta_d;
00026 
00027     DisparityImage():
00028       header(),
00029       image(),
00030       f(0),
00031       T(0),
00032       valid_window(),
00033       min_disparity(0),
00034       max_disparity(0),
00035       delta_d(0)
00036     {
00037     }
00038 
00039     virtual int serialize(unsigned char *outbuffer) const
00040     {
00041       int offset = 0;
00042       offset += this->header.serialize(outbuffer + offset);
00043       offset += this->image.serialize(outbuffer + offset);
00044       union {
00045         float real;
00046         uint32_t base;
00047       } u_f;
00048       u_f.real = this->f;
00049       *(outbuffer + offset + 0) = (u_f.base >> (8 * 0)) & 0xFF;
00050       *(outbuffer + offset + 1) = (u_f.base >> (8 * 1)) & 0xFF;
00051       *(outbuffer + offset + 2) = (u_f.base >> (8 * 2)) & 0xFF;
00052       *(outbuffer + offset + 3) = (u_f.base >> (8 * 3)) & 0xFF;
00053       offset += sizeof(this->f);
00054       union {
00055         float real;
00056         uint32_t base;
00057       } u_T;
00058       u_T.real = this->T;
00059       *(outbuffer + offset + 0) = (u_T.base >> (8 * 0)) & 0xFF;
00060       *(outbuffer + offset + 1) = (u_T.base >> (8 * 1)) & 0xFF;
00061       *(outbuffer + offset + 2) = (u_T.base >> (8 * 2)) & 0xFF;
00062       *(outbuffer + offset + 3) = (u_T.base >> (8 * 3)) & 0xFF;
00063       offset += sizeof(this->T);
00064       offset += this->valid_window.serialize(outbuffer + offset);
00065       union {
00066         float real;
00067         uint32_t base;
00068       } u_min_disparity;
00069       u_min_disparity.real = this->min_disparity;
00070       *(outbuffer + offset + 0) = (u_min_disparity.base >> (8 * 0)) & 0xFF;
00071       *(outbuffer + offset + 1) = (u_min_disparity.base >> (8 * 1)) & 0xFF;
00072       *(outbuffer + offset + 2) = (u_min_disparity.base >> (8 * 2)) & 0xFF;
00073       *(outbuffer + offset + 3) = (u_min_disparity.base >> (8 * 3)) & 0xFF;
00074       offset += sizeof(this->min_disparity);
00075       union {
00076         float real;
00077         uint32_t base;
00078       } u_max_disparity;
00079       u_max_disparity.real = this->max_disparity;
00080       *(outbuffer + offset + 0) = (u_max_disparity.base >> (8 * 0)) & 0xFF;
00081       *(outbuffer + offset + 1) = (u_max_disparity.base >> (8 * 1)) & 0xFF;
00082       *(outbuffer + offset + 2) = (u_max_disparity.base >> (8 * 2)) & 0xFF;
00083       *(outbuffer + offset + 3) = (u_max_disparity.base >> (8 * 3)) & 0xFF;
00084       offset += sizeof(this->max_disparity);
00085       union {
00086         float real;
00087         uint32_t base;
00088       } u_delta_d;
00089       u_delta_d.real = this->delta_d;
00090       *(outbuffer + offset + 0) = (u_delta_d.base >> (8 * 0)) & 0xFF;
00091       *(outbuffer + offset + 1) = (u_delta_d.base >> (8 * 1)) & 0xFF;
00092       *(outbuffer + offset + 2) = (u_delta_d.base >> (8 * 2)) & 0xFF;
00093       *(outbuffer + offset + 3) = (u_delta_d.base >> (8 * 3)) & 0xFF;
00094       offset += sizeof(this->delta_d);
00095       return offset;
00096     }
00097 
00098     virtual int deserialize(unsigned char *inbuffer)
00099     {
00100       int offset = 0;
00101       offset += this->header.deserialize(inbuffer + offset);
00102       offset += this->image.deserialize(inbuffer + offset);
00103       union {
00104         float real;
00105         uint32_t base;
00106       } u_f;
00107       u_f.base = 0;
00108       u_f.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
00109       u_f.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00110       u_f.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00111       u_f.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00112       this->f = u_f.real;
00113       offset += sizeof(this->f);
00114       union {
00115         float real;
00116         uint32_t base;
00117       } u_T;
00118       u_T.base = 0;
00119       u_T.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
00120       u_T.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00121       u_T.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00122       u_T.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00123       this->T = u_T.real;
00124       offset += sizeof(this->T);
00125       offset += this->valid_window.deserialize(inbuffer + offset);
00126       union {
00127         float real;
00128         uint32_t base;
00129       } u_min_disparity;
00130       u_min_disparity.base = 0;
00131       u_min_disparity.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
00132       u_min_disparity.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00133       u_min_disparity.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00134       u_min_disparity.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00135       this->min_disparity = u_min_disparity.real;
00136       offset += sizeof(this->min_disparity);
00137       union {
00138         float real;
00139         uint32_t base;
00140       } u_max_disparity;
00141       u_max_disparity.base = 0;
00142       u_max_disparity.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
00143       u_max_disparity.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00144       u_max_disparity.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00145       u_max_disparity.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00146       this->max_disparity = u_max_disparity.real;
00147       offset += sizeof(this->max_disparity);
00148       union {
00149         float real;
00150         uint32_t base;
00151       } u_delta_d;
00152       u_delta_d.base = 0;
00153       u_delta_d.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
00154       u_delta_d.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00155       u_delta_d.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00156       u_delta_d.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00157       this->delta_d = u_delta_d.real;
00158       offset += sizeof(this->delta_d);
00159      return offset;
00160     }
00161 
00162     const char * getType(){ return "stereo_msgs/DisparityImage"; };
00163     const char * getMD5(){ return "04a177815f75271039fa21f16acad8c9"; };
00164 
00165   };
00166 
00167 }
00168 #endif