00001
00002 #ifndef SRS_LEG_DETECTOR_SERVICE_DETECTLEGS_H
00003 #define SRS_LEG_DETECTOR_SERVICE_DETECTLEGS_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 "ros/service_traits.h"
00018
00019
00020
00021 #include "sensor_msgs/PointCloud.h"
00022
00023 namespace srs_leg_detector
00024 {
00025 template <class ContainerAllocator>
00026 struct DetectLegsRequest_ {
00027 typedef DetectLegsRequest_<ContainerAllocator> Type;
00028
00029 DetectLegsRequest_()
00030 {
00031 }
00032
00033 DetectLegsRequest_(const ContainerAllocator& _alloc)
00034 {
00035 }
00036
00037
00038 private:
00039 static const char* __s_getDataType_() { return "srs_leg_detector/DetectLegsRequest"; }
00040 public:
00041 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00042
00043 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00044
00045 private:
00046 static const char* __s_getMD5Sum_() { return "d41d8cd98f00b204e9800998ecf8427e"; }
00047 public:
00048 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00049
00050 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00051
00052 private:
00053 static const char* __s_getServerMD5Sum_() { return "941854f3e81fd64b94eaa0d5b1ad95e1"; }
00054 public:
00055 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); }
00056
00057 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); }
00058
00059 private:
00060 static const char* __s_getMessageDefinition_() { return "\n\
00061 \n\
00062 "; }
00063 public:
00064 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00065
00066 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00067
00068 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00069 {
00070 ros::serialization::OStream stream(write_ptr, 1000000000);
00071 return stream.getData();
00072 }
00073
00074 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00075 {
00076 ros::serialization::IStream stream(read_ptr, 1000000000);
00077 return stream.getData();
00078 }
00079
00080 ROS_DEPRECATED virtual uint32_t serializationLength() const
00081 {
00082 uint32_t size = 0;
00083 return size;
00084 }
00085
00086 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > Ptr;
00087 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> const> ConstPtr;
00088 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00089 };
00090 typedef ::srs_leg_detector::DetectLegsRequest_<std::allocator<void> > DetectLegsRequest;
00091
00092 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsRequest> DetectLegsRequestPtr;
00093 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsRequest const> DetectLegsRequestConstPtr;
00094
00095
00096 template <class ContainerAllocator>
00097 struct DetectLegsResponse_ {
00098 typedef DetectLegsResponse_<ContainerAllocator> Type;
00099
00100 DetectLegsResponse_()
00101 : leg_list()
00102 {
00103 }
00104
00105 DetectLegsResponse_(const ContainerAllocator& _alloc)
00106 : leg_list(_alloc)
00107 {
00108 }
00109
00110 typedef ::sensor_msgs::PointCloud_<ContainerAllocator> _leg_list_type;
00111 ::sensor_msgs::PointCloud_<ContainerAllocator> leg_list;
00112
00113
00114 private:
00115 static const char* __s_getDataType_() { return "srs_leg_detector/DetectLegsResponse"; }
00116 public:
00117 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00118
00119 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00120
00121 private:
00122 static const char* __s_getMD5Sum_() { return "941854f3e81fd64b94eaa0d5b1ad95e1"; }
00123 public:
00124 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00125
00126 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00127
00128 private:
00129 static const char* __s_getServerMD5Sum_() { return "941854f3e81fd64b94eaa0d5b1ad95e1"; }
00130 public:
00131 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); }
00132
00133 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); }
00134
00135 private:
00136 static const char* __s_getMessageDefinition_() { return "\n\
00137 sensor_msgs/PointCloud leg_list\n\
00138 \n\
00139 \n\
00140 ================================================================================\n\
00141 MSG: sensor_msgs/PointCloud\n\
00142 # This message holds a collection of 3d points, plus optional additional\n\
00143 # information about each point.\n\
00144 \n\
00145 # Time of sensor data acquisition, coordinate frame ID.\n\
00146 Header header\n\
00147 \n\
00148 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\
00149 # in the frame given in the header.\n\
00150 geometry_msgs/Point32[] points\n\
00151 \n\
00152 # Each channel should have the same number of elements as points array,\n\
00153 # and the data in each channel should correspond 1:1 with each point.\n\
00154 # Channel names in common practice are listed in ChannelFloat32.msg.\n\
00155 ChannelFloat32[] channels\n\
00156 \n\
00157 ================================================================================\n\
00158 MSG: std_msgs/Header\n\
00159 # Standard metadata for higher-level stamped data types.\n\
00160 # This is generally used to communicate timestamped data \n\
00161 # in a particular coordinate frame.\n\
00162 # \n\
00163 # sequence ID: consecutively increasing ID \n\
00164 uint32 seq\n\
00165 #Two-integer timestamp that is expressed as:\n\
00166 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00167 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00168 # time-handling sugar is provided by the client library\n\
00169 time stamp\n\
00170 #Frame this data is associated with\n\
00171 # 0: no frame\n\
00172 # 1: global frame\n\
00173 string frame_id\n\
00174 \n\
00175 ================================================================================\n\
00176 MSG: geometry_msgs/Point32\n\
00177 # This contains the position of a point in free space(with 32 bits of precision).\n\
00178 # It is recommeded to use Point wherever possible instead of Point32. \n\
00179 # \n\
00180 # This recommendation is to promote interoperability. \n\
00181 #\n\
00182 # This message is designed to take up less space when sending\n\
00183 # lots of points at once, as in the case of a PointCloud. \n\
00184 \n\
00185 float32 x\n\
00186 float32 y\n\
00187 float32 z\n\
00188 ================================================================================\n\
00189 MSG: sensor_msgs/ChannelFloat32\n\
00190 # This message is used by the PointCloud message to hold optional data\n\
00191 # associated with each point in the cloud. The length of the values\n\
00192 # array should be the same as the length of the points array in the\n\
00193 # PointCloud, and each value should be associated with the corresponding\n\
00194 # point.\n\
00195 \n\
00196 # Channel names in existing practice include:\n\
00197 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\
00198 # This is opposite to usual conventions but remains for\n\
00199 # historical reasons. The newer PointCloud2 message has no\n\
00200 # such problem.\n\
00201 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\
00202 # (R,G,B) values packed into the least significant 24 bits,\n\
00203 # in order.\n\
00204 # \"intensity\" - laser or pixel intensity.\n\
00205 # \"distance\"\n\
00206 \n\
00207 # The channel name should give semantics of the channel (e.g.\n\
00208 # \"intensity\" instead of \"value\").\n\
00209 string name\n\
00210 \n\
00211 # The values array should be 1-1 with the elements of the associated\n\
00212 # PointCloud.\n\
00213 float32[] values\n\
00214 \n\
00215 "; }
00216 public:
00217 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00218
00219 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00220
00221 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00222 {
00223 ros::serialization::OStream stream(write_ptr, 1000000000);
00224 ros::serialization::serialize(stream, leg_list);
00225 return stream.getData();
00226 }
00227
00228 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00229 {
00230 ros::serialization::IStream stream(read_ptr, 1000000000);
00231 ros::serialization::deserialize(stream, leg_list);
00232 return stream.getData();
00233 }
00234
00235 ROS_DEPRECATED virtual uint32_t serializationLength() const
00236 {
00237 uint32_t size = 0;
00238 size += ros::serialization::serializationLength(leg_list);
00239 return size;
00240 }
00241
00242 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > Ptr;
00243 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> const> ConstPtr;
00244 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00245 };
00246 typedef ::srs_leg_detector::DetectLegsResponse_<std::allocator<void> > DetectLegsResponse;
00247
00248 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsResponse> DetectLegsResponsePtr;
00249 typedef boost::shared_ptr< ::srs_leg_detector::DetectLegsResponse const> DetectLegsResponseConstPtr;
00250
00251 struct DetectLegs
00252 {
00253
00254 typedef DetectLegsRequest Request;
00255 typedef DetectLegsResponse Response;
00256 Request request;
00257 Response response;
00258
00259 typedef Request RequestType;
00260 typedef Response ResponseType;
00261 };
00262 }
00263
00264 namespace ros
00265 {
00266 namespace message_traits
00267 {
00268 template<class ContainerAllocator> struct IsMessage< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > : public TrueType {};
00269 template<class ContainerAllocator> struct IsMessage< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> const> : public TrueType {};
00270 template<class ContainerAllocator>
00271 struct MD5Sum< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00272 static const char* value()
00273 {
00274 return "d41d8cd98f00b204e9800998ecf8427e";
00275 }
00276
00277 static const char* value(const ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00278 static const uint64_t static_value1 = 0xd41d8cd98f00b204ULL;
00279 static const uint64_t static_value2 = 0xe9800998ecf8427eULL;
00280 };
00281
00282 template<class ContainerAllocator>
00283 struct DataType< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00284 static const char* value()
00285 {
00286 return "srs_leg_detector/DetectLegsRequest";
00287 }
00288
00289 static const char* value(const ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00290 };
00291
00292 template<class ContainerAllocator>
00293 struct Definition< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00294 static const char* value()
00295 {
00296 return "\n\
00297 \n\
00298 ";
00299 }
00300
00301 static const char* value(const ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00302 };
00303
00304 template<class ContainerAllocator> struct IsFixedSize< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > : public TrueType {};
00305 }
00306 }
00307
00308
00309 namespace ros
00310 {
00311 namespace message_traits
00312 {
00313 template<class ContainerAllocator> struct IsMessage< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > : public TrueType {};
00314 template<class ContainerAllocator> struct IsMessage< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> const> : public TrueType {};
00315 template<class ContainerAllocator>
00316 struct MD5Sum< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00317 static const char* value()
00318 {
00319 return "941854f3e81fd64b94eaa0d5b1ad95e1";
00320 }
00321
00322 static const char* value(const ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00323 static const uint64_t static_value1 = 0x941854f3e81fd64bULL;
00324 static const uint64_t static_value2 = 0x94eaa0d5b1ad95e1ULL;
00325 };
00326
00327 template<class ContainerAllocator>
00328 struct DataType< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00329 static const char* value()
00330 {
00331 return "srs_leg_detector/DetectLegsResponse";
00332 }
00333
00334 static const char* value(const ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00335 };
00336
00337 template<class ContainerAllocator>
00338 struct Definition< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00339 static const char* value()
00340 {
00341 return "\n\
00342 sensor_msgs/PointCloud leg_list\n\
00343 \n\
00344 \n\
00345 ================================================================================\n\
00346 MSG: sensor_msgs/PointCloud\n\
00347 # This message holds a collection of 3d points, plus optional additional\n\
00348 # information about each point.\n\
00349 \n\
00350 # Time of sensor data acquisition, coordinate frame ID.\n\
00351 Header header\n\
00352 \n\
00353 # Array of 3d points. Each Point32 should be interpreted as a 3d point\n\
00354 # in the frame given in the header.\n\
00355 geometry_msgs/Point32[] points\n\
00356 \n\
00357 # Each channel should have the same number of elements as points array,\n\
00358 # and the data in each channel should correspond 1:1 with each point.\n\
00359 # Channel names in common practice are listed in ChannelFloat32.msg.\n\
00360 ChannelFloat32[] channels\n\
00361 \n\
00362 ================================================================================\n\
00363 MSG: std_msgs/Header\n\
00364 # Standard metadata for higher-level stamped data types.\n\
00365 # This is generally used to communicate timestamped data \n\
00366 # in a particular coordinate frame.\n\
00367 # \n\
00368 # sequence ID: consecutively increasing ID \n\
00369 uint32 seq\n\
00370 #Two-integer timestamp that is expressed as:\n\
00371 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00372 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00373 # time-handling sugar is provided by the client library\n\
00374 time stamp\n\
00375 #Frame this data is associated with\n\
00376 # 0: no frame\n\
00377 # 1: global frame\n\
00378 string frame_id\n\
00379 \n\
00380 ================================================================================\n\
00381 MSG: geometry_msgs/Point32\n\
00382 # This contains the position of a point in free space(with 32 bits of precision).\n\
00383 # It is recommeded to use Point wherever possible instead of Point32. \n\
00384 # \n\
00385 # This recommendation is to promote interoperability. \n\
00386 #\n\
00387 # This message is designed to take up less space when sending\n\
00388 # lots of points at once, as in the case of a PointCloud. \n\
00389 \n\
00390 float32 x\n\
00391 float32 y\n\
00392 float32 z\n\
00393 ================================================================================\n\
00394 MSG: sensor_msgs/ChannelFloat32\n\
00395 # This message is used by the PointCloud message to hold optional data\n\
00396 # associated with each point in the cloud. The length of the values\n\
00397 # array should be the same as the length of the points array in the\n\
00398 # PointCloud, and each value should be associated with the corresponding\n\
00399 # point.\n\
00400 \n\
00401 # Channel names in existing practice include:\n\
00402 # \"u\", \"v\" - row and column (respectively) in the left stereo image.\n\
00403 # This is opposite to usual conventions but remains for\n\
00404 # historical reasons. The newer PointCloud2 message has no\n\
00405 # such problem.\n\
00406 # \"rgb\" - For point clouds produced by color stereo cameras. uint8\n\
00407 # (R,G,B) values packed into the least significant 24 bits,\n\
00408 # in order.\n\
00409 # \"intensity\" - laser or pixel intensity.\n\
00410 # \"distance\"\n\
00411 \n\
00412 # The channel name should give semantics of the channel (e.g.\n\
00413 # \"intensity\" instead of \"value\").\n\
00414 string name\n\
00415 \n\
00416 # The values array should be 1-1 with the elements of the associated\n\
00417 # PointCloud.\n\
00418 float32[] values\n\
00419 \n\
00420 ";
00421 }
00422
00423 static const char* value(const ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00424 };
00425
00426 }
00427 }
00428
00429 namespace ros
00430 {
00431 namespace serialization
00432 {
00433
00434 template<class ContainerAllocator> struct Serializer< ::srs_leg_detector::DetectLegsRequest_<ContainerAllocator> >
00435 {
00436 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00437 {
00438 }
00439
00440 ROS_DECLARE_ALLINONE_SERIALIZER;
00441 };
00442 }
00443 }
00444
00445
00446 namespace ros
00447 {
00448 namespace serialization
00449 {
00450
00451 template<class ContainerAllocator> struct Serializer< ::srs_leg_detector::DetectLegsResponse_<ContainerAllocator> >
00452 {
00453 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00454 {
00455 stream.next(m.leg_list);
00456 }
00457
00458 ROS_DECLARE_ALLINONE_SERIALIZER;
00459 };
00460 }
00461 }
00462
00463 namespace ros
00464 {
00465 namespace service_traits
00466 {
00467 template<>
00468 struct MD5Sum<srs_leg_detector::DetectLegs> {
00469 static const char* value()
00470 {
00471 return "941854f3e81fd64b94eaa0d5b1ad95e1";
00472 }
00473
00474 static const char* value(const srs_leg_detector::DetectLegs&) { return value(); }
00475 };
00476
00477 template<>
00478 struct DataType<srs_leg_detector::DetectLegs> {
00479 static const char* value()
00480 {
00481 return "srs_leg_detector/DetectLegs";
00482 }
00483
00484 static const char* value(const srs_leg_detector::DetectLegs&) { return value(); }
00485 };
00486
00487 template<class ContainerAllocator>
00488 struct MD5Sum<srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00489 static const char* value()
00490 {
00491 return "941854f3e81fd64b94eaa0d5b1ad95e1";
00492 }
00493
00494 static const char* value(const srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00495 };
00496
00497 template<class ContainerAllocator>
00498 struct DataType<srs_leg_detector::DetectLegsRequest_<ContainerAllocator> > {
00499 static const char* value()
00500 {
00501 return "srs_leg_detector/DetectLegs";
00502 }
00503
00504 static const char* value(const srs_leg_detector::DetectLegsRequest_<ContainerAllocator> &) { return value(); }
00505 };
00506
00507 template<class ContainerAllocator>
00508 struct MD5Sum<srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00509 static const char* value()
00510 {
00511 return "941854f3e81fd64b94eaa0d5b1ad95e1";
00512 }
00513
00514 static const char* value(const srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00515 };
00516
00517 template<class ContainerAllocator>
00518 struct DataType<srs_leg_detector::DetectLegsResponse_<ContainerAllocator> > {
00519 static const char* value()
00520 {
00521 return "srs_leg_detector/DetectLegs";
00522 }
00523
00524 static const char* value(const srs_leg_detector::DetectLegsResponse_<ContainerAllocator> &) { return value(); }
00525 };
00526
00527 }
00528 }
00529
00530 #endif // SRS_LEG_DETECTOR_SERVICE_DETECTLEGS_H
00531