$search
00001 /* Auto-generated by genmsg_cpp for file /home/rosbuild/hudson/workspace/doc-electric-asctec_drivers/doc_stacks/2013-03-05_11-30-36.379198/asctec_drivers/asctec_msgs/msg/ControllerOutput.msg */ 00002 #ifndef ASCTEC_MSGS_MESSAGE_CONTROLLEROUTPUT_H 00003 #define ASCTEC_MSGS_MESSAGE_CONTROLLEROUTPUT_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 00019 namespace asctec_msgs 00020 { 00021 template <class ContainerAllocator> 00022 struct ControllerOutput_ { 00023 typedef ControllerOutput_<ContainerAllocator> Type; 00024 00025 ControllerOutput_() 00026 : header() 00027 , nick(0) 00028 , roll(0) 00029 , yaw(0) 00030 , thrust(0) 00031 { 00032 } 00033 00034 ControllerOutput_(const ContainerAllocator& _alloc) 00035 : header(_alloc) 00036 , nick(0) 00037 , roll(0) 00038 , yaw(0) 00039 , thrust(0) 00040 { 00041 } 00042 00043 typedef ::std_msgs::Header_<ContainerAllocator> _header_type; 00044 ::std_msgs::Header_<ContainerAllocator> header; 00045 00046 typedef int32_t _nick_type; 00047 int32_t nick; 00048 00049 typedef int32_t _roll_type; 00050 int32_t roll; 00051 00052 typedef int32_t _yaw_type; 00053 int32_t yaw; 00054 00055 typedef int32_t _thrust_type; 00056 int32_t thrust; 00057 00058 00059 private: 00060 static const char* __s_getDataType_() { return "asctec_msgs/ControllerOutput"; } 00061 public: 00062 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); } 00063 00064 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); } 00065 00066 private: 00067 static const char* __s_getMD5Sum_() { return "25c7094035da7c0bf36050e699ef0f7a"; } 00068 public: 00069 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); } 00070 00071 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); } 00072 00073 private: 00074 static const char* __s_getMessageDefinition_() { return "# Software License Agreement (BSD License)\n\ 00075 #\n\ 00076 # Copyright (c) 2010\n\ 00077 # William Morris <morris@ee.ccny.cuny.edu>\n\ 00078 # Ivan Dryanovski <ivan.dryanovski@gmail.com>\n\ 00079 # All rights reserved.\n\ 00080 #\n\ 00081 # Redistribution and use in source and binary forms, with or without\n\ 00082 # modification, are permitted provided that the following conditions\n\ 00083 # are met:\n\ 00084 #\n\ 00085 # * Redistributions of source code must retain the above copyright\n\ 00086 # notice, this list of conditions and the following disclaimer.\n\ 00087 # * Redistributions in binary form must reproduce the above\n\ 00088 # copyright notice, this list of conditions and the following\n\ 00089 # disclaimer in the documentation and/or other materials provided\n\ 00090 # with the distribution.\n\ 00091 # * Neither the name of CCNY Robotics Lab nor the names of its\n\ 00092 # contributors may be used to endorse or promote products derived\n\ 00093 # from this software without specific prior written permission.\n\ 00094 #\n\ 00095 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\ 00096 # \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\ 00097 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\n\ 00098 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n\ 00099 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n\ 00100 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n\ 00101 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\ 00102 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n\ 00103 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n\ 00104 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\n\ 00105 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n\ 00106 # POSSIBILITY OF SUCH DAMAGE.\n\ 00107 \n\ 00108 Header header\n\ 00109 #attitude controller outputs; 0..200 = -100 .. +100 %\n\ 00110 int32 nick\n\ 00111 int32 roll\n\ 00112 int32 yaw\n\ 00113 \n\ 00114 #current thrust (height controller output); 0..200 = 0..100%\n\ 00115 int32 thrust\n\ 00116 \n\ 00117 ================================================================================\n\ 00118 MSG: std_msgs/Header\n\ 00119 # Standard metadata for higher-level stamped data types.\n\ 00120 # This is generally used to communicate timestamped data \n\ 00121 # in a particular coordinate frame.\n\ 00122 # \n\ 00123 # sequence ID: consecutively increasing ID \n\ 00124 uint32 seq\n\ 00125 #Two-integer timestamp that is expressed as:\n\ 00126 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00127 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00128 # time-handling sugar is provided by the client library\n\ 00129 time stamp\n\ 00130 #Frame this data is associated with\n\ 00131 # 0: no frame\n\ 00132 # 1: global frame\n\ 00133 string frame_id\n\ 00134 \n\ 00135 "; } 00136 public: 00137 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); } 00138 00139 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); } 00140 00141 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const 00142 { 00143 ros::serialization::OStream stream(write_ptr, 1000000000); 00144 ros::serialization::serialize(stream, header); 00145 ros::serialization::serialize(stream, nick); 00146 ros::serialization::serialize(stream, roll); 00147 ros::serialization::serialize(stream, yaw); 00148 ros::serialization::serialize(stream, thrust); 00149 return stream.getData(); 00150 } 00151 00152 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr) 00153 { 00154 ros::serialization::IStream stream(read_ptr, 1000000000); 00155 ros::serialization::deserialize(stream, header); 00156 ros::serialization::deserialize(stream, nick); 00157 ros::serialization::deserialize(stream, roll); 00158 ros::serialization::deserialize(stream, yaw); 00159 ros::serialization::deserialize(stream, thrust); 00160 return stream.getData(); 00161 } 00162 00163 ROS_DEPRECATED virtual uint32_t serializationLength() const 00164 { 00165 uint32_t size = 0; 00166 size += ros::serialization::serializationLength(header); 00167 size += ros::serialization::serializationLength(nick); 00168 size += ros::serialization::serializationLength(roll); 00169 size += ros::serialization::serializationLength(yaw); 00170 size += ros::serialization::serializationLength(thrust); 00171 return size; 00172 } 00173 00174 typedef boost::shared_ptr< ::asctec_msgs::ControllerOutput_<ContainerAllocator> > Ptr; 00175 typedef boost::shared_ptr< ::asctec_msgs::ControllerOutput_<ContainerAllocator> const> ConstPtr; 00176 boost::shared_ptr<std::map<std::string, std::string> > __connection_header; 00177 }; // struct ControllerOutput 00178 typedef ::asctec_msgs::ControllerOutput_<std::allocator<void> > ControllerOutput; 00179 00180 typedef boost::shared_ptr< ::asctec_msgs::ControllerOutput> ControllerOutputPtr; 00181 typedef boost::shared_ptr< ::asctec_msgs::ControllerOutput const> ControllerOutputConstPtr; 00182 00183 00184 template<typename ContainerAllocator> 00185 std::ostream& operator<<(std::ostream& s, const ::asctec_msgs::ControllerOutput_<ContainerAllocator> & v) 00186 { 00187 ros::message_operations::Printer< ::asctec_msgs::ControllerOutput_<ContainerAllocator> >::stream(s, "", v); 00188 return s;} 00189 00190 } // namespace asctec_msgs 00191 00192 namespace ros 00193 { 00194 namespace message_traits 00195 { 00196 template<class ContainerAllocator> struct IsMessage< ::asctec_msgs::ControllerOutput_<ContainerAllocator> > : public TrueType {}; 00197 template<class ContainerAllocator> struct IsMessage< ::asctec_msgs::ControllerOutput_<ContainerAllocator> const> : public TrueType {}; 00198 template<class ContainerAllocator> 00199 struct MD5Sum< ::asctec_msgs::ControllerOutput_<ContainerAllocator> > { 00200 static const char* value() 00201 { 00202 return "25c7094035da7c0bf36050e699ef0f7a"; 00203 } 00204 00205 static const char* value(const ::asctec_msgs::ControllerOutput_<ContainerAllocator> &) { return value(); } 00206 static const uint64_t static_value1 = 0x25c7094035da7c0bULL; 00207 static const uint64_t static_value2 = 0xf36050e699ef0f7aULL; 00208 }; 00209 00210 template<class ContainerAllocator> 00211 struct DataType< ::asctec_msgs::ControllerOutput_<ContainerAllocator> > { 00212 static const char* value() 00213 { 00214 return "asctec_msgs/ControllerOutput"; 00215 } 00216 00217 static const char* value(const ::asctec_msgs::ControllerOutput_<ContainerAllocator> &) { return value(); } 00218 }; 00219 00220 template<class ContainerAllocator> 00221 struct Definition< ::asctec_msgs::ControllerOutput_<ContainerAllocator> > { 00222 static const char* value() 00223 { 00224 return "# Software License Agreement (BSD License)\n\ 00225 #\n\ 00226 # Copyright (c) 2010\n\ 00227 # William Morris <morris@ee.ccny.cuny.edu>\n\ 00228 # Ivan Dryanovski <ivan.dryanovski@gmail.com>\n\ 00229 # All rights reserved.\n\ 00230 #\n\ 00231 # Redistribution and use in source and binary forms, with or without\n\ 00232 # modification, are permitted provided that the following conditions\n\ 00233 # are met:\n\ 00234 #\n\ 00235 # * Redistributions of source code must retain the above copyright\n\ 00236 # notice, this list of conditions and the following disclaimer.\n\ 00237 # * Redistributions in binary form must reproduce the above\n\ 00238 # copyright notice, this list of conditions and the following\n\ 00239 # disclaimer in the documentation and/or other materials provided\n\ 00240 # with the distribution.\n\ 00241 # * Neither the name of CCNY Robotics Lab nor the names of its\n\ 00242 # contributors may be used to endorse or promote products derived\n\ 00243 # from this software without specific prior written permission.\n\ 00244 #\n\ 00245 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\ 00246 # \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\ 00247 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\n\ 00248 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n\ 00249 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n\ 00250 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n\ 00251 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\ 00252 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n\ 00253 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n\ 00254 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\n\ 00255 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n\ 00256 # POSSIBILITY OF SUCH DAMAGE.\n\ 00257 \n\ 00258 Header header\n\ 00259 #attitude controller outputs; 0..200 = -100 .. +100 %\n\ 00260 int32 nick\n\ 00261 int32 roll\n\ 00262 int32 yaw\n\ 00263 \n\ 00264 #current thrust (height controller output); 0..200 = 0..100%\n\ 00265 int32 thrust\n\ 00266 \n\ 00267 ================================================================================\n\ 00268 MSG: std_msgs/Header\n\ 00269 # Standard metadata for higher-level stamped data types.\n\ 00270 # This is generally used to communicate timestamped data \n\ 00271 # in a particular coordinate frame.\n\ 00272 # \n\ 00273 # sequence ID: consecutively increasing ID \n\ 00274 uint32 seq\n\ 00275 #Two-integer timestamp that is expressed as:\n\ 00276 # * stamp.secs: seconds (stamp_secs) since epoch\n\ 00277 # * stamp.nsecs: nanoseconds since stamp_secs\n\ 00278 # time-handling sugar is provided by the client library\n\ 00279 time stamp\n\ 00280 #Frame this data is associated with\n\ 00281 # 0: no frame\n\ 00282 # 1: global frame\n\ 00283 string frame_id\n\ 00284 \n\ 00285 "; 00286 } 00287 00288 static const char* value(const ::asctec_msgs::ControllerOutput_<ContainerAllocator> &) { return value(); } 00289 }; 00290 00291 template<class ContainerAllocator> struct HasHeader< ::asctec_msgs::ControllerOutput_<ContainerAllocator> > : public TrueType {}; 00292 template<class ContainerAllocator> struct HasHeader< const ::asctec_msgs::ControllerOutput_<ContainerAllocator> > : public TrueType {}; 00293 } // namespace message_traits 00294 } // namespace ros 00295 00296 namespace ros 00297 { 00298 namespace serialization 00299 { 00300 00301 template<class ContainerAllocator> struct Serializer< ::asctec_msgs::ControllerOutput_<ContainerAllocator> > 00302 { 00303 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m) 00304 { 00305 stream.next(m.header); 00306 stream.next(m.nick); 00307 stream.next(m.roll); 00308 stream.next(m.yaw); 00309 stream.next(m.thrust); 00310 } 00311 00312 ROS_DECLARE_ALLINONE_SERIALIZER; 00313 }; // struct ControllerOutput_ 00314 } // namespace serialization 00315 } // namespace ros 00316 00317 namespace ros 00318 { 00319 namespace message_operations 00320 { 00321 00322 template<class ContainerAllocator> 00323 struct Printer< ::asctec_msgs::ControllerOutput_<ContainerAllocator> > 00324 { 00325 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::asctec_msgs::ControllerOutput_<ContainerAllocator> & v) 00326 { 00327 s << indent << "header: "; 00328 s << std::endl; 00329 Printer< ::std_msgs::Header_<ContainerAllocator> >::stream(s, indent + " ", v.header); 00330 s << indent << "nick: "; 00331 Printer<int32_t>::stream(s, indent + " ", v.nick); 00332 s << indent << "roll: "; 00333 Printer<int32_t>::stream(s, indent + " ", v.roll); 00334 s << indent << "yaw: "; 00335 Printer<int32_t>::stream(s, indent + " ", v.yaw); 00336 s << indent << "thrust: "; 00337 Printer<int32_t>::stream(s, indent + " ", v.thrust); 00338 } 00339 }; 00340 00341 00342 } // namespace message_operations 00343 } // namespace ros 00344 00345 #endif // ASCTEC_MSGS_MESSAGE_CONTROLLEROUTPUT_H 00346