Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
DiagnosticStatus.h
00001 #ifndef _ROS_diagnostic_msgs_DiagnosticStatus_h 00002 #define _ROS_diagnostic_msgs_DiagnosticStatus_h 00003 00004 #include <stdint.h> 00005 #include <string.h> 00006 #include <stdlib.h> 00007 #include "ros/msg.h" 00008 #include "diagnostic_msgs/KeyValue.h" 00009 00010 namespace diagnostic_msgs 00011 { 00012 00013 class DiagnosticStatus : public ros::Msg 00014 { 00015 public: 00016 typedef int8_t _level_type; 00017 _level_type level; 00018 typedef const char* _name_type; 00019 _name_type name; 00020 typedef const char* _message_type; 00021 _message_type message; 00022 typedef const char* _hardware_id_type; 00023 _hardware_id_type hardware_id; 00024 uint32_t values_length; 00025 typedef diagnostic_msgs::KeyValue _values_type; 00026 _values_type st_values; 00027 _values_type * values; 00028 enum { OK = 0 }; 00029 enum { WARN = 1 }; 00030 enum { ERROR = 2 }; 00031 enum { STALE = 3 }; 00032 00033 DiagnosticStatus(): 00034 level(0), 00035 name(""), 00036 message(""), 00037 hardware_id(""), 00038 values_length(0), values(NULL) 00039 { 00040 } 00041 00042 virtual int serialize(unsigned char *outbuffer) const 00043 { 00044 int offset = 0; 00045 union { 00046 int8_t real; 00047 uint8_t base; 00048 } u_level; 00049 u_level.real = this->level; 00050 *(outbuffer + offset + 0) = (u_level.base >> (8 * 0)) & 0xFF; 00051 offset += sizeof(this->level); 00052 uint32_t length_name = strlen(this->name); 00053 varToArr(outbuffer + offset, length_name); 00054 offset += 4; 00055 memcpy(outbuffer + offset, this->name, length_name); 00056 offset += length_name; 00057 uint32_t length_message = strlen(this->message); 00058 varToArr(outbuffer + offset, length_message); 00059 offset += 4; 00060 memcpy(outbuffer + offset, this->message, length_message); 00061 offset += length_message; 00062 uint32_t length_hardware_id = strlen(this->hardware_id); 00063 varToArr(outbuffer + offset, length_hardware_id); 00064 offset += 4; 00065 memcpy(outbuffer + offset, this->hardware_id, length_hardware_id); 00066 offset += length_hardware_id; 00067 *(outbuffer + offset + 0) = (this->values_length >> (8 * 0)) & 0xFF; 00068 *(outbuffer + offset + 1) = (this->values_length >> (8 * 1)) & 0xFF; 00069 *(outbuffer + offset + 2) = (this->values_length >> (8 * 2)) & 0xFF; 00070 *(outbuffer + offset + 3) = (this->values_length >> (8 * 3)) & 0xFF; 00071 offset += sizeof(this->values_length); 00072 for( uint32_t i = 0; i < values_length; i++){ 00073 offset += this->values[i].serialize(outbuffer + offset); 00074 } 00075 return offset; 00076 } 00077 00078 virtual int deserialize(unsigned char *inbuffer) 00079 { 00080 int offset = 0; 00081 union { 00082 int8_t real; 00083 uint8_t base; 00084 } u_level; 00085 u_level.base = 0; 00086 u_level.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0); 00087 this->level = u_level.real; 00088 offset += sizeof(this->level); 00089 uint32_t length_name; 00090 arrToVar(length_name, (inbuffer + offset)); 00091 offset += 4; 00092 for(unsigned int k= offset; k< offset+length_name; ++k){ 00093 inbuffer[k-1]=inbuffer[k]; 00094 } 00095 inbuffer[offset+length_name-1]=0; 00096 this->name = (char *)(inbuffer + offset-1); 00097 offset += length_name; 00098 uint32_t length_message; 00099 arrToVar(length_message, (inbuffer + offset)); 00100 offset += 4; 00101 for(unsigned int k= offset; k< offset+length_message; ++k){ 00102 inbuffer[k-1]=inbuffer[k]; 00103 } 00104 inbuffer[offset+length_message-1]=0; 00105 this->message = (char *)(inbuffer + offset-1); 00106 offset += length_message; 00107 uint32_t length_hardware_id; 00108 arrToVar(length_hardware_id, (inbuffer + offset)); 00109 offset += 4; 00110 for(unsigned int k= offset; k< offset+length_hardware_id; ++k){ 00111 inbuffer[k-1]=inbuffer[k]; 00112 } 00113 inbuffer[offset+length_hardware_id-1]=0; 00114 this->hardware_id = (char *)(inbuffer + offset-1); 00115 offset += length_hardware_id; 00116 uint32_t values_lengthT = ((uint32_t) (*(inbuffer + offset))); 00117 values_lengthT |= ((uint32_t) (*(inbuffer + offset + 1))) << (8 * 1); 00118 values_lengthT |= ((uint32_t) (*(inbuffer + offset + 2))) << (8 * 2); 00119 values_lengthT |= ((uint32_t) (*(inbuffer + offset + 3))) << (8 * 3); 00120 offset += sizeof(this->values_length); 00121 if(values_lengthT > values_length) 00122 this->values = (diagnostic_msgs::KeyValue*)realloc(this->values, values_lengthT * sizeof(diagnostic_msgs::KeyValue)); 00123 values_length = values_lengthT; 00124 for( uint32_t i = 0; i < values_length; i++){ 00125 offset += this->st_values.deserialize(inbuffer + offset); 00126 memcpy( &(this->values[i]), &(this->st_values), sizeof(diagnostic_msgs::KeyValue)); 00127 } 00128 return offset; 00129 } 00130 00131 const char * getType(){ return "diagnostic_msgs/DiagnosticStatus"; }; 00132 const char * getMD5(){ return "d0ce08bc6e5ba34c7754f563a9cabaf1"; }; 00133 00134 }; 00135 00136 } 00137 #endif
Generated on Wed Jul 13 2022 23:30:17 by
