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 ODEJointProperties.h Source File

ODEJointProperties.h

00001 #ifndef _ROS_gazebo_msgs_ODEJointProperties_h
00002 #define _ROS_gazebo_msgs_ODEJointProperties_h
00003 
00004 #include <stdint.h>
00005 #include <string.h>
00006 #include <stdlib.h>
00007 #include "ros/msg.h"
00008 
00009 namespace gazebo_msgs
00010 {
00011 
00012   class ODEJointProperties : public ros::Msg
00013   {
00014     public:
00015       uint8_t damping_length;
00016       double st_damping;
00017       double * damping;
00018       uint8_t hiStop_length;
00019       double st_hiStop;
00020       double * hiStop;
00021       uint8_t loStop_length;
00022       double st_loStop;
00023       double * loStop;
00024       uint8_t erp_length;
00025       double st_erp;
00026       double * erp;
00027       uint8_t cfm_length;
00028       double st_cfm;
00029       double * cfm;
00030       uint8_t stop_erp_length;
00031       double st_stop_erp;
00032       double * stop_erp;
00033       uint8_t stop_cfm_length;
00034       double st_stop_cfm;
00035       double * stop_cfm;
00036       uint8_t fudge_factor_length;
00037       double st_fudge_factor;
00038       double * fudge_factor;
00039       uint8_t fmax_length;
00040       double st_fmax;
00041       double * fmax;
00042       uint8_t vel_length;
00043       double st_vel;
00044       double * vel;
00045 
00046     ODEJointProperties():
00047       damping_length(0), damping(NULL),
00048       hiStop_length(0), hiStop(NULL),
00049       loStop_length(0), loStop(NULL),
00050       erp_length(0), erp(NULL),
00051       cfm_length(0), cfm(NULL),
00052       stop_erp_length(0), stop_erp(NULL),
00053       stop_cfm_length(0), stop_cfm(NULL),
00054       fudge_factor_length(0), fudge_factor(NULL),
00055       fmax_length(0), fmax(NULL),
00056       vel_length(0), vel(NULL)
00057     {
00058     }
00059 
00060     virtual int serialize(unsigned char *outbuffer) const
00061     {
00062       int offset = 0;
00063       *(outbuffer + offset++) = damping_length;
00064       *(outbuffer + offset++) = 0;
00065       *(outbuffer + offset++) = 0;
00066       *(outbuffer + offset++) = 0;
00067       for( uint8_t i = 0; i < damping_length; i++){
00068       union {
00069         double real;
00070         uint64_t base;
00071       } u_dampingi;
00072       u_dampingi.real = this->damping[i];
00073       *(outbuffer + offset + 0) = (u_dampingi.base >> (8 * 0)) & 0xFF;
00074       *(outbuffer + offset + 1) = (u_dampingi.base >> (8 * 1)) & 0xFF;
00075       *(outbuffer + offset + 2) = (u_dampingi.base >> (8 * 2)) & 0xFF;
00076       *(outbuffer + offset + 3) = (u_dampingi.base >> (8 * 3)) & 0xFF;
00077       *(outbuffer + offset + 4) = (u_dampingi.base >> (8 * 4)) & 0xFF;
00078       *(outbuffer + offset + 5) = (u_dampingi.base >> (8 * 5)) & 0xFF;
00079       *(outbuffer + offset + 6) = (u_dampingi.base >> (8 * 6)) & 0xFF;
00080       *(outbuffer + offset + 7) = (u_dampingi.base >> (8 * 7)) & 0xFF;
00081       offset += sizeof(this->damping[i]);
00082       }
00083       *(outbuffer + offset++) = hiStop_length;
00084       *(outbuffer + offset++) = 0;
00085       *(outbuffer + offset++) = 0;
00086       *(outbuffer + offset++) = 0;
00087       for( uint8_t i = 0; i < hiStop_length; i++){
00088       union {
00089         double real;
00090         uint64_t base;
00091       } u_hiStopi;
00092       u_hiStopi.real = this->hiStop[i];
00093       *(outbuffer + offset + 0) = (u_hiStopi.base >> (8 * 0)) & 0xFF;
00094       *(outbuffer + offset + 1) = (u_hiStopi.base >> (8 * 1)) & 0xFF;
00095       *(outbuffer + offset + 2) = (u_hiStopi.base >> (8 * 2)) & 0xFF;
00096       *(outbuffer + offset + 3) = (u_hiStopi.base >> (8 * 3)) & 0xFF;
00097       *(outbuffer + offset + 4) = (u_hiStopi.base >> (8 * 4)) & 0xFF;
00098       *(outbuffer + offset + 5) = (u_hiStopi.base >> (8 * 5)) & 0xFF;
00099       *(outbuffer + offset + 6) = (u_hiStopi.base >> (8 * 6)) & 0xFF;
00100       *(outbuffer + offset + 7) = (u_hiStopi.base >> (8 * 7)) & 0xFF;
00101       offset += sizeof(this->hiStop[i]);
00102       }
00103       *(outbuffer + offset++) = loStop_length;
00104       *(outbuffer + offset++) = 0;
00105       *(outbuffer + offset++) = 0;
00106       *(outbuffer + offset++) = 0;
00107       for( uint8_t i = 0; i < loStop_length; i++){
00108       union {
00109         double real;
00110         uint64_t base;
00111       } u_loStopi;
00112       u_loStopi.real = this->loStop[i];
00113       *(outbuffer + offset + 0) = (u_loStopi.base >> (8 * 0)) & 0xFF;
00114       *(outbuffer + offset + 1) = (u_loStopi.base >> (8 * 1)) & 0xFF;
00115       *(outbuffer + offset + 2) = (u_loStopi.base >> (8 * 2)) & 0xFF;
00116       *(outbuffer + offset + 3) = (u_loStopi.base >> (8 * 3)) & 0xFF;
00117       *(outbuffer + offset + 4) = (u_loStopi.base >> (8 * 4)) & 0xFF;
00118       *(outbuffer + offset + 5) = (u_loStopi.base >> (8 * 5)) & 0xFF;
00119       *(outbuffer + offset + 6) = (u_loStopi.base >> (8 * 6)) & 0xFF;
00120       *(outbuffer + offset + 7) = (u_loStopi.base >> (8 * 7)) & 0xFF;
00121       offset += sizeof(this->loStop[i]);
00122       }
00123       *(outbuffer + offset++) = erp_length;
00124       *(outbuffer + offset++) = 0;
00125       *(outbuffer + offset++) = 0;
00126       *(outbuffer + offset++) = 0;
00127       for( uint8_t i = 0; i < erp_length; i++){
00128       union {
00129         double real;
00130         uint64_t base;
00131       } u_erpi;
00132       u_erpi.real = this->erp[i];
00133       *(outbuffer + offset + 0) = (u_erpi.base >> (8 * 0)) & 0xFF;
00134       *(outbuffer + offset + 1) = (u_erpi.base >> (8 * 1)) & 0xFF;
00135       *(outbuffer + offset + 2) = (u_erpi.base >> (8 * 2)) & 0xFF;
00136       *(outbuffer + offset + 3) = (u_erpi.base >> (8 * 3)) & 0xFF;
00137       *(outbuffer + offset + 4) = (u_erpi.base >> (8 * 4)) & 0xFF;
00138       *(outbuffer + offset + 5) = (u_erpi.base >> (8 * 5)) & 0xFF;
00139       *(outbuffer + offset + 6) = (u_erpi.base >> (8 * 6)) & 0xFF;
00140       *(outbuffer + offset + 7) = (u_erpi.base >> (8 * 7)) & 0xFF;
00141       offset += sizeof(this->erp[i]);
00142       }
00143       *(outbuffer + offset++) = cfm_length;
00144       *(outbuffer + offset++) = 0;
00145       *(outbuffer + offset++) = 0;
00146       *(outbuffer + offset++) = 0;
00147       for( uint8_t i = 0; i < cfm_length; i++){
00148       union {
00149         double real;
00150         uint64_t base;
00151       } u_cfmi;
00152       u_cfmi.real = this->cfm[i];
00153       *(outbuffer + offset + 0) = (u_cfmi.base >> (8 * 0)) & 0xFF;
00154       *(outbuffer + offset + 1) = (u_cfmi.base >> (8 * 1)) & 0xFF;
00155       *(outbuffer + offset + 2) = (u_cfmi.base >> (8 * 2)) & 0xFF;
00156       *(outbuffer + offset + 3) = (u_cfmi.base >> (8 * 3)) & 0xFF;
00157       *(outbuffer + offset + 4) = (u_cfmi.base >> (8 * 4)) & 0xFF;
00158       *(outbuffer + offset + 5) = (u_cfmi.base >> (8 * 5)) & 0xFF;
00159       *(outbuffer + offset + 6) = (u_cfmi.base >> (8 * 6)) & 0xFF;
00160       *(outbuffer + offset + 7) = (u_cfmi.base >> (8 * 7)) & 0xFF;
00161       offset += sizeof(this->cfm[i]);
00162       }
00163       *(outbuffer + offset++) = stop_erp_length;
00164       *(outbuffer + offset++) = 0;
00165       *(outbuffer + offset++) = 0;
00166       *(outbuffer + offset++) = 0;
00167       for( uint8_t i = 0; i < stop_erp_length; i++){
00168       union {
00169         double real;
00170         uint64_t base;
00171       } u_stop_erpi;
00172       u_stop_erpi.real = this->stop_erp[i];
00173       *(outbuffer + offset + 0) = (u_stop_erpi.base >> (8 * 0)) & 0xFF;
00174       *(outbuffer + offset + 1) = (u_stop_erpi.base >> (8 * 1)) & 0xFF;
00175       *(outbuffer + offset + 2) = (u_stop_erpi.base >> (8 * 2)) & 0xFF;
00176       *(outbuffer + offset + 3) = (u_stop_erpi.base >> (8 * 3)) & 0xFF;
00177       *(outbuffer + offset + 4) = (u_stop_erpi.base >> (8 * 4)) & 0xFF;
00178       *(outbuffer + offset + 5) = (u_stop_erpi.base >> (8 * 5)) & 0xFF;
00179       *(outbuffer + offset + 6) = (u_stop_erpi.base >> (8 * 6)) & 0xFF;
00180       *(outbuffer + offset + 7) = (u_stop_erpi.base >> (8 * 7)) & 0xFF;
00181       offset += sizeof(this->stop_erp[i]);
00182       }
00183       *(outbuffer + offset++) = stop_cfm_length;
00184       *(outbuffer + offset++) = 0;
00185       *(outbuffer + offset++) = 0;
00186       *(outbuffer + offset++) = 0;
00187       for( uint8_t i = 0; i < stop_cfm_length; i++){
00188       union {
00189         double real;
00190         uint64_t base;
00191       } u_stop_cfmi;
00192       u_stop_cfmi.real = this->stop_cfm[i];
00193       *(outbuffer + offset + 0) = (u_stop_cfmi.base >> (8 * 0)) & 0xFF;
00194       *(outbuffer + offset + 1) = (u_stop_cfmi.base >> (8 * 1)) & 0xFF;
00195       *(outbuffer + offset + 2) = (u_stop_cfmi.base >> (8 * 2)) & 0xFF;
00196       *(outbuffer + offset + 3) = (u_stop_cfmi.base >> (8 * 3)) & 0xFF;
00197       *(outbuffer + offset + 4) = (u_stop_cfmi.base >> (8 * 4)) & 0xFF;
00198       *(outbuffer + offset + 5) = (u_stop_cfmi.base >> (8 * 5)) & 0xFF;
00199       *(outbuffer + offset + 6) = (u_stop_cfmi.base >> (8 * 6)) & 0xFF;
00200       *(outbuffer + offset + 7) = (u_stop_cfmi.base >> (8 * 7)) & 0xFF;
00201       offset += sizeof(this->stop_cfm[i]);
00202       }
00203       *(outbuffer + offset++) = fudge_factor_length;
00204       *(outbuffer + offset++) = 0;
00205       *(outbuffer + offset++) = 0;
00206       *(outbuffer + offset++) = 0;
00207       for( uint8_t i = 0; i < fudge_factor_length; i++){
00208       union {
00209         double real;
00210         uint64_t base;
00211       } u_fudge_factori;
00212       u_fudge_factori.real = this->fudge_factor[i];
00213       *(outbuffer + offset + 0) = (u_fudge_factori.base >> (8 * 0)) & 0xFF;
00214       *(outbuffer + offset + 1) = (u_fudge_factori.base >> (8 * 1)) & 0xFF;
00215       *(outbuffer + offset + 2) = (u_fudge_factori.base >> (8 * 2)) & 0xFF;
00216       *(outbuffer + offset + 3) = (u_fudge_factori.base >> (8 * 3)) & 0xFF;
00217       *(outbuffer + offset + 4) = (u_fudge_factori.base >> (8 * 4)) & 0xFF;
00218       *(outbuffer + offset + 5) = (u_fudge_factori.base >> (8 * 5)) & 0xFF;
00219       *(outbuffer + offset + 6) = (u_fudge_factori.base >> (8 * 6)) & 0xFF;
00220       *(outbuffer + offset + 7) = (u_fudge_factori.base >> (8 * 7)) & 0xFF;
00221       offset += sizeof(this->fudge_factor[i]);
00222       }
00223       *(outbuffer + offset++) = fmax_length;
00224       *(outbuffer + offset++) = 0;
00225       *(outbuffer + offset++) = 0;
00226       *(outbuffer + offset++) = 0;
00227       for( uint8_t i = 0; i < fmax_length; i++){
00228       union {
00229         double real;
00230         uint64_t base;
00231       } u_fmaxi;
00232       u_fmaxi.real = this->fmax[i];
00233       *(outbuffer + offset + 0) = (u_fmaxi.base >> (8 * 0)) & 0xFF;
00234       *(outbuffer + offset + 1) = (u_fmaxi.base >> (8 * 1)) & 0xFF;
00235       *(outbuffer + offset + 2) = (u_fmaxi.base >> (8 * 2)) & 0xFF;
00236       *(outbuffer + offset + 3) = (u_fmaxi.base >> (8 * 3)) & 0xFF;
00237       *(outbuffer + offset + 4) = (u_fmaxi.base >> (8 * 4)) & 0xFF;
00238       *(outbuffer + offset + 5) = (u_fmaxi.base >> (8 * 5)) & 0xFF;
00239       *(outbuffer + offset + 6) = (u_fmaxi.base >> (8 * 6)) & 0xFF;
00240       *(outbuffer + offset + 7) = (u_fmaxi.base >> (8 * 7)) & 0xFF;
00241       offset += sizeof(this->fmax[i]);
00242       }
00243       *(outbuffer + offset++) = vel_length;
00244       *(outbuffer + offset++) = 0;
00245       *(outbuffer + offset++) = 0;
00246       *(outbuffer + offset++) = 0;
00247       for( uint8_t i = 0; i < vel_length; i++){
00248       union {
00249         double real;
00250         uint64_t base;
00251       } u_veli;
00252       u_veli.real = this->vel[i];
00253       *(outbuffer + offset + 0) = (u_veli.base >> (8 * 0)) & 0xFF;
00254       *(outbuffer + offset + 1) = (u_veli.base >> (8 * 1)) & 0xFF;
00255       *(outbuffer + offset + 2) = (u_veli.base >> (8 * 2)) & 0xFF;
00256       *(outbuffer + offset + 3) = (u_veli.base >> (8 * 3)) & 0xFF;
00257       *(outbuffer + offset + 4) = (u_veli.base >> (8 * 4)) & 0xFF;
00258       *(outbuffer + offset + 5) = (u_veli.base >> (8 * 5)) & 0xFF;
00259       *(outbuffer + offset + 6) = (u_veli.base >> (8 * 6)) & 0xFF;
00260       *(outbuffer + offset + 7) = (u_veli.base >> (8 * 7)) & 0xFF;
00261       offset += sizeof(this->vel[i]);
00262       }
00263       return offset;
00264     }
00265 
00266     virtual int deserialize(unsigned char *inbuffer)
00267     {
00268       int offset = 0;
00269       uint8_t damping_lengthT = *(inbuffer + offset++);
00270       if(damping_lengthT > damping_length)
00271         this->damping = (double*)realloc(this->damping, damping_lengthT * sizeof(double));
00272       offset += 3;
00273       damping_length = damping_lengthT;
00274       for( uint8_t i = 0; i < damping_length; i++){
00275       union {
00276         double real;
00277         uint64_t base;
00278       } u_st_damping;
00279       u_st_damping.base = 0;
00280       u_st_damping.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00281       u_st_damping.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00282       u_st_damping.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00283       u_st_damping.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00284       u_st_damping.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00285       u_st_damping.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00286       u_st_damping.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00287       u_st_damping.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00288       this->st_damping = u_st_damping.real;
00289       offset += sizeof(this->st_damping);
00290         memcpy( &(this->damping[i]), &(this->st_damping), sizeof(double));
00291       }
00292       uint8_t hiStop_lengthT = *(inbuffer + offset++);
00293       if(hiStop_lengthT > hiStop_length)
00294         this->hiStop = (double*)realloc(this->hiStop, hiStop_lengthT * sizeof(double));
00295       offset += 3;
00296       hiStop_length = hiStop_lengthT;
00297       for( uint8_t i = 0; i < hiStop_length; i++){
00298       union {
00299         double real;
00300         uint64_t base;
00301       } u_st_hiStop;
00302       u_st_hiStop.base = 0;
00303       u_st_hiStop.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00304       u_st_hiStop.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00305       u_st_hiStop.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00306       u_st_hiStop.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00307       u_st_hiStop.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00308       u_st_hiStop.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00309       u_st_hiStop.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00310       u_st_hiStop.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00311       this->st_hiStop = u_st_hiStop.real;
00312       offset += sizeof(this->st_hiStop);
00313         memcpy( &(this->hiStop[i]), &(this->st_hiStop), sizeof(double));
00314       }
00315       uint8_t loStop_lengthT = *(inbuffer + offset++);
00316       if(loStop_lengthT > loStop_length)
00317         this->loStop = (double*)realloc(this->loStop, loStop_lengthT * sizeof(double));
00318       offset += 3;
00319       loStop_length = loStop_lengthT;
00320       for( uint8_t i = 0; i < loStop_length; i++){
00321       union {
00322         double real;
00323         uint64_t base;
00324       } u_st_loStop;
00325       u_st_loStop.base = 0;
00326       u_st_loStop.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00327       u_st_loStop.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00328       u_st_loStop.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00329       u_st_loStop.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00330       u_st_loStop.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00331       u_st_loStop.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00332       u_st_loStop.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00333       u_st_loStop.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00334       this->st_loStop = u_st_loStop.real;
00335       offset += sizeof(this->st_loStop);
00336         memcpy( &(this->loStop[i]), &(this->st_loStop), sizeof(double));
00337       }
00338       uint8_t erp_lengthT = *(inbuffer + offset++);
00339       if(erp_lengthT > erp_length)
00340         this->erp = (double*)realloc(this->erp, erp_lengthT * sizeof(double));
00341       offset += 3;
00342       erp_length = erp_lengthT;
00343       for( uint8_t i = 0; i < erp_length; i++){
00344       union {
00345         double real;
00346         uint64_t base;
00347       } u_st_erp;
00348       u_st_erp.base = 0;
00349       u_st_erp.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00350       u_st_erp.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00351       u_st_erp.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00352       u_st_erp.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00353       u_st_erp.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00354       u_st_erp.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00355       u_st_erp.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00356       u_st_erp.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00357       this->st_erp = u_st_erp.real;
00358       offset += sizeof(this->st_erp);
00359         memcpy( &(this->erp[i]), &(this->st_erp), sizeof(double));
00360       }
00361       uint8_t cfm_lengthT = *(inbuffer + offset++);
00362       if(cfm_lengthT > cfm_length)
00363         this->cfm = (double*)realloc(this->cfm, cfm_lengthT * sizeof(double));
00364       offset += 3;
00365       cfm_length = cfm_lengthT;
00366       for( uint8_t i = 0; i < cfm_length; i++){
00367       union {
00368         double real;
00369         uint64_t base;
00370       } u_st_cfm;
00371       u_st_cfm.base = 0;
00372       u_st_cfm.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00373       u_st_cfm.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00374       u_st_cfm.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00375       u_st_cfm.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00376       u_st_cfm.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00377       u_st_cfm.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00378       u_st_cfm.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00379       u_st_cfm.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00380       this->st_cfm = u_st_cfm.real;
00381       offset += sizeof(this->st_cfm);
00382         memcpy( &(this->cfm[i]), &(this->st_cfm), sizeof(double));
00383       }
00384       uint8_t stop_erp_lengthT = *(inbuffer + offset++);
00385       if(stop_erp_lengthT > stop_erp_length)
00386         this->stop_erp = (double*)realloc(this->stop_erp, stop_erp_lengthT * sizeof(double));
00387       offset += 3;
00388       stop_erp_length = stop_erp_lengthT;
00389       for( uint8_t i = 0; i < stop_erp_length; i++){
00390       union {
00391         double real;
00392         uint64_t base;
00393       } u_st_stop_erp;
00394       u_st_stop_erp.base = 0;
00395       u_st_stop_erp.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00396       u_st_stop_erp.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00397       u_st_stop_erp.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00398       u_st_stop_erp.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00399       u_st_stop_erp.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00400       u_st_stop_erp.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00401       u_st_stop_erp.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00402       u_st_stop_erp.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00403       this->st_stop_erp = u_st_stop_erp.real;
00404       offset += sizeof(this->st_stop_erp);
00405         memcpy( &(this->stop_erp[i]), &(this->st_stop_erp), sizeof(double));
00406       }
00407       uint8_t stop_cfm_lengthT = *(inbuffer + offset++);
00408       if(stop_cfm_lengthT > stop_cfm_length)
00409         this->stop_cfm = (double*)realloc(this->stop_cfm, stop_cfm_lengthT * sizeof(double));
00410       offset += 3;
00411       stop_cfm_length = stop_cfm_lengthT;
00412       for( uint8_t i = 0; i < stop_cfm_length; i++){
00413       union {
00414         double real;
00415         uint64_t base;
00416       } u_st_stop_cfm;
00417       u_st_stop_cfm.base = 0;
00418       u_st_stop_cfm.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00419       u_st_stop_cfm.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00420       u_st_stop_cfm.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00421       u_st_stop_cfm.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00422       u_st_stop_cfm.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00423       u_st_stop_cfm.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00424       u_st_stop_cfm.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00425       u_st_stop_cfm.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00426       this->st_stop_cfm = u_st_stop_cfm.real;
00427       offset += sizeof(this->st_stop_cfm);
00428         memcpy( &(this->stop_cfm[i]), &(this->st_stop_cfm), sizeof(double));
00429       }
00430       uint8_t fudge_factor_lengthT = *(inbuffer + offset++);
00431       if(fudge_factor_lengthT > fudge_factor_length)
00432         this->fudge_factor = (double*)realloc(this->fudge_factor, fudge_factor_lengthT * sizeof(double));
00433       offset += 3;
00434       fudge_factor_length = fudge_factor_lengthT;
00435       for( uint8_t i = 0; i < fudge_factor_length; i++){
00436       union {
00437         double real;
00438         uint64_t base;
00439       } u_st_fudge_factor;
00440       u_st_fudge_factor.base = 0;
00441       u_st_fudge_factor.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00442       u_st_fudge_factor.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00443       u_st_fudge_factor.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00444       u_st_fudge_factor.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00445       u_st_fudge_factor.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00446       u_st_fudge_factor.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00447       u_st_fudge_factor.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00448       u_st_fudge_factor.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00449       this->st_fudge_factor = u_st_fudge_factor.real;
00450       offset += sizeof(this->st_fudge_factor);
00451         memcpy( &(this->fudge_factor[i]), &(this->st_fudge_factor), sizeof(double));
00452       }
00453       uint8_t fmax_lengthT = *(inbuffer + offset++);
00454       if(fmax_lengthT > fmax_length)
00455         this->fmax = (double*)realloc(this->fmax, fmax_lengthT * sizeof(double));
00456       offset += 3;
00457       fmax_length = fmax_lengthT;
00458       for( uint8_t i = 0; i < fmax_length; i++){
00459       union {
00460         double real;
00461         uint64_t base;
00462       } u_st_fmax;
00463       u_st_fmax.base = 0;
00464       u_st_fmax.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00465       u_st_fmax.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00466       u_st_fmax.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00467       u_st_fmax.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00468       u_st_fmax.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00469       u_st_fmax.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00470       u_st_fmax.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00471       u_st_fmax.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00472       this->st_fmax = u_st_fmax.real;
00473       offset += sizeof(this->st_fmax);
00474         memcpy( &(this->fmax[i]), &(this->st_fmax), sizeof(double));
00475       }
00476       uint8_t vel_lengthT = *(inbuffer + offset++);
00477       if(vel_lengthT > vel_length)
00478         this->vel = (double*)realloc(this->vel, vel_lengthT * sizeof(double));
00479       offset += 3;
00480       vel_length = vel_lengthT;
00481       for( uint8_t i = 0; i < vel_length; i++){
00482       union {
00483         double real;
00484         uint64_t base;
00485       } u_st_vel;
00486       u_st_vel.base = 0;
00487       u_st_vel.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00488       u_st_vel.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00489       u_st_vel.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00490       u_st_vel.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00491       u_st_vel.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00492       u_st_vel.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00493       u_st_vel.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00494       u_st_vel.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00495       this->st_vel = u_st_vel.real;
00496       offset += sizeof(this->st_vel);
00497         memcpy( &(this->vel[i]), &(this->st_vel), sizeof(double));
00498       }
00499      return offset;
00500     }
00501 
00502     const char * getType(){ return "gazebo_msgs/ODEJointProperties"; };
00503     const char * getMD5(){ return "1b744c32a920af979f53afe2f9c3511f"; };
00504 
00505   };
00506 
00507 }
00508 #endif