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.
Fork of rosserial_mbed_lib by
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 unsigned char level; 00017 char * name; 00018 char * message; 00019 char * hardware_id; 00020 unsigned char values_length; 00021 diagnostic_msgs::KeyValue st_values; 00022 diagnostic_msgs::KeyValue * values; 00023 enum { OK = 0 }; 00024 enum { WARN = 1 }; 00025 enum { ERROR = 2 }; 00026 00027 virtual int serialize(unsigned char *outbuffer) 00028 { 00029 int offset = 0; 00030 union { 00031 unsigned char real; 00032 unsigned char base; 00033 } u_level; 00034 u_level.real = this->level; 00035 *(outbuffer + offset + 0) = (u_level.base >> (8 * 0)) & 0xFF; 00036 offset += sizeof(this->level); 00037 long * length_name = (long *)(outbuffer + offset); 00038 *length_name = strlen( (const char*) this->name); 00039 offset += 4; 00040 memcpy(outbuffer + offset, this->name, *length_name); 00041 offset += *length_name; 00042 long * length_message = (long *)(outbuffer + offset); 00043 *length_message = strlen( (const char*) this->message); 00044 offset += 4; 00045 memcpy(outbuffer + offset, this->message, *length_message); 00046 offset += *length_message; 00047 long * length_hardware_id = (long *)(outbuffer + offset); 00048 *length_hardware_id = strlen( (const char*) this->hardware_id); 00049 offset += 4; 00050 memcpy(outbuffer + offset, this->hardware_id, *length_hardware_id); 00051 offset += *length_hardware_id; 00052 *(outbuffer + offset++) = values_length; 00053 *(outbuffer + offset++) = 0; 00054 *(outbuffer + offset++) = 0; 00055 *(outbuffer + offset++) = 0; 00056 for( unsigned char i = 0; i < values_length; i++){ 00057 offset += this->values[i].serialize(outbuffer + offset); 00058 } 00059 return offset; 00060 } 00061 00062 virtual int deserialize(unsigned char *inbuffer) 00063 { 00064 int offset = 0; 00065 union { 00066 unsigned char real; 00067 unsigned char base; 00068 } u_level; 00069 u_level.base = 0; 00070 u_level.base |= ((typeof(u_level.base)) (*(inbuffer + offset + 0))) << (8 * 0); 00071 this->level = u_level.real; 00072 offset += sizeof(this->level); 00073 uint32_t length_name = *(uint32_t *)(inbuffer + offset); 00074 offset += 4; 00075 for(unsigned int k= offset; k< offset+length_name; ++k){ 00076 inbuffer[k-1]=inbuffer[k]; 00077 } 00078 inbuffer[offset+length_name-1]=0; 00079 this->name = (char *)(inbuffer + offset-1); 00080 offset += length_name; 00081 uint32_t length_message = *(uint32_t *)(inbuffer + offset); 00082 offset += 4; 00083 for(unsigned int k= offset; k< offset+length_message; ++k){ 00084 inbuffer[k-1]=inbuffer[k]; 00085 } 00086 inbuffer[offset+length_message-1]=0; 00087 this->message = (char *)(inbuffer + offset-1); 00088 offset += length_message; 00089 uint32_t length_hardware_id = *(uint32_t *)(inbuffer + offset); 00090 offset += 4; 00091 for(unsigned int k= offset; k< offset+length_hardware_id; ++k){ 00092 inbuffer[k-1]=inbuffer[k]; 00093 } 00094 inbuffer[offset+length_hardware_id-1]=0; 00095 this->hardware_id = (char *)(inbuffer + offset-1); 00096 offset += length_hardware_id; 00097 unsigned char values_lengthT = *(inbuffer + offset++); 00098 if(values_lengthT > values_length) 00099 this->values = (diagnostic_msgs::KeyValue*)realloc(this->values, values_lengthT * sizeof(diagnostic_msgs::KeyValue)); 00100 offset += 3; 00101 values_length = values_lengthT; 00102 for( unsigned char i = 0; i < values_length; i++){ 00103 offset += this->st_values.deserialize(inbuffer + offset); 00104 memcpy( &(this->values[i]), &(this->st_values), sizeof(diagnostic_msgs::KeyValue)); 00105 } 00106 return offset; 00107 } 00108 00109 virtual const char * getType(){ return "diagnostic_msgs/DiagnosticStatus"; }; 00110 virtual const char * getMD5(){ return "67d15a62edb26e9d52b0f0efa3ef9da7"; }; 00111 00112 }; 00113 00114 } 00115 #endif
Generated on Tue Jul 12 2022 19:53:56 by
 1.7.2
 1.7.2 
    