kitt_platform
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros
DiagnosticStatus.h
Go to the documentation of this file.
1 #ifndef _ROS_diagnostic_msgs_DiagnosticStatus_h
2 #define _ROS_diagnostic_msgs_DiagnosticStatus_h
3 
4 #include <stdint.h>
5 #include <string.h>
6 #include <stdlib.h>
7 #include "ros/msg.h"
9 
10 namespace diagnostic_msgs
11 {
12 
13  class DiagnosticStatus : public ros::Msg
14  {
15  public:
16  int8_t level;
17  const char* name;
18  const char* message;
19  const char* hardware_id;
20  uint8_t values_length;
23  enum { OK = 0 };
24  enum { WARN = 1 };
25  enum { ERROR = 2 };
26  enum { STALE = 3 };
27 
29  level(0),
30  name(""),
31  message(""),
32  hardware_id(""),
33  values_length(0), values(NULL)
34  {
35  }
36 
37  virtual int serialize(unsigned char *outbuffer) const
38  {
39  int offset = 0;
40  union {
41  int8_t real;
42  uint8_t base;
43  } u_level;
44  u_level.real = this->level;
45  *(outbuffer + offset + 0) = (u_level.base >> (8 * 0)) & 0xFF;
46  offset += sizeof(this->level);
47  uint32_t length_name = strlen(this->name);
48  memcpy(outbuffer + offset, &length_name, sizeof(uint32_t));
49  offset += 4;
50  memcpy(outbuffer + offset, this->name, length_name);
51  offset += length_name;
52  uint32_t length_message = strlen(this->message);
53  memcpy(outbuffer + offset, &length_message, sizeof(uint32_t));
54  offset += 4;
55  memcpy(outbuffer + offset, this->message, length_message);
56  offset += length_message;
57  uint32_t length_hardware_id = strlen(this->hardware_id);
58  memcpy(outbuffer + offset, &length_hardware_id, sizeof(uint32_t));
59  offset += 4;
60  memcpy(outbuffer + offset, this->hardware_id, length_hardware_id);
61  offset += length_hardware_id;
62  *(outbuffer + offset++) = values_length;
63  *(outbuffer + offset++) = 0;
64  *(outbuffer + offset++) = 0;
65  *(outbuffer + offset++) = 0;
66  for( uint8_t i = 0; i < values_length; i++){
67  offset += this->values[i].serialize(outbuffer + offset);
68  }
69  return offset;
70  }
71 
72  virtual int deserialize(unsigned char *inbuffer)
73  {
74  int offset = 0;
75  union {
76  int8_t real;
77  uint8_t base;
78  } u_level;
79  u_level.base = 0;
80  u_level.base |= ((uint8_t) (*(inbuffer + offset + 0))) << (8 * 0);
81  this->level = u_level.real;
82  offset += sizeof(this->level);
83  uint32_t length_name;
84  memcpy(&length_name, (inbuffer + offset), sizeof(uint32_t));
85  offset += 4;
86  for(unsigned int k= offset; k< offset+length_name; ++k){
87  inbuffer[k-1]=inbuffer[k];
88  }
89  inbuffer[offset+length_name-1]=0;
90  this->name = (char *)(inbuffer + offset-1);
91  offset += length_name;
92  uint32_t length_message;
93  memcpy(&length_message, (inbuffer + offset), sizeof(uint32_t));
94  offset += 4;
95  for(unsigned int k= offset; k< offset+length_message; ++k){
96  inbuffer[k-1]=inbuffer[k];
97  }
98  inbuffer[offset+length_message-1]=0;
99  this->message = (char *)(inbuffer + offset-1);
100  offset += length_message;
101  uint32_t length_hardware_id;
102  memcpy(&length_hardware_id, (inbuffer + offset), sizeof(uint32_t));
103  offset += 4;
104  for(unsigned int k= offset; k< offset+length_hardware_id; ++k){
105  inbuffer[k-1]=inbuffer[k];
106  }
107  inbuffer[offset+length_hardware_id-1]=0;
108  this->hardware_id = (char *)(inbuffer + offset-1);
109  offset += length_hardware_id;
110  uint8_t values_lengthT = *(inbuffer + offset++);
111  if(values_lengthT > values_length)
112  this->values = (diagnostic_msgs::KeyValue*)realloc(this->values, values_lengthT * sizeof(diagnostic_msgs::KeyValue));
113  offset += 3;
114  values_length = values_lengthT;
115  for( uint8_t i = 0; i < values_length; i++){
116  offset += this->st_values.deserialize(inbuffer + offset);
117  memcpy( &(this->values[i]), &(this->st_values), sizeof(diagnostic_msgs::KeyValue));
118  }
119  return offset;
120  }
121 
122  const char * getType(){ return "diagnostic_msgs/DiagnosticStatus"; };
123  const char * getMD5(){ return "d0ce08bc6e5ba34c7754f563a9cabaf1"; };
124 
125  };
126 
127 }
128 #endif
int8_t level
Definition: DiagnosticStatus.h:16
virtual int serialize(unsigned char *outbuffer) const
Definition: KeyValue.h:24
Definition: DiagnosticStatus.h:13
DiagnosticStatus()
Definition: DiagnosticStatus.h:28
const char * message
Definition: DiagnosticStatus.h:18
const char * getType()
Definition: DiagnosticStatus.h:122
Definition: DiagnosticStatus.h:23
Definition: DiagnosticStatus.h:26
diagnostic_msgs::KeyValue * values
Definition: DiagnosticStatus.h:22
const char * name
Definition: DiagnosticStatus.h:17
Definition: KeyValue.h:12
Definition: DiagnosticStatus.h:25
const char * hardware_id
Definition: DiagnosticStatus.h:19
uint8_t values_length
Definition: DiagnosticStatus.h:20
virtual int serialize(unsigned char *outbuffer) const
Definition: DiagnosticStatus.h:37
virtual int deserialize(unsigned char *inbuffer)
Definition: KeyValue.h:40
diagnostic_msgs::KeyValue st_values
Definition: DiagnosticStatus.h:21
virtual int deserialize(unsigned char *inbuffer)
Definition: DiagnosticStatus.h:72
const char * getMD5()
Definition: DiagnosticStatus.h:123
Definition: DiagnosticStatus.h:24
Definition: msg.h:43