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

GetLinkProperties.h

00001 #ifndef _ROS_SERVICE_GetLinkProperties_h
00002 #define _ROS_SERVICE_GetLinkProperties_h
00003 #include <stdint.h>
00004 #include <string.h>
00005 #include <stdlib.h>
00006 #include "ros/msg.h"
00007 #include "geometry_msgs/Pose.h"
00008 
00009 namespace gazebo_msgs
00010 {
00011 
00012 static const char GETLINKPROPERTIES[] = "gazebo_msgs/GetLinkProperties";
00013 
00014   class GetLinkPropertiesRequest : public ros::Msg
00015   {
00016     public:
00017       const char* link_name;
00018 
00019     GetLinkPropertiesRequest():
00020       link_name("")
00021     {
00022     }
00023 
00024     virtual int serialize(unsigned char *outbuffer) const
00025     {
00026       int offset = 0;
00027       uint32_t length_link_name = strlen(this->link_name);
00028       memcpy(outbuffer + offset, &length_link_name, sizeof(uint32_t));
00029       offset += 4;
00030       memcpy(outbuffer + offset, this->link_name, length_link_name);
00031       offset += length_link_name;
00032       return offset;
00033     }
00034 
00035     virtual int deserialize(unsigned char *inbuffer)
00036     {
00037       int offset = 0;
00038       uint32_t length_link_name;
00039       memcpy(&length_link_name, (inbuffer + offset), sizeof(uint32_t));
00040       offset += 4;
00041       for(unsigned int k= offset; k< offset+length_link_name; ++k){
00042           inbuffer[k-1]=inbuffer[k];
00043       }
00044       inbuffer[offset+length_link_name-1]=0;
00045       this->link_name = (char *)(inbuffer + offset-1);
00046       offset += length_link_name;
00047      return offset;
00048     }
00049 
00050     const char * getType(){ return GETLINKPROPERTIES; };
00051     const char * getMD5(){ return "7d82d60381f1b66a30f2157f60884345"; };
00052 
00053   };
00054 
00055   class GetLinkPropertiesResponse : public ros::Msg
00056   {
00057     public:
00058       geometry_msgs::Pose com;
00059       bool gravity_mode;
00060       double mass;
00061       double ixx;
00062       double ixy;
00063       double ixz;
00064       double iyy;
00065       double iyz;
00066       double izz;
00067       bool success;
00068       const char* status_message;
00069 
00070     GetLinkPropertiesResponse():
00071       com(),
00072       gravity_mode(0),
00073       mass(0),
00074       ixx(0),
00075       ixy(0),
00076       ixz(0),
00077       iyy(0),
00078       iyz(0),
00079       izz(0),
00080       success(0),
00081       status_message("")
00082     {
00083     }
00084 
00085     virtual int serialize(unsigned char *outbuffer) const
00086     {
00087       int offset = 0;
00088       offset += this->com.serialize(outbuffer + offset);
00089       union {
00090         bool real;
00091         uint8_t base;
00092       } u_gravity_mode;
00093       u_gravity_mode.real = this->gravity_mode;
00094       *(outbuffer + offset + 0) = (u_gravity_mode.base >> (8 * 0)) & 0xFF;
00095       offset += sizeof(this->gravity_mode);
00096       union {
00097         double real;
00098         uint64_t base;
00099       } u_mass;
00100       u_mass.real = this->mass;
00101       *(outbuffer + offset + 0) = (u_mass.base >> (8 * 0)) & 0xFF;
00102       *(outbuffer + offset + 1) = (u_mass.base >> (8 * 1)) & 0xFF;
00103       *(outbuffer + offset + 2) = (u_mass.base >> (8 * 2)) & 0xFF;
00104       *(outbuffer + offset + 3) = (u_mass.base >> (8 * 3)) & 0xFF;
00105       *(outbuffer + offset + 4) = (u_mass.base >> (8 * 4)) & 0xFF;
00106       *(outbuffer + offset + 5) = (u_mass.base >> (8 * 5)) & 0xFF;
00107       *(outbuffer + offset + 6) = (u_mass.base >> (8 * 6)) & 0xFF;
00108       *(outbuffer + offset + 7) = (u_mass.base >> (8 * 7)) & 0xFF;
00109       offset += sizeof(this->mass);
00110       union {
00111         double real;
00112         uint64_t base;
00113       } u_ixx;
00114       u_ixx.real = this->ixx;
00115       *(outbuffer + offset + 0) = (u_ixx.base >> (8 * 0)) & 0xFF;
00116       *(outbuffer + offset + 1) = (u_ixx.base >> (8 * 1)) & 0xFF;
00117       *(outbuffer + offset + 2) = (u_ixx.base >> (8 * 2)) & 0xFF;
00118       *(outbuffer + offset + 3) = (u_ixx.base >> (8 * 3)) & 0xFF;
00119       *(outbuffer + offset + 4) = (u_ixx.base >> (8 * 4)) & 0xFF;
00120       *(outbuffer + offset + 5) = (u_ixx.base >> (8 * 5)) & 0xFF;
00121       *(outbuffer + offset + 6) = (u_ixx.base >> (8 * 6)) & 0xFF;
00122       *(outbuffer + offset + 7) = (u_ixx.base >> (8 * 7)) & 0xFF;
00123       offset += sizeof(this->ixx);
00124       union {
00125         double real;
00126         uint64_t base;
00127       } u_ixy;
00128       u_ixy.real = this->ixy;
00129       *(outbuffer + offset + 0) = (u_ixy.base >> (8 * 0)) & 0xFF;
00130       *(outbuffer + offset + 1) = (u_ixy.base >> (8 * 1)) & 0xFF;
00131       *(outbuffer + offset + 2) = (u_ixy.base >> (8 * 2)) & 0xFF;
00132       *(outbuffer + offset + 3) = (u_ixy.base >> (8 * 3)) & 0xFF;
00133       *(outbuffer + offset + 4) = (u_ixy.base >> (8 * 4)) & 0xFF;
00134       *(outbuffer + offset + 5) = (u_ixy.base >> (8 * 5)) & 0xFF;
00135       *(outbuffer + offset + 6) = (u_ixy.base >> (8 * 6)) & 0xFF;
00136       *(outbuffer + offset + 7) = (u_ixy.base >> (8 * 7)) & 0xFF;
00137       offset += sizeof(this->ixy);
00138       union {
00139         double real;
00140         uint64_t base;
00141       } u_ixz;
00142       u_ixz.real = this->ixz;
00143       *(outbuffer + offset + 0) = (u_ixz.base >> (8 * 0)) & 0xFF;
00144       *(outbuffer + offset + 1) = (u_ixz.base >> (8 * 1)) & 0xFF;
00145       *(outbuffer + offset + 2) = (u_ixz.base >> (8 * 2)) & 0xFF;
00146       *(outbuffer + offset + 3) = (u_ixz.base >> (8 * 3)) & 0xFF;
00147       *(outbuffer + offset + 4) = (u_ixz.base >> (8 * 4)) & 0xFF;
00148       *(outbuffer + offset + 5) = (u_ixz.base >> (8 * 5)) & 0xFF;
00149       *(outbuffer + offset + 6) = (u_ixz.base >> (8 * 6)) & 0xFF;
00150       *(outbuffer + offset + 7) = (u_ixz.base >> (8 * 7)) & 0xFF;
00151       offset += sizeof(this->ixz);
00152       union {
00153         double real;
00154         uint64_t base;
00155       } u_iyy;
00156       u_iyy.real = this->iyy;
00157       *(outbuffer + offset + 0) = (u_iyy.base >> (8 * 0)) & 0xFF;
00158       *(outbuffer + offset + 1) = (u_iyy.base >> (8 * 1)) & 0xFF;
00159       *(outbuffer + offset + 2) = (u_iyy.base >> (8 * 2)) & 0xFF;
00160       *(outbuffer + offset + 3) = (u_iyy.base >> (8 * 3)) & 0xFF;
00161       *(outbuffer + offset + 4) = (u_iyy.base >> (8 * 4)) & 0xFF;
00162       *(outbuffer + offset + 5) = (u_iyy.base >> (8 * 5)) & 0xFF;
00163       *(outbuffer + offset + 6) = (u_iyy.base >> (8 * 6)) & 0xFF;
00164       *(outbuffer + offset + 7) = (u_iyy.base >> (8 * 7)) & 0xFF;
00165       offset += sizeof(this->iyy);
00166       union {
00167         double real;
00168         uint64_t base;
00169       } u_iyz;
00170       u_iyz.real = this->iyz;
00171       *(outbuffer + offset + 0) = (u_iyz.base >> (8 * 0)) & 0xFF;
00172       *(outbuffer + offset + 1) = (u_iyz.base >> (8 * 1)) & 0xFF;
00173       *(outbuffer + offset + 2) = (u_iyz.base >> (8 * 2)) & 0xFF;
00174       *(outbuffer + offset + 3) = (u_iyz.base >> (8 * 3)) & 0xFF;
00175       *(outbuffer + offset + 4) = (u_iyz.base >> (8 * 4)) & 0xFF;
00176       *(outbuffer + offset + 5) = (u_iyz.base >> (8 * 5)) & 0xFF;
00177       *(outbuffer + offset + 6) = (u_iyz.base >> (8 * 6)) & 0xFF;
00178       *(outbuffer + offset + 7) = (u_iyz.base >> (8 * 7)) & 0xFF;
00179       offset += sizeof(this->iyz);
00180       union {
00181         double real;
00182         uint64_t base;
00183       } u_izz;
00184       u_izz.real = this->izz;
00185       *(outbuffer + offset + 0) = (u_izz.base >> (8 * 0)) & 0xFF;
00186       *(outbuffer + offset + 1) = (u_izz.base >> (8 * 1)) & 0xFF;
00187       *(outbuffer + offset + 2) = (u_izz.base >> (8 * 2)) & 0xFF;
00188       *(outbuffer + offset + 3) = (u_izz.base >> (8 * 3)) & 0xFF;
00189       *(outbuffer + offset + 4) = (u_izz.base >> (8 * 4)) & 0xFF;
00190       *(outbuffer + offset + 5) = (u_izz.base >> (8 * 5)) & 0xFF;
00191       *(outbuffer + offset + 6) = (u_izz.base >> (8 * 6)) & 0xFF;
00192       *(outbuffer + offset + 7) = (u_izz.base >> (8 * 7)) & 0xFF;
00193       offset += sizeof(this->izz);
00194       union {
00195         bool real;
00196         uint8_t base;
00197       } u_success;
00198       u_success.real = this->success;
00199       *(outbuffer + offset + 0) = (u_success.base >> (8 * 0)) & 0xFF;
00200       offset += sizeof(this->success);
00201       uint32_t length_status_message = strlen(this->status_message);
00202       memcpy(outbuffer + offset, &length_status_message, sizeof(uint32_t));
00203       offset += 4;
00204       memcpy(outbuffer + offset, this->status_message, length_status_message);
00205       offset += length_status_message;
00206       return offset;
00207     }
00208 
00209     virtual int deserialize(unsigned char *inbuffer)
00210     {
00211       int offset = 0;
00212       offset += this->com.deserialize(inbuffer + offset);
00213       union {
00214         bool real;
00215         uint8_t base;
00216       } u_gravity_mode;
00217       u_gravity_mode.base = 0;
00218       u_gravity_mode.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
00219       this->gravity_mode = u_gravity_mode.real;
00220       offset += sizeof(this->gravity_mode);
00221       union {
00222         double real;
00223         uint64_t base;
00224       } u_mass;
00225       u_mass.base = 0;
00226       u_mass.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00227       u_mass.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00228       u_mass.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00229       u_mass.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00230       u_mass.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00231       u_mass.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00232       u_mass.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00233       u_mass.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00234       this->mass = u_mass.real;
00235       offset += sizeof(this->mass);
00236       union {
00237         double real;
00238         uint64_t base;
00239       } u_ixx;
00240       u_ixx.base = 0;
00241       u_ixx.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00242       u_ixx.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00243       u_ixx.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00244       u_ixx.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00245       u_ixx.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00246       u_ixx.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00247       u_ixx.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00248       u_ixx.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00249       this->ixx = u_ixx.real;
00250       offset += sizeof(this->ixx);
00251       union {
00252         double real;
00253         uint64_t base;
00254       } u_ixy;
00255       u_ixy.base = 0;
00256       u_ixy.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00257       u_ixy.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00258       u_ixy.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00259       u_ixy.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00260       u_ixy.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00261       u_ixy.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00262       u_ixy.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00263       u_ixy.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00264       this->ixy = u_ixy.real;
00265       offset += sizeof(this->ixy);
00266       union {
00267         double real;
00268         uint64_t base;
00269       } u_ixz;
00270       u_ixz.base = 0;
00271       u_ixz.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00272       u_ixz.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00273       u_ixz.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00274       u_ixz.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00275       u_ixz.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00276       u_ixz.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00277       u_ixz.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00278       u_ixz.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00279       this->ixz = u_ixz.real;
00280       offset += sizeof(this->ixz);
00281       union {
00282         double real;
00283         uint64_t base;
00284       } u_iyy;
00285       u_iyy.base = 0;
00286       u_iyy.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00287       u_iyy.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00288       u_iyy.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00289       u_iyy.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00290       u_iyy.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00291       u_iyy.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00292       u_iyy.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00293       u_iyy.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00294       this->iyy = u_iyy.real;
00295       offset += sizeof(this->iyy);
00296       union {
00297         double real;
00298         uint64_t base;
00299       } u_iyz;
00300       u_iyz.base = 0;
00301       u_iyz.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00302       u_iyz.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00303       u_iyz.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00304       u_iyz.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00305       u_iyz.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00306       u_iyz.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00307       u_iyz.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00308       u_iyz.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00309       this->iyz = u_iyz.real;
00310       offset += sizeof(this->iyz);
00311       union {
00312         double real;
00313         uint64_t base;
00314       } u_izz;
00315       u_izz.base = 0;
00316       u_izz.base |= ((uint64_t) (*(inbuffer + offset + 0))) << (8 * 0);
00317       u_izz.base |= ((uint64_t) (*(inbuffer + offset + 1))) << (8 * 1);
00318       u_izz.base |= ((uint64_t) (*(inbuffer + offset + 2))) << (8 * 2);
00319       u_izz.base |= ((uint64_t) (*(inbuffer + offset + 3))) << (8 * 3);
00320       u_izz.base |= ((uint64_t) (*(inbuffer + offset + 4))) << (8 * 4);
00321       u_izz.base |= ((uint64_t) (*(inbuffer + offset + 5))) << (8 * 5);
00322       u_izz.base |= ((uint64_t) (*(inbuffer + offset + 6))) << (8 * 6);
00323       u_izz.base |= ((uint64_t) (*(inbuffer + offset + 7))) << (8 * 7);
00324       this->izz = u_izz.real;
00325       offset += sizeof(this->izz);
00326       union {
00327         bool real;
00328         uint8_t base;
00329       } u_success;
00330       u_success.base = 0;
00331       u_success.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
00332       this->success = u_success.real;
00333       offset += sizeof(this->success);
00334       uint32_t length_status_message;
00335       memcpy(&length_status_message, (inbuffer + offset), sizeof(uint32_t));
00336       offset += 4;
00337       for(unsigned int k= offset; k< offset+length_status_message; ++k){
00338           inbuffer[k-1]=inbuffer[k];
00339       }
00340       inbuffer[offset+length_status_message-1]=0;
00341       this->status_message = (char *)(inbuffer + offset-1);
00342       offset += length_status_message;
00343      return offset;
00344     }
00345 
00346     const char * getType(){ return GETLINKPROPERTIES; };
00347     const char * getMD5(){ return "a8619f92d17cfcc3958c0fd13299443d"; };
00348 
00349   };
00350 
00351   class GetLinkProperties {
00352     public:
00353     typedef GetLinkPropertiesRequest Request;
00354     typedef GetLinkPropertiesResponse Response;
00355   };
00356 
00357 }
00358 #endif