ControllerStatistics.h
Go to the documentation of this file.
00001 #ifndef _ROS_pr2_mechanism_msgs_ControllerStatistics_h
00002 #define _ROS_pr2_mechanism_msgs_ControllerStatistics_h
00003 
00004 #include <stdint.h>
00005 #include <string.h>
00006 #include <stdlib.h>
00007 #include "ros/msg.h"
00008 #include "ros/time.h"
00009 #include "ros/duration.h"
00010 
00011 namespace pr2_mechanism_msgs
00012 {
00013 
00014   class ControllerStatistics : public ros::Msg
00015   {
00016     public:
00017       const char* name;
00018       ros::Time timestamp;
00019       bool running;
00020       ros::Duration max_time;
00021       ros::Duration mean_time;
00022       ros::Duration variance_time;
00023       int32_t num_control_loop_overruns;
00024       ros::Time time_last_control_loop_overrun;
00025 
00026     virtual int serialize(unsigned char *outbuffer) const
00027     {
00028       int offset = 0;
00029       uint32_t length_name = strlen(this->name);
00030       memcpy(outbuffer + offset, &length_name, sizeof(uint32_t));
00031       offset += 4;
00032       memcpy(outbuffer + offset, this->name, length_name);
00033       offset += length_name;
00034       *(outbuffer + offset + 0) = (this->timestamp.sec >> (8 * 0)) & 0xFF;
00035       *(outbuffer + offset + 1) = (this->timestamp.sec >> (8 * 1)) & 0xFF;
00036       *(outbuffer + offset + 2) = (this->timestamp.sec >> (8 * 2)) & 0xFF;
00037       *(outbuffer + offset + 3) = (this->timestamp.sec >> (8 * 3)) & 0xFF;
00038       offset += sizeof(this->timestamp.sec);
00039       *(outbuffer + offset + 0) = (this->timestamp.nsec >> (8 * 0)) & 0xFF;
00040       *(outbuffer + offset + 1) = (this->timestamp.nsec >> (8 * 1)) & 0xFF;
00041       *(outbuffer + offset + 2) = (this->timestamp.nsec >> (8 * 2)) & 0xFF;
00042       *(outbuffer + offset + 3) = (this->timestamp.nsec >> (8 * 3)) & 0xFF;
00043       offset += sizeof(this->timestamp.nsec);
00044       union {
00045         bool real;
00046         uint8_t base;
00047       } u_running;
00048       u_running.real = this->running;
00049       *(outbuffer + offset + 0) = (u_running.base >> (8 * 0)) & 0xFF;
00050       offset += sizeof(this->running);
00051       *(outbuffer + offset + 0) = (this->max_time.sec >> (8 * 0)) & 0xFF;
00052       *(outbuffer + offset + 1) = (this->max_time.sec >> (8 * 1)) & 0xFF;
00053       *(outbuffer + offset + 2) = (this->max_time.sec >> (8 * 2)) & 0xFF;
00054       *(outbuffer + offset + 3) = (this->max_time.sec >> (8 * 3)) & 0xFF;
00055       offset += sizeof(this->max_time.sec);
00056       *(outbuffer + offset + 0) = (this->max_time.nsec >> (8 * 0)) & 0xFF;
00057       *(outbuffer + offset + 1) = (this->max_time.nsec >> (8 * 1)) & 0xFF;
00058       *(outbuffer + offset + 2) = (this->max_time.nsec >> (8 * 2)) & 0xFF;
00059       *(outbuffer + offset + 3) = (this->max_time.nsec >> (8 * 3)) & 0xFF;
00060       offset += sizeof(this->max_time.nsec);
00061       *(outbuffer + offset + 0) = (this->mean_time.sec >> (8 * 0)) & 0xFF;
00062       *(outbuffer + offset + 1) = (this->mean_time.sec >> (8 * 1)) & 0xFF;
00063       *(outbuffer + offset + 2) = (this->mean_time.sec >> (8 * 2)) & 0xFF;
00064       *(outbuffer + offset + 3) = (this->mean_time.sec >> (8 * 3)) & 0xFF;
00065       offset += sizeof(this->mean_time.sec);
00066       *(outbuffer + offset + 0) = (this->mean_time.nsec >> (8 * 0)) & 0xFF;
00067       *(outbuffer + offset + 1) = (this->mean_time.nsec >> (8 * 1)) & 0xFF;
00068       *(outbuffer + offset + 2) = (this->mean_time.nsec >> (8 * 2)) & 0xFF;
00069       *(outbuffer + offset + 3) = (this->mean_time.nsec >> (8 * 3)) & 0xFF;
00070       offset += sizeof(this->mean_time.nsec);
00071       *(outbuffer + offset + 0) = (this->variance_time.sec >> (8 * 0)) & 0xFF;
00072       *(outbuffer + offset + 1) = (this->variance_time.sec >> (8 * 1)) & 0xFF;
00073       *(outbuffer + offset + 2) = (this->variance_time.sec >> (8 * 2)) & 0xFF;
00074       *(outbuffer + offset + 3) = (this->variance_time.sec >> (8 * 3)) & 0xFF;
00075       offset += sizeof(this->variance_time.sec);
00076       *(outbuffer + offset + 0) = (this->variance_time.nsec >> (8 * 0)) & 0xFF;
00077       *(outbuffer + offset + 1) = (this->variance_time.nsec >> (8 * 1)) & 0xFF;
00078       *(outbuffer + offset + 2) = (this->variance_time.nsec >> (8 * 2)) & 0xFF;
00079       *(outbuffer + offset + 3) = (this->variance_time.nsec >> (8 * 3)) & 0xFF;
00080       offset += sizeof(this->variance_time.nsec);
00081       union {
00082         int32_t real;
00083         uint32_t base;
00084       } u_num_control_loop_overruns;
00085       u_num_control_loop_overruns.real = this->num_control_loop_overruns;
00086       *(outbuffer + offset + 0) = (u_num_control_loop_overruns.base >> (8 * 0)) & 0xFF;
00087       *(outbuffer + offset + 1) = (u_num_control_loop_overruns.base >> (8 * 1)) & 0xFF;
00088       *(outbuffer + offset + 2) = (u_num_control_loop_overruns.base >> (8 * 2)) & 0xFF;
00089       *(outbuffer + offset + 3) = (u_num_control_loop_overruns.base >> (8 * 3)) & 0xFF;
00090       offset += sizeof(this->num_control_loop_overruns);
00091       *(outbuffer + offset + 0) = (this->time_last_control_loop_overrun.sec >> (8 * 0)) & 0xFF;
00092       *(outbuffer + offset + 1) = (this->time_last_control_loop_overrun.sec >> (8 * 1)) & 0xFF;
00093       *(outbuffer + offset + 2) = (this->time_last_control_loop_overrun.sec >> (8 * 2)) & 0xFF;
00094       *(outbuffer + offset + 3) = (this->time_last_control_loop_overrun.sec >> (8 * 3)) & 0xFF;
00095       offset += sizeof(this->time_last_control_loop_overrun.sec);
00096       *(outbuffer + offset + 0) = (this->time_last_control_loop_overrun.nsec >> (8 * 0)) & 0xFF;
00097       *(outbuffer + offset + 1) = (this->time_last_control_loop_overrun.nsec >> (8 * 1)) & 0xFF;
00098       *(outbuffer + offset + 2) = (this->time_last_control_loop_overrun.nsec >> (8 * 2)) & 0xFF;
00099       *(outbuffer + offset + 3) = (this->time_last_control_loop_overrun.nsec >> (8 * 3)) & 0xFF;
00100       offset += sizeof(this->time_last_control_loop_overrun.nsec);
00101       return offset;
00102     }
00103 
00104     virtual int deserialize(unsigned char *inbuffer)
00105     {
00106       int offset = 0;
00107       uint32_t length_name;
00108       memcpy(&length_name, (inbuffer + offset), sizeof(uint32_t));
00109       offset += 4;
00110       for(unsigned int k= offset; k< offset+length_name; ++k){
00111           inbuffer[k-1]=inbuffer[k];
00112       }
00113       inbuffer[offset+length_name-1]=0;
00114       this->name = (char *)(inbuffer + offset-1);
00115       offset += length_name;
00116       this->timestamp.sec =  ((uint32_t) (*(inbuffer + offset)));
00117       this->timestamp.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00118       this->timestamp.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00119       this->timestamp.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00120       offset += sizeof(this->timestamp.sec);
00121       this->timestamp.nsec =  ((uint32_t) (*(inbuffer + offset)));
00122       this->timestamp.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00123       this->timestamp.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00124       this->timestamp.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00125       offset += sizeof(this->timestamp.nsec);
00126       union {
00127         bool real;
00128         uint8_t base;
00129       } u_running;
00130       u_running.base = 0;
00131       u_running.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
00132       this->running = u_running.real;
00133       offset += sizeof(this->running);
00134       this->max_time.sec =  ((uint32_t) (*(inbuffer + offset)));
00135       this->max_time.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00136       this->max_time.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00137       this->max_time.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00138       offset += sizeof(this->max_time.sec);
00139       this->max_time.nsec =  ((uint32_t) (*(inbuffer + offset)));
00140       this->max_time.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00141       this->max_time.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00142       this->max_time.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00143       offset += sizeof(this->max_time.nsec);
00144       this->mean_time.sec =  ((uint32_t) (*(inbuffer + offset)));
00145       this->mean_time.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00146       this->mean_time.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00147       this->mean_time.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00148       offset += sizeof(this->mean_time.sec);
00149       this->mean_time.nsec =  ((uint32_t) (*(inbuffer + offset)));
00150       this->mean_time.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00151       this->mean_time.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00152       this->mean_time.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00153       offset += sizeof(this->mean_time.nsec);
00154       this->variance_time.sec =  ((uint32_t) (*(inbuffer + offset)));
00155       this->variance_time.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00156       this->variance_time.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00157       this->variance_time.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00158       offset += sizeof(this->variance_time.sec);
00159       this->variance_time.nsec =  ((uint32_t) (*(inbuffer + offset)));
00160       this->variance_time.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00161       this->variance_time.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00162       this->variance_time.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00163       offset += sizeof(this->variance_time.nsec);
00164       union {
00165         int32_t real;
00166         uint32_t base;
00167       } u_num_control_loop_overruns;
00168       u_num_control_loop_overruns.base = 0;
00169       u_num_control_loop_overruns.base |= ((uint32_t) (*(inbuffer + offset + 0))) << (8 * 0);
00170       u_num_control_loop_overruns.base |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00171       u_num_control_loop_overruns.base |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00172       u_num_control_loop_overruns.base |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00173       this->num_control_loop_overruns = u_num_control_loop_overruns.real;
00174       offset += sizeof(this->num_control_loop_overruns);
00175       this->time_last_control_loop_overrun.sec =  ((uint32_t) (*(inbuffer + offset)));
00176       this->time_last_control_loop_overrun.sec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00177       this->time_last_control_loop_overrun.sec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00178       this->time_last_control_loop_overrun.sec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00179       offset += sizeof(this->time_last_control_loop_overrun.sec);
00180       this->time_last_control_loop_overrun.nsec =  ((uint32_t) (*(inbuffer + offset)));
00181       this->time_last_control_loop_overrun.nsec |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1);
00182       this->time_last_control_loop_overrun.nsec |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2);
00183       this->time_last_control_loop_overrun.nsec |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3);
00184       offset += sizeof(this->time_last_control_loop_overrun.nsec);
00185      return offset;
00186     }
00187 
00188     const char * getType(){ return "pr2_mechanism_msgs/ControllerStatistics"; };
00189     const char * getMD5(){ return "6d15d137eea402018e3c7c8dbecd4b95"; };
00190 
00191   };
00192 
00193 }
00194 #endif


ric_mc
Author(s): RoboTiCan
autogenerated on Thu Aug 27 2015 14:39:49