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

GetLinkState.h

00001 #ifndef _ROS_SERVICE_GetLinkState_h
00002 #define _ROS_SERVICE_GetLinkState_h
00003 #include <stdint.h>
00004 #include <string.h>
00005 #include <stdlib.h>
00006 #include "ros/msg.h"
00007 #include "gazebo_msgs/LinkState.h"
00008 
00009 namespace gazebo_msgs
00010 {
00011 
00012 static const char GETLINKSTATE[] = "gazebo_msgs/GetLinkState";
00013 
00014   class GetLinkStateRequest : public ros::Msg
00015   {
00016     public:
00017       typedef const char* _link_name_type;
00018       _link_name_type link_name;
00019       typedef const char* _reference_frame_type;
00020       _reference_frame_type reference_frame;
00021 
00022     GetLinkStateRequest():
00023       link_name(""),
00024       reference_frame("")
00025     {
00026     }
00027 
00028     virtual int serialize(unsigned char *outbuffer) const
00029     {
00030       int offset = 0;
00031       uint32_t length_link_name = strlen(this->link_name);
00032       varToArr(outbuffer + offset, length_link_name);
00033       offset += 4;
00034       memcpy(outbuffer + offset, this->link_name, length_link_name);
00035       offset += length_link_name;
00036       uint32_t length_reference_frame = strlen(this->reference_frame);
00037       varToArr(outbuffer + offset, length_reference_frame);
00038       offset += 4;
00039       memcpy(outbuffer + offset, this->reference_frame, length_reference_frame);
00040       offset += length_reference_frame;
00041       return offset;
00042     }
00043 
00044     virtual int deserialize(unsigned char *inbuffer)
00045     {
00046       int offset = 0;
00047       uint32_t length_link_name;
00048       arrToVar(length_link_name, (inbuffer + offset));
00049       offset += 4;
00050       for(unsigned int k= offset; k< offset+length_link_name; ++k){
00051           inbuffer[k-1]=inbuffer[k];
00052       }
00053       inbuffer[offset+length_link_name-1]=0;
00054       this->link_name = (char *)(inbuffer + offset-1);
00055       offset += length_link_name;
00056       uint32_t length_reference_frame;
00057       arrToVar(length_reference_frame, (inbuffer + offset));
00058       offset += 4;
00059       for(unsigned int k= offset; k< offset+length_reference_frame; ++k){
00060           inbuffer[k-1]=inbuffer[k];
00061       }
00062       inbuffer[offset+length_reference_frame-1]=0;
00063       this->reference_frame = (char *)(inbuffer + offset-1);
00064       offset += length_reference_frame;
00065      return offset;
00066     }
00067 
00068     const char * getType(){ return GETLINKSTATE; };
00069     const char * getMD5(){ return "7551675c30aaa71f7c288d4864552001"; };
00070 
00071   };
00072 
00073   class GetLinkStateResponse : public ros::Msg
00074   {
00075     public:
00076       typedef gazebo_msgs::LinkState _link_state_type;
00077       _link_state_type link_state;
00078       typedef bool _success_type;
00079       _success_type success;
00080       typedef const char* _status_message_type;
00081       _status_message_type status_message;
00082 
00083     GetLinkStateResponse():
00084       link_state(),
00085       success(0),
00086       status_message("")
00087     {
00088     }
00089 
00090     virtual int serialize(unsigned char *outbuffer) const
00091     {
00092       int offset = 0;
00093       offset += this->link_state.serialize(outbuffer + offset);
00094       union {
00095         bool real;
00096         uint8_t base;
00097       } u_success;
00098       u_success.real = this->success;
00099       *(outbuffer + offset + 0) = (u_success.base >> (8 * 0)) & 0xFF;
00100       offset += sizeof(this->success);
00101       uint32_t length_status_message = strlen(this->status_message);
00102       varToArr(outbuffer + offset, length_status_message);
00103       offset += 4;
00104       memcpy(outbuffer + offset, this->status_message, length_status_message);
00105       offset += length_status_message;
00106       return offset;
00107     }
00108 
00109     virtual int deserialize(unsigned char *inbuffer)
00110     {
00111       int offset = 0;
00112       offset += this->link_state.deserialize(inbuffer + offset);
00113       union {
00114         bool real;
00115         uint8_t base;
00116       } u_success;
00117       u_success.base = 0;
00118       u_success.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
00119       this->success = u_success.real;
00120       offset += sizeof(this->success);
00121       uint32_t length_status_message;
00122       arrToVar(length_status_message, (inbuffer + offset));
00123       offset += 4;
00124       for(unsigned int k= offset; k< offset+length_status_message; ++k){
00125           inbuffer[k-1]=inbuffer[k];
00126       }
00127       inbuffer[offset+length_status_message-1]=0;
00128       this->status_message = (char *)(inbuffer + offset-1);
00129       offset += length_status_message;
00130      return offset;
00131     }
00132 
00133     const char * getType(){ return GETLINKSTATE; };
00134     const char * getMD5(){ return "8ba55ad34f9c072e75c0de57b089753b"; };
00135 
00136   };
00137 
00138   class GetLinkState {
00139     public:
00140     typedef GetLinkStateRequest Request;
00141     typedef GetLinkStateResponse Response;
00142   };
00143 
00144 }
00145 #endif