Working towards recieving twists

Dependencies:   BufferedSerial

Fork of ros_lib_kinetic by Gary Servin

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PidState.h Source File

PidState.h

00001 #ifndef _ROS_control_msgs_PidState_h
00002 #define _ROS_control_msgs_PidState_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 "ros/duration.h"
00010 
00011 namespace control_msgs
00012 {
00013 
00014   class PidState : public ros::Msg
00015   {
00016     public:
00017       typedef std_msgs::Header _header_type;
00018       _header_type header;
00019       typedef ros::Duration _timestep_type;
00020       _timestep_type timestep;
00021       typedef double _error_type;
00022       _error_type error;
00023       typedef double _error_dot_type;
00024       _error_dot_type error_dot;
00025       typedef double _p_error_type;
00026       _p_error_type p_error;
00027       typedef double _i_error_type;
00028       _i_error_type i_error;
00029       typedef double _d_error_type;
00030       _d_error_type d_error;
00031       typedef double _p_term_type;
00032       _p_term_type p_term;
00033       typedef double _i_term_type;
00034       _i_term_type i_term;
00035       typedef double _d_term_type;
00036       _d_term_type d_term;
00037       typedef double _i_max_type;
00038       _i_max_type i_max;
00039       typedef double _i_min_type;
00040       _i_min_type i_min;
00041       typedef double _output_type;
00042       _output_type output;
00043 
00044     PidState():
00045       header(),
00046       timestep(),
00047       error(0),
00048       error_dot(0),
00049       p_error(0),
00050       i_error(0),
00051       d_error(0),
00052       p_term(0),
00053       i_term(0),
00054       d_term(0),
00055       i_max(0),
00056       i_min(0),
00057       output(0)
00058     {
00059     }
00060 
00061     virtual int serialize(unsigned char *outbuffer) const
00062     {
00063       int offset = 0;
00064       offset += this->header.serialize(outbuffer + offset);
00065       *(outbuffer + offset + 0) = (this->timestep.sec >> (8 * 0)) & 0xFF;
00066       *(outbuffer + offset + 1) = (this->timestep.sec >> (8 * 1)) & 0xFF;
00067       *(outbuffer + offset + 2) = (this->timestep.sec >> (8 * 2)) & 0xFF;
00068       *(outbuffer + offset + 3) = (this->timestep.sec >> (8 * 3)) & 0xFF;
00069       offset += sizeof(this->timestep.sec);
00070       *(outbuffer + offset + 0) = (this->timestep.nsec >> (8 * 0)) & 0xFF;
00071       *(outbuffer + offset + 1) = (this->timestep.nsec >> (8 * 1)) & 0xFF;
00072       *(outbuffer + offset + 2) = (this->timestep.nsec >> (8 * 2)) & 0xFF;
00073       *(outbuffer + offset + 3) = (this->timestep.nsec >> (8 * 3)) & 0xFF;
00074       offset += sizeof(this->timestep.nsec);
00075       union {
00076         double real;
00077         uint64_t base;
00078       } u_error;
00079       u_error.real = this->error;
00080       *(outbuffer + offset + 0) = (u_error.base >> (8 * 0)) & 0xFF;
00081       *(outbuffer + offset + 1) = (u_error.base >> (8 * 1)) & 0xFF;
00082       *(outbuffer + offset + 2) = (u_error.base >> (8 * 2)) & 0xFF;
00083       *(outbuffer + offset + 3) = (u_error.base >> (8 * 3)) & 0xFF;
00084       *(outbuffer + offset + 4) = (u_error.base >> (8 * 4)) & 0xFF;
00085       *(outbuffer + offset + 5) = (u_error.base >> (8 * 5)) & 0xFF;
00086       *(outbuffer + offset + 6) = (u_error.base >> (8 * 6)) & 0xFF;
00087       *(outbuffer + offset + 7) = (u_error.base >> (8 * 7)) & 0xFF;
00088       offset += sizeof(this->error);
00089       union {
00090         double real;
00091         uint64_t base;
00092       } u_error_dot;
00093       u_error_dot.real = this->error_dot;
00094       *(outbuffer + offset + 0) = (u_error_dot.base >> (8 * 0)) & 0xFF;
00095       *(outbuffer + offset + 1) = (u_error_dot.base >> (8 * 1)) & 0xFF;
00096       *(outbuffer + offset + 2) = (u_error_dot.base >> (8 * 2)) & 0xFF;
00097       *(outbuffer + offset + 3) = (u_error_dot.base >> (8 * 3)) & 0xFF;
00098       *(outbuffer + offset + 4) = (u_error_dot.base >> (8 * 4)) & 0xFF;
00099       *(outbuffer + offset + 5) = (u_error_dot.base >> (8 * 5)) & 0xFF;
00100       *(outbuffer + offset + 6) = (u_error_dot.base >> (8 * 6)) & 0xFF;
00101       *(outbuffer + offset + 7) = (u_error_dot.base >> (8 * 7)) & 0xFF;
00102       offset += sizeof(this->error_dot);
00103       union {
00104         double real;
00105         uint64_t base;
00106       } u_p_error;
00107       u_p_error.real = this->p_error;
00108       *(outbuffer + offset + 0) = (u_p_error.base >> (8 * 0)) & 0xFF;
00109       *(outbuffer + offset + 1) = (u_p_error.base >> (8 * 1)) & 0xFF;
00110       *(outbuffer + offset + 2) = (u_p_error.base >> (8 * 2)) & 0xFF;
00111       *(outbuffer + offset + 3) = (u_p_error.base >> (8 * 3)) & 0xFF;
00112       *(outbuffer + offset + 4) = (u_p_error.base >> (8 * 4)) & 0xFF;
00113       *(outbuffer + offset + 5) = (u_p_error.base >> (8 * 5)) & 0xFF;
00114       *(outbuffer + offset + 6) = (u_p_error.base >> (8 * 6)) & 0xFF;
00115       *(outbuffer + offset + 7) = (u_p_error.base >> (8 * 7)) & 0xFF;
00116       offset += sizeof(this->p_error);
00117       union {
00118         double real;
00119         uint64_t base;
00120       } u_i_error;
00121       u_i_error.real = this->i_error;
00122       *(outbuffer + offset + 0) = (u_i_error.base >> (8 * 0)) & 0xFF;
00123       *(outbuffer + offset + 1) = (u_i_error.base >> (8 * 1)) & 0xFF;
00124       *(outbuffer + offset + 2) = (u_i_error.base >> (8 * 2)) & 0xFF;
00125       *(outbuffer + offset + 3) = (u_i_error.base >> (8 * 3)) & 0xFF;
00126       *(outbuffer + offset + 4) = (u_i_error.base >> (8 * 4)) & 0xFF;
00127       *(outbuffer + offset + 5) = (u_i_error.base >> (8 * 5)) & 0xFF;
00128       *(outbuffer + offset + 6) = (u_i_error.base >> (8 * 6)) & 0xFF;
00129       *(outbuffer + offset + 7) = (u_i_error.base >> (8 * 7)) & 0xFF;
00130       offset += sizeof(this->i_error);
00131       union {
00132         double real;
00133         uint64_t base;
00134       } u_d_error;
00135       u_d_error.real = this->d_error;
00136       *(outbuffer + offset + 0) = (u_d_error.base >> (8 * 0)) & 0xFF;
00137       *(outbuffer + offset + 1) = (u_d_error.base >> (8 * 1)) & 0xFF;
00138       *(outbuffer + offset + 2) = (u_d_error.base >> (8 * 2)) & 0xFF;
00139       *(outbuffer + offset + 3) = (u_d_error.base >> (8 * 3)) & 0xFF;
00140       *(outbuffer + offset + 4) = (u_d_error.base >> (8 * 4)) & 0xFF;
00141       *(outbuffer + offset + 5) = (u_d_error.base >> (8 * 5)) & 0xFF;
00142       *(outbuffer + offset + 6) = (u_d_error.base >> (8 * 6)) & 0xFF;
00143       *(outbuffer + offset + 7) = (u_d_error.base >> (8 * 7)) & 0xFF;
00144       offset += sizeof(this->d_error);
00145       union {
00146         double real;
00147         uint64_t base;
00148       } u_p_term;
00149       u_p_term.real = this->p_term;
00150       *(outbuffer + offset + 0) = (u_p_term.base >> (8 * 0)) & 0xFF;
00151       *(outbuffer + offset + 1) = (u_p_term.base >> (8 * 1)) & 0xFF;
00152       *(outbuffer + offset + 2) = (u_p_term.base >> (8 * 2)) & 0xFF;
00153       *(outbuffer + offset + 3) = (u_p_term.base >> (8 * 3)) & 0xFF;
00154       *(outbuffer + offset + 4) = (u_p_term.base >> (8 * 4)) & 0xFF;
00155       *(outbuffer + offset + 5) = (u_p_term.base >> (8 * 5)) & 0xFF;
00156       *(outbuffer + offset + 6) = (u_p_term.base >> (8 * 6)) & 0xFF;
00157       *(outbuffer + offset + 7) = (u_p_term.base >> (8 * 7)) & 0xFF;
00158       offset += sizeof(this->p_term);
00159       union {
00160         double real;
00161         uint64_t base;
00162       } u_i_term;
00163       u_i_term.real = this->i_term;
00164       *(outbuffer + offset + 0) = (u_i_term.base >> (8 * 0)) & 0xFF;
00165       *(outbuffer + offset + 1) = (u_i_term.base >> (8 * 1)) & 0xFF;
00166       *(outbuffer + offset + 2) = (u_i_term.base >> (8 * 2)) & 0xFF;
00167       *(outbuffer + offset + 3) = (u_i_term.base >> (8 * 3)) & 0xFF;
00168       *(outbuffer + offset + 4) = (u_i_term.base >> (8 * 4)) & 0xFF;
00169       *(outbuffer + offset + 5) = (u_i_term.base >> (8 * 5)) & 0xFF;
00170       *(outbuffer + offset + 6) = (u_i_term.base >> (8 * 6)) & 0xFF;
00171       *(outbuffer + offset + 7) = (u_i_term.base >> (8 * 7)) & 0xFF;
00172       offset += sizeof(this->i_term);
00173       union {
00174         double real;
00175         uint64_t base;
00176       } u_d_term;
00177       u_d_term.real = this->d_term;
00178       *(outbuffer + offset + 0) = (u_d_term.base >> (8 * 0)) & 0xFF;
00179       *(outbuffer + offset + 1) = (u_d_term.base >> (8 * 1)) & 0xFF;
00180       *(outbuffer + offset + 2) = (u_d_term.base >> (8 * 2)) & 0xFF;
00181       *(outbuffer + offset + 3) = (u_d_term.base >> (8 * 3)) & 0xFF;
00182       *(outbuffer + offset + 4) = (u_d_term.base >> (8 * 4)) & 0xFF;
00183       *(outbuffer + offset + 5) = (u_d_term.base >> (8 * 5)) & 0xFF;
00184       *(outbuffer + offset + 6) = (u_d_term.base >> (8 * 6)) & 0xFF;
00185       *(outbuffer + offset + 7) = (u_d_term.base >> (8 * 7)) & 0xFF;
00186       offset += sizeof(this->d_term);
00187       union {
00188         double real;
00189         uint64_t base;
00190       } u_i_max;
00191       u_i_max.real = this->i_max;
00192       *(outbuffer + offset + 0) = (u_i_max.base >> (8 * 0)) & 0xFF;
00193       *(outbuffer + offset + 1) = (u_i_max.base >> (8 * 1)) & 0xFF;
00194       *(outbuffer + offset + 2) = (u_i_max.base >> (8 * 2)) & 0xFF;
00195       *(outbuffer + offset + 3) = (u_i_max.base >> (8 * 3)) & 0xFF;
00196       *(outbuffer + offset + 4) = (u_i_max.base >> (8 * 4)) & 0xFF;
00197       *(outbuffer + offset + 5) = (u_i_max.base >> (8 * 5)) & 0xFF;
00198       *(outbuffer + offset + 6) = (u_i_max.base >> (8 * 6)) & 0xFF;
00199       *(outbuffer + offset + 7) = (u_i_max.base >> (8 * 7)) & 0xFF;
00200       offset += sizeof(this->i_max);
00201       union {
00202         double real;
00203         uint64_t base;
00204       } u_i_min;
00205       u_i_min.real = this->i_min;
00206       *(outbuffer + offset + 0) = (u_i_min.base >> (8 * 0)) & 0xFF;
00207       *(outbuffer + offset + 1) = (u_i_min.base >> (8 * 1)) & 0xFF;
00208       *(outbuffer + offset + 2) = (u_i_min.base >> (8 * 2)) & 0xFF;
00209       *(outbuffer + offset + 3) = (u_i_min.base >> (8 * 3)) & 0xFF;
00210       *(outbuffer + offset + 4) = (u_i_min.base >> (8 * 4)) & 0xFF;
00211       *(outbuffer + offset + 5) = (u_i_min.base >> (8 * 5)) & 0xFF;
00212       *(outbuffer + offset + 6) = (u_i_min.base >> (8 * 6)) & 0xFF;
00213       *(outbuffer + offset + 7) = (u_i_min.base >> (8 * 7)) & 0xFF;
00214       offset += sizeof(this->i_min);
00215       union {
00216         double real;
00217         uint64_t base;
00218       } u_output;
00219       u_output.real = this->output;
00220       *(outbuffer + offset + 0) = (u_output.base >> (8 * 0)) & 0xFF;
00221       *(outbuffer + offset + 1) = (u_output.base >> (8 * 1)) & 0xFF;
00222       *(outbuffer + offset + 2) = (u_output.base >> (8 * 2)) & 0xFF;
00223       *(outbuffer + offset + 3) = (u_output.base >> (8 * 3)) & 0xFF;
00224       *(outbuffer + offset + 4) = (u_output.base >> (8 * 4)) & 0xFF;
00225       *(outbuffer + offset + 5) = (u_output.base >> (8 * 5)) & 0xFF;
00226       *(outbuffer + offset + 6) = (u_output.base >> (8 * 6)) & 0xFF;
00227       *(outbuffer + offset + 7) = (u_output.base >> (8 * 7)) & 0xFF;
00228       offset += sizeof(this->output);
00229       return offset;
00230     }
00231 
00232     virtual int deserialize(unsigned char *inbuffer)
00233     {
00234       int offset = 0;
00235       offset += this->header.deserialize(inbuffer + offset);
00236       this->timestep.sec =  ((uint32_t) (*(inbuffer + offset)));
00237       this->timestep.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00238       this->timestep.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00239       this->timestep.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00240       offset += sizeof(this->timestep.sec);
00241       this->timestep.nsec =  ((uint32_t) (*(inbuffer + offset)));
00242       this->timestep.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00243       this->timestep.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00244       this->timestep.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00245       offset += sizeof(this->timestep.nsec);
00246       union {
00247         double real;
00248         uint64_t base;
00249       } u_error;
00250       u_error.base = 0;
00251       u_error.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00252       u_error.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00253       u_error.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00254       u_error.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00255       u_error.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00256       u_error.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00257       u_error.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00258       u_error.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00259       this->error = u_error.real;
00260       offset += sizeof(this->error);
00261       union {
00262         double real;
00263         uint64_t base;
00264       } u_error_dot;
00265       u_error_dot.base = 0;
00266       u_error_dot.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00267       u_error_dot.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00268       u_error_dot.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00269       u_error_dot.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00270       u_error_dot.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00271       u_error_dot.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00272       u_error_dot.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00273       u_error_dot.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00274       this->error_dot = u_error_dot.real;
00275       offset += sizeof(this->error_dot);
00276       union {
00277         double real;
00278         uint64_t base;
00279       } u_p_error;
00280       u_p_error.base = 0;
00281       u_p_error.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00282       u_p_error.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00283       u_p_error.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00284       u_p_error.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00285       u_p_error.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00286       u_p_error.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00287       u_p_error.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00288       u_p_error.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00289       this->p_error = u_p_error.real;
00290       offset += sizeof(this->p_error);
00291       union {
00292         double real;
00293         uint64_t base;
00294       } u_i_error;
00295       u_i_error.base = 0;
00296       u_i_error.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00297       u_i_error.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00298       u_i_error.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00299       u_i_error.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00300       u_i_error.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00301       u_i_error.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00302       u_i_error.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00303       u_i_error.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00304       this->i_error = u_i_error.real;
00305       offset += sizeof(this->i_error);
00306       union {
00307         double real;
00308         uint64_t base;
00309       } u_d_error;
00310       u_d_error.base = 0;
00311       u_d_error.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00312       u_d_error.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00313       u_d_error.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00314       u_d_error.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00315       u_d_error.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00316       u_d_error.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00317       u_d_error.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00318       u_d_error.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00319       this->d_error = u_d_error.real;
00320       offset += sizeof(this->d_error);
00321       union {
00322         double real;
00323         uint64_t base;
00324       } u_p_term;
00325       u_p_term.base = 0;
00326       u_p_term.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00327       u_p_term.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00328       u_p_term.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00329       u_p_term.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00330       u_p_term.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00331       u_p_term.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00332       u_p_term.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00333       u_p_term.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00334       this->p_term = u_p_term.real;
00335       offset += sizeof(this->p_term);
00336       union {
00337         double real;
00338         uint64_t base;
00339       } u_i_term;
00340       u_i_term.base = 0;
00341       u_i_term.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00342       u_i_term.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00343       u_i_term.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00344       u_i_term.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00345       u_i_term.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00346       u_i_term.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00347       u_i_term.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00348       u_i_term.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00349       this->i_term = u_i_term.real;
00350       offset += sizeof(this->i_term);
00351       union {
00352         double real;
00353         uint64_t base;
00354       } u_d_term;
00355       u_d_term.base = 0;
00356       u_d_term.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00357       u_d_term.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00358       u_d_term.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00359       u_d_term.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00360       u_d_term.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00361       u_d_term.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00362       u_d_term.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00363       u_d_term.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00364       this->d_term = u_d_term.real;
00365       offset += sizeof(this->d_term);
00366       union {
00367         double real;
00368         uint64_t base;
00369       } u_i_max;
00370       u_i_max.base = 0;
00371       u_i_max.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00372       u_i_max.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00373       u_i_max.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00374       u_i_max.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00375       u_i_max.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00376       u_i_max.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00377       u_i_max.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00378       u_i_max.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00379       this->i_max = u_i_max.real;
00380       offset += sizeof(this->i_max);
00381       union {
00382         double real;
00383         uint64_t base;
00384       } u_i_min;
00385       u_i_min.base = 0;
00386       u_i_min.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00387       u_i_min.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00388       u_i_min.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00389       u_i_min.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00390       u_i_min.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00391       u_i_min.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00392       u_i_min.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00393       u_i_min.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00394       this->i_min = u_i_min.real;
00395       offset += sizeof(this->i_min);
00396       union {
00397         double real;
00398         uint64_t base;
00399       } u_output;
00400       u_output.base = 0;
00401       u_output.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00402       u_output.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00403       u_output.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00404       u_output.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00405       u_output.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00406       u_output.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00407       u_output.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00408       u_output.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00409       this->output = u_output.real;
00410       offset += sizeof(this->output);
00411      return offset;
00412     }
00413 
00414     const char * getType(){ return "control_msgs/PidState"; };
00415     const char * getMD5(){ return "b138ec00e886c10e73f27e8712252ea6"; };
00416 
00417   };
00418 
00419 }
00420 #endif