00001
00002 #ifndef KINGFISHER_MSGS_MESSAGE_SENSE_H
00003 #define KINGFISHER_MSGS_MESSAGE_SENSE_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <ostream>
00008 #include "ros/serialization.h"
00009 #include "ros/builtin_message_traits.h"
00010 #include "ros/message_operations.h"
00011 #include "ros/time.h"
00012
00013 #include "ros/macros.h"
00014
00015 #include "ros/assert.h"
00016
00017
00018 namespace kingfisher_msgs
00019 {
00020 template <class ContainerAllocator>
00021 struct Sense_ {
00022 typedef Sense_<ContainerAllocator> Type;
00023
00024 Sense_()
00025 : battery(0.0)
00026 , current_left(0.0)
00027 , current_right(0.0)
00028 , pcb_temperature(0.0)
00029 , fan_on(false)
00030 , rc(0)
00031 , rc_throttle(0)
00032 , rc_rotation(0)
00033 , rc_enable(0)
00034 {
00035 }
00036
00037 Sense_(const ContainerAllocator& _alloc)
00038 : battery(0.0)
00039 , current_left(0.0)
00040 , current_right(0.0)
00041 , pcb_temperature(0.0)
00042 , fan_on(false)
00043 , rc(0)
00044 , rc_throttle(0)
00045 , rc_rotation(0)
00046 , rc_enable(0)
00047 {
00048 }
00049
00050 typedef float _battery_type;
00051 float battery;
00052
00053 typedef float _current_left_type;
00054 float current_left;
00055
00056 typedef float _current_right_type;
00057 float current_right;
00058
00059 typedef float _pcb_temperature_type;
00060 float pcb_temperature;
00061
00062 typedef uint8_t _fan_on_type;
00063 uint8_t fan_on;
00064
00065 typedef uint8_t _rc_type;
00066 uint8_t rc;
00067
00068 typedef uint16_t _rc_throttle_type;
00069 uint16_t rc_throttle;
00070
00071 typedef uint16_t _rc_rotation_type;
00072 uint16_t rc_rotation;
00073
00074 typedef uint16_t _rc_enable_type;
00075 uint16_t rc_enable;
00076
00077 enum { RC_INRANGE = 1 };
00078 enum { RC_INUSE = 2 };
00079
00080 typedef boost::shared_ptr< ::kingfisher_msgs::Sense_<ContainerAllocator> > Ptr;
00081 typedef boost::shared_ptr< ::kingfisher_msgs::Sense_<ContainerAllocator> const> ConstPtr;
00082 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00083 };
00084 typedef ::kingfisher_msgs::Sense_<std::allocator<void> > Sense;
00085
00086 typedef boost::shared_ptr< ::kingfisher_msgs::Sense> SensePtr;
00087 typedef boost::shared_ptr< ::kingfisher_msgs::Sense const> SenseConstPtr;
00088
00089
00090 template<typename ContainerAllocator>
00091 std::ostream& operator<<(std::ostream& s, const ::kingfisher_msgs::Sense_<ContainerAllocator> & v)
00092 {
00093 ros::message_operations::Printer< ::kingfisher_msgs::Sense_<ContainerAllocator> >::stream(s, "", v);
00094 return s;}
00095
00096 }
00097
00098 namespace ros
00099 {
00100 namespace message_traits
00101 {
00102 template<class ContainerAllocator> struct IsMessage< ::kingfisher_msgs::Sense_<ContainerAllocator> > : public TrueType {};
00103 template<class ContainerAllocator> struct IsMessage< ::kingfisher_msgs::Sense_<ContainerAllocator> const> : public TrueType {};
00104 template<class ContainerAllocator>
00105 struct MD5Sum< ::kingfisher_msgs::Sense_<ContainerAllocator> > {
00106 static const char* value()
00107 {
00108 return "b0209acddc7f26d2e3dc1338d6c4df94";
00109 }
00110
00111 static const char* value(const ::kingfisher_msgs::Sense_<ContainerAllocator> &) { return value(); }
00112 static const uint64_t static_value1 = 0xb0209acddc7f26d2ULL;
00113 static const uint64_t static_value2 = 0xe3dc1338d6c4df94ULL;
00114 };
00115
00116 template<class ContainerAllocator>
00117 struct DataType< ::kingfisher_msgs::Sense_<ContainerAllocator> > {
00118 static const char* value()
00119 {
00120 return "kingfisher_msgs/Sense";
00121 }
00122
00123 static const char* value(const ::kingfisher_msgs::Sense_<ContainerAllocator> &) { return value(); }
00124 };
00125
00126 template<class ContainerAllocator>
00127 struct Definition< ::kingfisher_msgs::Sense_<ContainerAllocator> > {
00128 static const char* value()
00129 {
00130 return "# Voltage level of battery, in volts\n\
00131 float32 battery\n\
00132 \n\
00133 # Instantaneous current drawn by each motor, in amps.\n\
00134 float32 current_left\n\
00135 float32 current_right\n\
00136 \n\
00137 # Temperature of PCB as measured by internal AVR thermometer,\n\
00138 # reported in degrees centigrade.\n\
00139 float32 pcb_temperature\n\
00140 bool fan_on\n\
00141 \n\
00142 # Bitfield represents status of hobby R/C override.\n\
00143 uint8 RC_INRANGE=1\n\
00144 uint8 RC_INUSE=2\n\
00145 uint8 rc\n\
00146 \n\
00147 # Pulse lengths received from the three R/C channels.\n\
00148 uint16 rc_throttle\n\
00149 uint16 rc_rotation\n\
00150 uint16 rc_enable\n\
00151 \n\
00152 ";
00153 }
00154
00155 static const char* value(const ::kingfisher_msgs::Sense_<ContainerAllocator> &) { return value(); }
00156 };
00157
00158 template<class ContainerAllocator> struct IsFixedSize< ::kingfisher_msgs::Sense_<ContainerAllocator> > : public TrueType {};
00159 }
00160 }
00161
00162 namespace ros
00163 {
00164 namespace serialization
00165 {
00166
00167 template<class ContainerAllocator> struct Serializer< ::kingfisher_msgs::Sense_<ContainerAllocator> >
00168 {
00169 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00170 {
00171 stream.next(m.battery);
00172 stream.next(m.current_left);
00173 stream.next(m.current_right);
00174 stream.next(m.pcb_temperature);
00175 stream.next(m.fan_on);
00176 stream.next(m.rc);
00177 stream.next(m.rc_throttle);
00178 stream.next(m.rc_rotation);
00179 stream.next(m.rc_enable);
00180 }
00181
00182 ROS_DECLARE_ALLINONE_SERIALIZER;
00183 };
00184 }
00185 }
00186
00187 namespace ros
00188 {
00189 namespace message_operations
00190 {
00191
00192 template<class ContainerAllocator>
00193 struct Printer< ::kingfisher_msgs::Sense_<ContainerAllocator> >
00194 {
00195 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::kingfisher_msgs::Sense_<ContainerAllocator> & v)
00196 {
00197 s << indent << "battery: ";
00198 Printer<float>::stream(s, indent + " ", v.battery);
00199 s << indent << "current_left: ";
00200 Printer<float>::stream(s, indent + " ", v.current_left);
00201 s << indent << "current_right: ";
00202 Printer<float>::stream(s, indent + " ", v.current_right);
00203 s << indent << "pcb_temperature: ";
00204 Printer<float>::stream(s, indent + " ", v.pcb_temperature);
00205 s << indent << "fan_on: ";
00206 Printer<uint8_t>::stream(s, indent + " ", v.fan_on);
00207 s << indent << "rc: ";
00208 Printer<uint8_t>::stream(s, indent + " ", v.rc);
00209 s << indent << "rc_throttle: ";
00210 Printer<uint16_t>::stream(s, indent + " ", v.rc_throttle);
00211 s << indent << "rc_rotation: ";
00212 Printer<uint16_t>::stream(s, indent + " ", v.rc_rotation);
00213 s << indent << "rc_enable: ";
00214 Printer<uint16_t>::stream(s, indent + " ", v.rc_enable);
00215 }
00216 };
00217
00218
00219 }
00220 }
00221
00222 #endif // KINGFISHER_MSGS_MESSAGE_SENSE_H
00223