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

SetLinkProperties.h

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