Go to the documentation of this file.00001
00002 #ifndef INDUSTRIAL_MSGS_MESSAGE_ROBOTSTATUS_H
00003 #define INDUSTRIAL_MSGS_MESSAGE_ROBOTSTATUS_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 #include "std_msgs/Header.h"
00018 #include "industrial_msgs/RobotMode.h"
00019 #include "industrial_msgs/TriState.h"
00020 #include "industrial_msgs/TriState.h"
00021 #include "industrial_msgs/TriState.h"
00022 #include "industrial_msgs/TriState.h"
00023 #include "industrial_msgs/TriState.h"
00024
00025 namespace industrial_msgs
00026 {
00027 template <class ContainerAllocator>
00028 struct RobotStatus_ {
00029 typedef RobotStatus_<ContainerAllocator> Type;
00030
00031 RobotStatus_()
00032 : header()
00033 , mode()
00034 , e_stopped()
00035 , drives_powered()
00036 , motion_possible()
00037 , in_motion()
00038 , in_error()
00039 , error_code(0)
00040 {
00041 }
00042
00043 RobotStatus_(const ContainerAllocator& _alloc)
00044 : header(_alloc)
00045 , mode(_alloc)
00046 , e_stopped(_alloc)
00047 , drives_powered(_alloc)
00048 , motion_possible(_alloc)
00049 , in_motion(_alloc)
00050 , in_error(_alloc)
00051 , error_code(0)
00052 {
00053 }
00054
00055 typedef ::std_msgs::Header_<ContainerAllocator> _header_type;
00056 ::std_msgs::Header_<ContainerAllocator> header;
00057
00058 typedef ::industrial_msgs::RobotMode_<ContainerAllocator> _mode_type;
00059 ::industrial_msgs::RobotMode_<ContainerAllocator> mode;
00060
00061 typedef ::industrial_msgs::TriState_<ContainerAllocator> _e_stopped_type;
00062 ::industrial_msgs::TriState_<ContainerAllocator> e_stopped;
00063
00064 typedef ::industrial_msgs::TriState_<ContainerAllocator> _drives_powered_type;
00065 ::industrial_msgs::TriState_<ContainerAllocator> drives_powered;
00066
00067 typedef ::industrial_msgs::TriState_<ContainerAllocator> _motion_possible_type;
00068 ::industrial_msgs::TriState_<ContainerAllocator> motion_possible;
00069
00070 typedef ::industrial_msgs::TriState_<ContainerAllocator> _in_motion_type;
00071 ::industrial_msgs::TriState_<ContainerAllocator> in_motion;
00072
00073 typedef ::industrial_msgs::TriState_<ContainerAllocator> _in_error_type;
00074 ::industrial_msgs::TriState_<ContainerAllocator> in_error;
00075
00076 typedef int32_t _error_code_type;
00077 int32_t error_code;
00078
00079
00080 typedef boost::shared_ptr< ::industrial_msgs::RobotStatus_<ContainerAllocator> > Ptr;
00081 typedef boost::shared_ptr< ::industrial_msgs::RobotStatus_<ContainerAllocator> const> ConstPtr;
00082 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00083 };
00084 typedef ::industrial_msgs::RobotStatus_<std::allocator<void> > RobotStatus;
00085
00086 typedef boost::shared_ptr< ::industrial_msgs::RobotStatus> RobotStatusPtr;
00087 typedef boost::shared_ptr< ::industrial_msgs::RobotStatus const> RobotStatusConstPtr;
00088
00089
00090 template<typename ContainerAllocator>
00091 std::ostream& operator<<(std::ostream& s, const ::industrial_msgs::RobotStatus_<ContainerAllocator> & v)
00092 {
00093 ros::message_operations::Printer< ::industrial_msgs::RobotStatus_<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< ::industrial_msgs::RobotStatus_<ContainerAllocator> > : public TrueType {};
00103 template<class ContainerAllocator> struct IsMessage< ::industrial_msgs::RobotStatus_<ContainerAllocator> const> : public TrueType {};
00104 template<class ContainerAllocator>
00105 struct MD5Sum< ::industrial_msgs::RobotStatus_<ContainerAllocator> > {
00106 static const char* value()
00107 {
00108 return "b733cb45a38101840b75c4c0d6093d19";
00109 }
00110
00111 static const char* value(const ::industrial_msgs::RobotStatus_<ContainerAllocator> &) { return value(); }
00112 static const uint64_t static_value1 = 0xb733cb45a3810184ULL;
00113 static const uint64_t static_value2 = 0x0b75c4c0d6093d19ULL;
00114 };
00115
00116 template<class ContainerAllocator>
00117 struct DataType< ::industrial_msgs::RobotStatus_<ContainerAllocator> > {
00118 static const char* value()
00119 {
00120 return "industrial_msgs/RobotStatus";
00121 }
00122
00123 static const char* value(const ::industrial_msgs::RobotStatus_<ContainerAllocator> &) { return value(); }
00124 };
00125
00126 template<class ContainerAllocator>
00127 struct Definition< ::industrial_msgs::RobotStatus_<ContainerAllocator> > {
00128 static const char* value()
00129 {
00130 return "# The RobotStatus message contains low level status information \n\
00131 # that is specific to an industrial robot controller\n\
00132 \n\
00133 # The header frame ID is not used\n\
00134 Header header\n\
00135 \n\
00136 # The robot mode captures the operating mode of the robot. When in\n\
00137 # manual, remote motion is not possible.\n\
00138 industrial_msgs/RobotMode mode\n\
00139 \n\
00140 # Estop status: True if robot is e-stopped. The drives are disabled\n\
00141 # and motion is not possible. The e-stop condition must be acknowledged\n\
00142 # and cleared before any motion can begin.\n\
00143 industrial_msgs/TriState e_stopped\n\
00144 \n\
00145 # Drive power status: True if drives are powered. Motion commands will \n\
00146 # automatically enable the drives if required. Drive power is not requred\n\
00147 # for possible motion\n\
00148 industrial_msgs/TriState drives_powered\n\
00149 \n\
00150 # Motion enabled: Ture if robot motion is possible.\n\
00151 industrial_msgs/TriState motion_possible\n\
00152 \n\
00153 # Motion status: True if robot is in motion, otherwise false\n\
00154 industrial_msgs/TriState in_motion\n\
00155 \n\
00156 # Error status: True if there is an error condition on the robot. Motion may\n\
00157 # or may not be affected (see motion_possible)\n\
00158 industrial_msgs/TriState in_error\n\
00159 \n\
00160 # Error code: Vendor specific error code (non zero indicates error)\n\
00161 int32 error_code\n\
00162 \n\
00163 ================================================================================\n\
00164 MSG: std_msgs/Header\n\
00165 # Standard metadata for higher-level stamped data types.\n\
00166 # This is generally used to communicate timestamped data \n\
00167 # in a particular coordinate frame.\n\
00168 # \n\
00169 # sequence ID: consecutively increasing ID \n\
00170 uint32 seq\n\
00171 #Two-integer timestamp that is expressed as:\n\
00172 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00173 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00174 # time-handling sugar is provided by the client library\n\
00175 time stamp\n\
00176 #Frame this data is associated with\n\
00177 # 0: no frame\n\
00178 # 1: global frame\n\
00179 string frame_id\n\
00180 \n\
00181 ================================================================================\n\
00182 MSG: industrial_msgs/RobotMode\n\
00183 # The Robot mode message encapsulates the mode/teach state of the robot\n\
00184 # Typically this is controlled by the pendant key switch, but not always\n\
00185 \n\
00186 int8 val\n\
00187 \n\
00188 # enumerated values\n\
00189 int8 UNKNOWN=-1 # Unknown or unavailable \n\
00190 int8 MANUAL=1 # Teach OR manual mode\n\
00191 int8 AUTO=2 # Automatic mode\n\
00192 \n\
00193 \n\
00194 ================================================================================\n\
00195 MSG: industrial_msgs/TriState\n\
00196 # The tri-state captures boolean values with the additional state of unknown\n\
00197 \n\
00198 int8 val\n\
00199 \n\
00200 # enumerated values\n\
00201 \n\
00202 # Unknown or unavailable \n\
00203 int8 UNKNOWN=-1 \n\
00204 \n\
00205 # High state \n\
00206 int8 TRUE=1\n\
00207 int8 ON=1\n\
00208 int8 ENABLED=1\n\
00209 int8 HIGH=1\n\
00210 int8 CLOSED=1\n\
00211 \n\
00212 # Low state\n\
00213 int8 FALSE=0\n\
00214 int8 OFF=0\n\
00215 int8 DISABLED=0\n\
00216 int8 LOW=0\n\
00217 int8 OPEN=0\n\
00218 \n\
00219 \n\
00220 ";
00221 }
00222
00223 static const char* value(const ::industrial_msgs::RobotStatus_<ContainerAllocator> &) { return value(); }
00224 };
00225
00226 template<class ContainerAllocator> struct HasHeader< ::industrial_msgs::RobotStatus_<ContainerAllocator> > : public TrueType {};
00227 template<class ContainerAllocator> struct HasHeader< const ::industrial_msgs::RobotStatus_<ContainerAllocator> > : public TrueType {};
00228 }
00229 }
00230
00231 namespace ros
00232 {
00233 namespace serialization
00234 {
00235
00236 template<class ContainerAllocator> struct Serializer< ::industrial_msgs::RobotStatus_<ContainerAllocator> >
00237 {
00238 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00239 {
00240 stream.next(m.header);
00241 stream.next(m.mode);
00242 stream.next(m.e_stopped);
00243 stream.next(m.drives_powered);
00244 stream.next(m.motion_possible);
00245 stream.next(m.in_motion);
00246 stream.next(m.in_error);
00247 stream.next(m.error_code);
00248 }
00249
00250 ROS_DECLARE_ALLINONE_SERIALIZER;
00251 };
00252 }
00253 }
00254
00255 namespace ros
00256 {
00257 namespace message_operations
00258 {
00259
00260 template<class ContainerAllocator>
00261 struct Printer< ::industrial_msgs::RobotStatus_<ContainerAllocator> >
00262 {
00263 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::industrial_msgs::RobotStatus_<ContainerAllocator> & v)
00264 {
00265 s << indent << "header: ";
00266 s << std::endl;
00267 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header);
00268 s << indent << "mode: ";
00269 s << std::endl;
00270 Printer< ::industrial_msgs::RobotMode_<ContainerAllocator> >::stream(s, indent + " ", v.mode);
00271 s << indent << "e_stopped: ";
00272 s << std::endl;
00273 Printer< ::industrial_msgs::TriState_<ContainerAllocator> >::stream(s, indent + " ", v.e_stopped);
00274 s << indent << "drives_powered: ";
00275 s << std::endl;
00276 Printer< ::industrial_msgs::TriState_<ContainerAllocator> >::stream(s, indent + " ", v.drives_powered);
00277 s << indent << "motion_possible: ";
00278 s << std::endl;
00279 Printer< ::industrial_msgs::TriState_<ContainerAllocator> >::stream(s, indent + " ", v.motion_possible);
00280 s << indent << "in_motion: ";
00281 s << std::endl;
00282 Printer< ::industrial_msgs::TriState_<ContainerAllocator> >::stream(s, indent + " ", v.in_motion);
00283 s << indent << "in_error: ";
00284 s << std::endl;
00285 Printer< ::industrial_msgs::TriState_<ContainerAllocator> >::stream(s, indent + " ", v.in_error);
00286 s << indent << "error_code: ";
00287 Printer<int32_t>::stream(s, indent + " ", v.error_code);
00288 }
00289 };
00290
00291
00292 }
00293 }
00294
00295 #endif // INDUSTRIAL_MSGS_MESSAGE_ROBOTSTATUS_H
00296