GetWorldProperties.h
Go to the documentation of this file.
00001 #ifndef _ROS_SERVICE_GetWorldProperties_h
00002 #define _ROS_SERVICE_GetWorldProperties_h
00003 #include <stdint.h>
00004 #include <string.h>
00005 #include <stdlib.h>
00006 #include "ros/msg.h"
00007 
00008 namespace gazebo_msgs
00009 {
00010 
00011 static const char GETWORLDPROPERTIES[] = "gazebo_msgs/GetWorldProperties";
00012 
00013   class GetWorldPropertiesRequest : public ros::Msg
00014   {
00015     public:
00016 
00017     virtual int serialize(unsigned char *outbuffer) const
00018     {
00019       int offset = 0;
00020       return offset;
00021     }
00022 
00023     virtual int deserialize(unsigned char *inbuffer)
00024     {
00025       int offset = 0;
00026      return offset;
00027     }
00028 
00029     const char * getType(){ return GETWORLDPROPERTIES; };
00030     const char * getMD5(){ return "d41d8cd98f00b204e9800998ecf8427e"; };
00031 
00032   };
00033 
00034   class GetWorldPropertiesResponse : public ros::Msg
00035   {
00036     public:
00037       float sim_time;
00038       uint8_t model_names_length;
00039       char* st_model_names;
00040       char* * model_names;
00041       bool rendering_enabled;
00042       bool success;
00043       const char* status_message;
00044 
00045     virtual int serialize(unsigned char *outbuffer) const
00046     {
00047       int offset = 0;
00048       int32_t * val_sim_time = (int32_t *) &(this->sim_time);
00049       int32_t exp_sim_time = (((*val_sim_time)>>23)&255);
00050       if(exp_sim_time != 0)
00051         exp_sim_time += 1023-127;
00052       int32_t sig_sim_time = *val_sim_time;
00053       *(outbuffer + offset++) = 0;
00054       *(outbuffer + offset++) = 0;
00055       *(outbuffer + offset++) = 0;
00056       *(outbuffer + offset++) = (sig_sim_time<<5) & 0xff;
00057       *(outbuffer + offset++) = (sig_sim_time>>3) & 0xff;
00058       *(outbuffer + offset++) = (sig_sim_time>>11) & 0xff;
00059       *(outbuffer + offset++) = ((exp_sim_time<<4) & 0xF0) | ((sig_sim_time>>19)&0x0F);
00060       *(outbuffer + offset++) = (exp_sim_time>>4) & 0x7F;
00061       if(this->sim_time < 0) *(outbuffer + offset -1) |= 0x80;
00062       *(outbuffer + offset++) = model_names_length;
00063       *(outbuffer + offset++) = 0;
00064       *(outbuffer + offset++) = 0;
00065       *(outbuffer + offset++) = 0;
00066       for( uint8_t i = 0; i < model_names_length; i++){
00067       uint32_t length_model_namesi = strlen(this->model_names[i]);
00068       memcpy(outbuffer + offset, &length_model_namesi, sizeof(uint32_t));
00069       offset += 4;
00070       memcpy(outbuffer + offset, this->model_names[i], length_model_namesi);
00071       offset += length_model_namesi;
00072       }
00073       union {
00074         bool real;
00075         uint8_t base;
00076       } u_rendering_enabled;
00077       u_rendering_enabled.real = this->rendering_enabled;
00078       *(outbuffer + offset + 0) = (u_rendering_enabled.base >> (8 * 0)) & 0xFF;
00079       offset += sizeof(this->rendering_enabled);
00080       union {
00081         bool real;
00082         uint8_t base;
00083       } u_success;
00084       u_success.real = this->success;
00085       *(outbuffer + offset + 0) = (u_success.base >> (8 * 0)) & 0xFF;
00086       offset += sizeof(this->success);
00087       uint32_t length_status_message = strlen(this->status_message);
00088       memcpy(outbuffer + offset, &length_status_message, sizeof(uint32_t));
00089       offset += 4;
00090       memcpy(outbuffer + offset, this->status_message, length_status_message);
00091       offset += length_status_message;
00092       return offset;
00093     }
00094 
00095     virtual int deserialize(unsigned char *inbuffer)
00096     {
00097       int offset = 0;
00098       uint32_t * val_sim_time = (uint32_t*) &(this->sim_time);
00099       offset += 3;
00100       *val_sim_time = ((uint32_t)(*(inbuffer + offset++))>>5 & 0x07);
00101       *val_sim_time |= ((uint32_t)(*(inbuffer + offset++)) & 0xff)<<3;
00102       *val_sim_time |= ((uint32_t)(*(inbuffer + offset++)) & 0xff)<<11;
00103       *val_sim_time |= ((uint32_t)(*(inbuffer + offset)) & 0x0f)<<19;
00104       uint32_t exp_sim_time = ((uint32_t)(*(inbuffer + offset++))&0xf0)>>4;
00105       exp_sim_time |= ((uint32_t)(*(inbuffer + offset)) & 0x7f)<<4;
00106       if(exp_sim_time !=0)
00107         *val_sim_time |= ((exp_sim_time)-1023+127)<<23;
00108       if( ((*(inbuffer+offset++)) & 0x80) > 0) this->sim_time = -this->sim_time;
00109       uint8_t model_names_lengthT = *(inbuffer + offset++);
00110       if(model_names_lengthT > model_names_length)
00111         this->model_names = (char**)realloc(this->model_names, model_names_lengthT * sizeof(char*));
00112       offset += 3;
00113       model_names_length = model_names_lengthT;
00114       for( uint8_t i = 0; i < model_names_length; i++){
00115       uint32_t length_st_model_names;
00116       memcpy(&length_st_model_names, (inbuffer + offset), sizeof(uint32_t));
00117       offset += 4;
00118       for(unsigned int k= offset; k< offset+length_st_model_names; ++k){
00119           inbuffer[k-1]=inbuffer[k];
00120       }
00121       inbuffer[offset+length_st_model_names-1]=0;
00122       this->st_model_names = (char *)(inbuffer + offset-1);
00123       offset += length_st_model_names;
00124         memcpy( &(this->model_names[i]), &(this->st_model_names), sizeof(char*));
00125       }
00126       union {
00127         bool real;
00128         uint8_t base;
00129       } u_rendering_enabled;
00130       u_rendering_enabled.base = 0;
00131       u_rendering_enabled.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
00132       this->rendering_enabled = u_rendering_enabled.real;
00133       offset += sizeof(this->rendering_enabled);
00134       union {
00135         bool real;
00136         uint8_t base;
00137       } u_success;
00138       u_success.base = 0;
00139       u_success.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
00140       this->success = u_success.real;
00141       offset += sizeof(this->success);
00142       uint32_t length_status_message;
00143       memcpy(&length_status_message, (inbuffer + offset), sizeof(uint32_t));
00144       offset += 4;
00145       for(unsigned int k= offset; k< offset+length_status_message; ++k){
00146           inbuffer[k-1]=inbuffer[k];
00147       }
00148       inbuffer[offset+length_status_message-1]=0;
00149       this->status_message = (char *)(inbuffer + offset-1);
00150       offset += length_status_message;
00151      return offset;
00152     }
00153 
00154     const char * getType(){ return GETWORLDPROPERTIES; };
00155     const char * getMD5(){ return "36bb0f2eccf4d8be971410c22818ba3f"; };
00156 
00157   };
00158 
00159   class GetWorldProperties {
00160     public:
00161     typedef GetWorldPropertiesRequest Request;
00162     typedef GetWorldPropertiesResponse Response;
00163   };
00164 
00165 }
00166 #endif


ric_mc
Author(s): RoboTiCan
autogenerated on Fri May 20 2016 03:48:55