Go to the documentation of this file.00001
00002 #ifndef CONTROL_MSGS_MESSAGE_JOINTTOLERANCE_H
00003 #define CONTROL_MSGS_MESSAGE_JOINTTOLERANCE_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 control_msgs
00019 {
00020 template <class ContainerAllocator>
00021 struct JointTolerance_ {
00022 typedef JointTolerance_<ContainerAllocator> Type;
00023
00024 JointTolerance_()
00025 : name()
00026 , position(0.0)
00027 , velocity(0.0)
00028 , acceleration(0.0)
00029 {
00030 }
00031
00032 JointTolerance_(const ContainerAllocator& _alloc)
00033 : name(_alloc)
00034 , position(0.0)
00035 , velocity(0.0)
00036 , acceleration(0.0)
00037 {
00038 }
00039
00040 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _name_type;
00041 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > name;
00042
00043 typedef double _position_type;
00044 double position;
00045
00046 typedef double _velocity_type;
00047 double velocity;
00048
00049 typedef double _acceleration_type;
00050 double acceleration;
00051
00052
00053 typedef boost::shared_ptr< ::control_msgs::JointTolerance_<ContainerAllocator> > Ptr;
00054 typedef boost::shared_ptr< ::control_msgs::JointTolerance_<ContainerAllocator> const> ConstPtr;
00055 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00056 };
00057 typedef ::control_msgs::JointTolerance_<std::allocator<void> > JointTolerance;
00058
00059 typedef boost::shared_ptr< ::control_msgs::JointTolerance> JointTolerancePtr;
00060 typedef boost::shared_ptr< ::control_msgs::JointTolerance const> JointToleranceConstPtr;
00061
00062
00063 template<typename ContainerAllocator>
00064 std::ostream& operator<<(std::ostream& s, const ::control_msgs::JointTolerance_<ContainerAllocator> & v)
00065 {
00066 ros::message_operations::Printer< ::control_msgs::JointTolerance_<ContainerAllocator> >::stream(s, "", v);
00067 return s;}
00068
00069 }
00070
00071 namespace ros
00072 {
00073 namespace message_traits
00074 {
00075 template<class ContainerAllocator> struct IsMessage< ::control_msgs::JointTolerance_<ContainerAllocator> > : public TrueType {};
00076 template<class ContainerAllocator> struct IsMessage< ::control_msgs::JointTolerance_<ContainerAllocator> const> : public TrueType {};
00077 template<class ContainerAllocator>
00078 struct MD5Sum< ::control_msgs::JointTolerance_<ContainerAllocator> > {
00079 static const char* value()
00080 {
00081 return "f544fe9c16cf04547e135dd6063ff5be";
00082 }
00083
00084 static const char* value(const ::control_msgs::JointTolerance_<ContainerAllocator> &) { return value(); }
00085 static const uint64_t static_value1 = 0xf544fe9c16cf0454ULL;
00086 static const uint64_t static_value2 = 0x7e135dd6063ff5beULL;
00087 };
00088
00089 template<class ContainerAllocator>
00090 struct DataType< ::control_msgs::JointTolerance_<ContainerAllocator> > {
00091 static const char* value()
00092 {
00093 return "control_msgs/JointTolerance";
00094 }
00095
00096 static const char* value(const ::control_msgs::JointTolerance_<ContainerAllocator> &) { return value(); }
00097 };
00098
00099 template<class ContainerAllocator>
00100 struct Definition< ::control_msgs::JointTolerance_<ContainerAllocator> > {
00101 static const char* value()
00102 {
00103 return "# The tolerances specify the amount the position, velocity, and\n\
00104 # accelerations can vary from the setpoints. For example, in the case\n\
00105 # of trajectory control, when the actual position varies beyond\n\
00106 # (desired position + position tolerance), the trajectory goal may\n\
00107 # abort.\n\
00108 # \n\
00109 # There are two special values for tolerances:\n\
00110 # * 0 - The tolerance is unspecified and will remain at whatever the default is\n\
00111 # * -1 - The tolerance is \"erased\". If there was a default, the joint will be\n\
00112 # allowed to move without restriction.\n\
00113 \n\
00114 string name\n\
00115 float64 position # in radians or meters (for a revolute or prismatic joint, respectively)\n\
00116 float64 velocity # in rad/sec or m/sec\n\
00117 float64 acceleration # in rad/sec^2 or m/sec^2\n\
00118 \n\
00119 ";
00120 }
00121
00122 static const char* value(const ::control_msgs::JointTolerance_<ContainerAllocator> &) { return value(); }
00123 };
00124
00125 }
00126 }
00127
00128 namespace ros
00129 {
00130 namespace serialization
00131 {
00132
00133 template<class ContainerAllocator> struct Serializer< ::control_msgs::JointTolerance_<ContainerAllocator> >
00134 {
00135 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00136 {
00137 stream.next(m.name);
00138 stream.next(m.position);
00139 stream.next(m.velocity);
00140 stream.next(m.acceleration);
00141 }
00142
00143 ROS_DECLARE_ALLINONE_SERIALIZER;
00144 };
00145 }
00146 }
00147
00148 namespace ros
00149 {
00150 namespace message_operations
00151 {
00152
00153 template<class ContainerAllocator>
00154 struct Printer< ::control_msgs::JointTolerance_<ContainerAllocator> >
00155 {
00156 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::control_msgs::JointTolerance_<ContainerAllocator> & v)
00157 {
00158 s << indent << "name: ";
00159 Printer<std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > >::stream(s, indent + " ", v.name);
00160 s << indent << "position: ";
00161 Printer<double>::stream(s, indent + " ", v.position);
00162 s << indent << "velocity: ";
00163 Printer<double>::stream(s, indent + " ", v.velocity);
00164 s << indent << "acceleration: ";
00165 Printer<double>::stream(s, indent + " ", v.acceleration);
00166 }
00167 };
00168
00169
00170 }
00171 }
00172
00173 #endif // CONTROL_MSGS_MESSAGE_JOINTTOLERANCE_H
00174