00001
00002 #ifndef NAVFN_SERVICE_MAKENAVPLAN_H
00003 #define NAVFN_SERVICE_MAKENAVPLAN_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 #include "geometry_msgs/PoseStamped.h"
00020 #include "geometry_msgs/PoseStamped.h"
00021
00022
00023 #include "geometry_msgs/PoseStamped.h"
00024
00025 namespace navfn
00026 {
00027 template <class ContainerAllocator>
00028 struct MakeNavPlanRequest_ {
00029 typedef MakeNavPlanRequest_<ContainerAllocator> Type;
00030
00031 MakeNavPlanRequest_()
00032 : start()
00033 , goal()
00034 {
00035 }
00036
00037 MakeNavPlanRequest_(const ContainerAllocator& _alloc)
00038 : start(_alloc)
00039 , goal(_alloc)
00040 {
00041 }
00042
00043 typedef ::geometry_msgs::PoseStamped_<ContainerAllocator> _start_type;
00044 ::geometry_msgs::PoseStamped_<ContainerAllocator> start;
00045
00046 typedef ::geometry_msgs::PoseStamped_<ContainerAllocator> _goal_type;
00047 ::geometry_msgs::PoseStamped_<ContainerAllocator> goal;
00048
00049
00050 private:
00051 static const char* __s_getDataType_() { return "navfn/MakeNavPlanRequest"; }
00052 public:
00053 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00054
00055 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00056
00057 private:
00058 static const char* __s_getMD5Sum_() { return "2fe3126bd5b2d56edd5005220333d4fd"; }
00059 public:
00060 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00061
00062 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00063
00064 private:
00065 static const char* __s_getServerMD5Sum_() { return "8ffef29bc8b086289124c16a8daa989d"; }
00066 public:
00067 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); }
00068
00069 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); }
00070
00071 private:
00072 static const char* __s_getMessageDefinition_() { return "geometry_msgs/PoseStamped start\n\
00073 geometry_msgs/PoseStamped goal\n\
00074 \n\
00075 ================================================================================\n\
00076 MSG: geometry_msgs/PoseStamped\n\
00077 # A Pose with reference coordinate frame and timestamp\n\
00078 Header header\n\
00079 Pose pose\n\
00080 \n\
00081 ================================================================================\n\
00082 MSG: std_msgs/Header\n\
00083 # Standard metadata for higher-level stamped data types.\n\
00084 # This is generally used to communicate timestamped data \n\
00085 # in a particular coordinate frame.\n\
00086 # \n\
00087 # sequence ID: consecutively increasing ID \n\
00088 uint32 seq\n\
00089 #Two-integer timestamp that is expressed as:\n\
00090 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00091 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00092 # time-handling sugar is provided by the client library\n\
00093 time stamp\n\
00094 #Frame this data is associated with\n\
00095 # 0: no frame\n\
00096 # 1: global frame\n\
00097 string frame_id\n\
00098 \n\
00099 ================================================================================\n\
00100 MSG: geometry_msgs/Pose\n\
00101 # A representation of pose in free space, composed of postion and orientation. \n\
00102 Point position\n\
00103 Quaternion orientation\n\
00104 \n\
00105 ================================================================================\n\
00106 MSG: geometry_msgs/Point\n\
00107 # This contains the position of a point in free space\n\
00108 float64 x\n\
00109 float64 y\n\
00110 float64 z\n\
00111 \n\
00112 ================================================================================\n\
00113 MSG: geometry_msgs/Quaternion\n\
00114 # This represents an orientation in free space in quaternion form.\n\
00115 \n\
00116 float64 x\n\
00117 float64 y\n\
00118 float64 z\n\
00119 float64 w\n\
00120 \n\
00121 "; }
00122 public:
00123 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00124
00125 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00126
00127 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00128 {
00129 ros::serialization::OStream stream(write_ptr, 1000000000);
00130 ros::serialization::serialize(stream, start);
00131 ros::serialization::serialize(stream, goal);
00132 return stream.getData();
00133 }
00134
00135 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00136 {
00137 ros::serialization::IStream stream(read_ptr, 1000000000);
00138 ros::serialization::deserialize(stream, start);
00139 ros::serialization::deserialize(stream, goal);
00140 return stream.getData();
00141 }
00142
00143 ROS_DEPRECATED virtual uint32_t serializationLength() const
00144 {
00145 uint32_t size = 0;
00146 size += ros::serialization::serializationLength(start);
00147 size += ros::serialization::serializationLength(goal);
00148 return size;
00149 }
00150
00151 typedef boost::shared_ptr< ::navfn::MakeNavPlanRequest_<ContainerAllocator> > Ptr;
00152 typedef boost::shared_ptr< ::navfn::MakeNavPlanRequest_<ContainerAllocator> const> ConstPtr;
00153 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00154 };
00155 typedef ::navfn::MakeNavPlanRequest_<std::allocator<void> > MakeNavPlanRequest;
00156
00157 typedef boost::shared_ptr< ::navfn::MakeNavPlanRequest> MakeNavPlanRequestPtr;
00158 typedef boost::shared_ptr< ::navfn::MakeNavPlanRequest const> MakeNavPlanRequestConstPtr;
00159
00160
00161 template <class ContainerAllocator>
00162 struct MakeNavPlanResponse_ {
00163 typedef MakeNavPlanResponse_<ContainerAllocator> Type;
00164
00165 MakeNavPlanResponse_()
00166 : plan_found(0)
00167 , error_message()
00168 , path()
00169 {
00170 }
00171
00172 MakeNavPlanResponse_(const ContainerAllocator& _alloc)
00173 : plan_found(0)
00174 , error_message(_alloc)
00175 , path(_alloc)
00176 {
00177 }
00178
00179 typedef uint8_t _plan_found_type;
00180 uint8_t plan_found;
00181
00182 typedef std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > _error_message_type;
00183 std::basic_string<char, std::char_traits<char>, typename ContainerAllocator::template rebind<char>::other > error_message;
00184
00185 typedef std::vector< ::geometry_msgs::PoseStamped_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::other > _path_type;
00186 std::vector< ::geometry_msgs::PoseStamped_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::other > path;
00187
00188
00189 ROS_DEPRECATED uint32_t get_path_size() const { return (uint32_t)path.size(); }
00190 ROS_DEPRECATED void set_path_size(uint32_t size) { path.resize((size_t)size); }
00191 ROS_DEPRECATED void get_path_vec(std::vector< ::geometry_msgs::PoseStamped_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::other > & vec) const { vec = this->path; }
00192 ROS_DEPRECATED void set_path_vec(const std::vector< ::geometry_msgs::PoseStamped_<ContainerAllocator> , typename ContainerAllocator::template rebind< ::geometry_msgs::PoseStamped_<ContainerAllocator> >::other > & vec) { this->path = vec; }
00193 private:
00194 static const char* __s_getDataType_() { return "navfn/MakeNavPlanResponse"; }
00195 public:
00196 ROS_DEPRECATED static const std::string __s_getDataType() { return __s_getDataType_(); }
00197
00198 ROS_DEPRECATED const std::string __getDataType() const { return __s_getDataType_(); }
00199
00200 private:
00201 static const char* __s_getMD5Sum_() { return "8b8ed7edf1b237dc9ddda8c8ffed5d3a"; }
00202 public:
00203 ROS_DEPRECATED static const std::string __s_getMD5Sum() { return __s_getMD5Sum_(); }
00204
00205 ROS_DEPRECATED const std::string __getMD5Sum() const { return __s_getMD5Sum_(); }
00206
00207 private:
00208 static const char* __s_getServerMD5Sum_() { return "8ffef29bc8b086289124c16a8daa989d"; }
00209 public:
00210 ROS_DEPRECATED static const std::string __s_getServerMD5Sum() { return __s_getServerMD5Sum_(); }
00211
00212 ROS_DEPRECATED const std::string __getServerMD5Sum() const { return __s_getServerMD5Sum_(); }
00213
00214 private:
00215 static const char* __s_getMessageDefinition_() { return "\n\
00216 uint8 plan_found\n\
00217 string error_message\n\
00218 \n\
00219 \n\
00220 geometry_msgs/PoseStamped[] path\n\
00221 \n\
00222 \n\
00223 ================================================================================\n\
00224 MSG: geometry_msgs/PoseStamped\n\
00225 # A Pose with reference coordinate frame and timestamp\n\
00226 Header header\n\
00227 Pose pose\n\
00228 \n\
00229 ================================================================================\n\
00230 MSG: std_msgs/Header\n\
00231 # Standard metadata for higher-level stamped data types.\n\
00232 # This is generally used to communicate timestamped data \n\
00233 # in a particular coordinate frame.\n\
00234 # \n\
00235 # sequence ID: consecutively increasing ID \n\
00236 uint32 seq\n\
00237 #Two-integer timestamp that is expressed as:\n\
00238 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00239 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00240 # time-handling sugar is provided by the client library\n\
00241 time stamp\n\
00242 #Frame this data is associated with\n\
00243 # 0: no frame\n\
00244 # 1: global frame\n\
00245 string frame_id\n\
00246 \n\
00247 ================================================================================\n\
00248 MSG: geometry_msgs/Pose\n\
00249 # A representation of pose in free space, composed of postion and orientation. \n\
00250 Point position\n\
00251 Quaternion orientation\n\
00252 \n\
00253 ================================================================================\n\
00254 MSG: geometry_msgs/Point\n\
00255 # This contains the position of a point in free space\n\
00256 float64 x\n\
00257 float64 y\n\
00258 float64 z\n\
00259 \n\
00260 ================================================================================\n\
00261 MSG: geometry_msgs/Quaternion\n\
00262 # This represents an orientation in free space in quaternion form.\n\
00263 \n\
00264 float64 x\n\
00265 float64 y\n\
00266 float64 z\n\
00267 float64 w\n\
00268 \n\
00269 "; }
00270 public:
00271 ROS_DEPRECATED static const std::string __s_getMessageDefinition() { return __s_getMessageDefinition_(); }
00272
00273 ROS_DEPRECATED const std::string __getMessageDefinition() const { return __s_getMessageDefinition_(); }
00274
00275 ROS_DEPRECATED virtual uint8_t *serialize(uint8_t *write_ptr, uint32_t seq) const
00276 {
00277 ros::serialization::OStream stream(write_ptr, 1000000000);
00278 ros::serialization::serialize(stream, plan_found);
00279 ros::serialization::serialize(stream, error_message);
00280 ros::serialization::serialize(stream, path);
00281 return stream.getData();
00282 }
00283
00284 ROS_DEPRECATED virtual uint8_t *deserialize(uint8_t *read_ptr)
00285 {
00286 ros::serialization::IStream stream(read_ptr, 1000000000);
00287 ros::serialization::deserialize(stream, plan_found);
00288 ros::serialization::deserialize(stream, error_message);
00289 ros::serialization::deserialize(stream, path);
00290 return stream.getData();
00291 }
00292
00293 ROS_DEPRECATED virtual uint32_t serializationLength() const
00294 {
00295 uint32_t size = 0;
00296 size += ros::serialization::serializationLength(plan_found);
00297 size += ros::serialization::serializationLength(error_message);
00298 size += ros::serialization::serializationLength(path);
00299 return size;
00300 }
00301
00302 typedef boost::shared_ptr< ::navfn::MakeNavPlanResponse_<ContainerAllocator> > Ptr;
00303 typedef boost::shared_ptr< ::navfn::MakeNavPlanResponse_<ContainerAllocator> const> ConstPtr;
00304 boost::shared_ptr<std::map<std::string, std::string> > __connection_header;
00305 };
00306 typedef ::navfn::MakeNavPlanResponse_<std::allocator<void> > MakeNavPlanResponse;
00307
00308 typedef boost::shared_ptr< ::navfn::MakeNavPlanResponse> MakeNavPlanResponsePtr;
00309 typedef boost::shared_ptr< ::navfn::MakeNavPlanResponse const> MakeNavPlanResponseConstPtr;
00310
00311 struct MakeNavPlan
00312 {
00313
00314 typedef MakeNavPlanRequest Request;
00315 typedef MakeNavPlanResponse Response;
00316 Request request;
00317 Response response;
00318
00319 typedef Request RequestType;
00320 typedef Response ResponseType;
00321 };
00322 }
00323
00324 namespace ros
00325 {
00326 namespace message_traits
00327 {
00328 template<class ContainerAllocator> struct IsMessage< ::navfn::MakeNavPlanRequest_<ContainerAllocator> > : public TrueType {};
00329 template<class ContainerAllocator> struct IsMessage< ::navfn::MakeNavPlanRequest_<ContainerAllocator> const> : public TrueType {};
00330 template<class ContainerAllocator>
00331 struct MD5Sum< ::navfn::MakeNavPlanRequest_<ContainerAllocator> > {
00332 static const char* value()
00333 {
00334 return "2fe3126bd5b2d56edd5005220333d4fd";
00335 }
00336
00337 static const char* value(const ::navfn::MakeNavPlanRequest_<ContainerAllocator> &) { return value(); }
00338 static const uint64_t static_value1 = 0x2fe3126bd5b2d56eULL;
00339 static const uint64_t static_value2 = 0xdd5005220333d4fdULL;
00340 };
00341
00342 template<class ContainerAllocator>
00343 struct DataType< ::navfn::MakeNavPlanRequest_<ContainerAllocator> > {
00344 static const char* value()
00345 {
00346 return "navfn/MakeNavPlanRequest";
00347 }
00348
00349 static const char* value(const ::navfn::MakeNavPlanRequest_<ContainerAllocator> &) { return value(); }
00350 };
00351
00352 template<class ContainerAllocator>
00353 struct Definition< ::navfn::MakeNavPlanRequest_<ContainerAllocator> > {
00354 static const char* value()
00355 {
00356 return "geometry_msgs/PoseStamped start\n\
00357 geometry_msgs/PoseStamped goal\n\
00358 \n\
00359 ================================================================================\n\
00360 MSG: geometry_msgs/PoseStamped\n\
00361 # A Pose with reference coordinate frame and timestamp\n\
00362 Header header\n\
00363 Pose pose\n\
00364 \n\
00365 ================================================================================\n\
00366 MSG: std_msgs/Header\n\
00367 # Standard metadata for higher-level stamped data types.\n\
00368 # This is generally used to communicate timestamped data \n\
00369 # in a particular coordinate frame.\n\
00370 # \n\
00371 # sequence ID: consecutively increasing ID \n\
00372 uint32 seq\n\
00373 #Two-integer timestamp that is expressed as:\n\
00374 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00375 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00376 # time-handling sugar is provided by the client library\n\
00377 time stamp\n\
00378 #Frame this data is associated with\n\
00379 # 0: no frame\n\
00380 # 1: global frame\n\
00381 string frame_id\n\
00382 \n\
00383 ================================================================================\n\
00384 MSG: geometry_msgs/Pose\n\
00385 # A representation of pose in free space, composed of postion and orientation. \n\
00386 Point position\n\
00387 Quaternion orientation\n\
00388 \n\
00389 ================================================================================\n\
00390 MSG: geometry_msgs/Point\n\
00391 # This contains the position of a point in free space\n\
00392 float64 x\n\
00393 float64 y\n\
00394 float64 z\n\
00395 \n\
00396 ================================================================================\n\
00397 MSG: geometry_msgs/Quaternion\n\
00398 # This represents an orientation in free space in quaternion form.\n\
00399 \n\
00400 float64 x\n\
00401 float64 y\n\
00402 float64 z\n\
00403 float64 w\n\
00404 \n\
00405 ";
00406 }
00407
00408 static const char* value(const ::navfn::MakeNavPlanRequest_<ContainerAllocator> &) { return value(); }
00409 };
00410
00411 }
00412 }
00413
00414
00415 namespace ros
00416 {
00417 namespace message_traits
00418 {
00419 template<class ContainerAllocator> struct IsMessage< ::navfn::MakeNavPlanResponse_<ContainerAllocator> > : public TrueType {};
00420 template<class ContainerAllocator> struct IsMessage< ::navfn::MakeNavPlanResponse_<ContainerAllocator> const> : public TrueType {};
00421 template<class ContainerAllocator>
00422 struct MD5Sum< ::navfn::MakeNavPlanResponse_<ContainerAllocator> > {
00423 static const char* value()
00424 {
00425 return "8b8ed7edf1b237dc9ddda8c8ffed5d3a";
00426 }
00427
00428 static const char* value(const ::navfn::MakeNavPlanResponse_<ContainerAllocator> &) { return value(); }
00429 static const uint64_t static_value1 = 0x8b8ed7edf1b237dcULL;
00430 static const uint64_t static_value2 = 0x9ddda8c8ffed5d3aULL;
00431 };
00432
00433 template<class ContainerAllocator>
00434 struct DataType< ::navfn::MakeNavPlanResponse_<ContainerAllocator> > {
00435 static const char* value()
00436 {
00437 return "navfn/MakeNavPlanResponse";
00438 }
00439
00440 static const char* value(const ::navfn::MakeNavPlanResponse_<ContainerAllocator> &) { return value(); }
00441 };
00442
00443 template<class ContainerAllocator>
00444 struct Definition< ::navfn::MakeNavPlanResponse_<ContainerAllocator> > {
00445 static const char* value()
00446 {
00447 return "\n\
00448 uint8 plan_found\n\
00449 string error_message\n\
00450 \n\
00451 \n\
00452 geometry_msgs/PoseStamped[] path\n\
00453 \n\
00454 \n\
00455 ================================================================================\n\
00456 MSG: geometry_msgs/PoseStamped\n\
00457 # A Pose with reference coordinate frame and timestamp\n\
00458 Header header\n\
00459 Pose pose\n\
00460 \n\
00461 ================================================================================\n\
00462 MSG: std_msgs/Header\n\
00463 # Standard metadata for higher-level stamped data types.\n\
00464 # This is generally used to communicate timestamped data \n\
00465 # in a particular coordinate frame.\n\
00466 # \n\
00467 # sequence ID: consecutively increasing ID \n\
00468 uint32 seq\n\
00469 #Two-integer timestamp that is expressed as:\n\
00470 # * stamp.secs: seconds (stamp_secs) since epoch\n\
00471 # * stamp.nsecs: nanoseconds since stamp_secs\n\
00472 # time-handling sugar is provided by the client library\n\
00473 time stamp\n\
00474 #Frame this data is associated with\n\
00475 # 0: no frame\n\
00476 # 1: global frame\n\
00477 string frame_id\n\
00478 \n\
00479 ================================================================================\n\
00480 MSG: geometry_msgs/Pose\n\
00481 # A representation of pose in free space, composed of postion and orientation. \n\
00482 Point position\n\
00483 Quaternion orientation\n\
00484 \n\
00485 ================================================================================\n\
00486 MSG: geometry_msgs/Point\n\
00487 # This contains the position of a point in free space\n\
00488 float64 x\n\
00489 float64 y\n\
00490 float64 z\n\
00491 \n\
00492 ================================================================================\n\
00493 MSG: geometry_msgs/Quaternion\n\
00494 # This represents an orientation in free space in quaternion form.\n\
00495 \n\
00496 float64 x\n\
00497 float64 y\n\
00498 float64 z\n\
00499 float64 w\n\
00500 \n\
00501 ";
00502 }
00503
00504 static const char* value(const ::navfn::MakeNavPlanResponse_<ContainerAllocator> &) { return value(); }
00505 };
00506
00507 }
00508 }
00509
00510 namespace ros
00511 {
00512 namespace serialization
00513 {
00514
00515 template<class ContainerAllocator> struct Serializer< ::navfn::MakeNavPlanRequest_<ContainerAllocator> >
00516 {
00517 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00518 {
00519 stream.next(m.start);
00520 stream.next(m.goal);
00521 }
00522
00523 ROS_DECLARE_ALLINONE_SERIALIZER;
00524 };
00525 }
00526 }
00527
00528
00529 namespace ros
00530 {
00531 namespace serialization
00532 {
00533
00534 template<class ContainerAllocator> struct Serializer< ::navfn::MakeNavPlanResponse_<ContainerAllocator> >
00535 {
00536 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00537 {
00538 stream.next(m.plan_found);
00539 stream.next(m.error_message);
00540 stream.next(m.path);
00541 }
00542
00543 ROS_DECLARE_ALLINONE_SERIALIZER;
00544 };
00545 }
00546 }
00547
00548 namespace ros
00549 {
00550 namespace service_traits
00551 {
00552 template<>
00553 struct MD5Sum<navfn::MakeNavPlan> {
00554 static const char* value()
00555 {
00556 return "8ffef29bc8b086289124c16a8daa989d";
00557 }
00558
00559 static const char* value(const navfn::MakeNavPlan&) { return value(); }
00560 };
00561
00562 template<>
00563 struct DataType<navfn::MakeNavPlan> {
00564 static const char* value()
00565 {
00566 return "navfn/MakeNavPlan";
00567 }
00568
00569 static const char* value(const navfn::MakeNavPlan&) { return value(); }
00570 };
00571
00572 template<class ContainerAllocator>
00573 struct MD5Sum<navfn::MakeNavPlanRequest_<ContainerAllocator> > {
00574 static const char* value()
00575 {
00576 return "8ffef29bc8b086289124c16a8daa989d";
00577 }
00578
00579 static const char* value(const navfn::MakeNavPlanRequest_<ContainerAllocator> &) { return value(); }
00580 };
00581
00582 template<class ContainerAllocator>
00583 struct DataType<navfn::MakeNavPlanRequest_<ContainerAllocator> > {
00584 static const char* value()
00585 {
00586 return "navfn/MakeNavPlan";
00587 }
00588
00589 static const char* value(const navfn::MakeNavPlanRequest_<ContainerAllocator> &) { return value(); }
00590 };
00591
00592 template<class ContainerAllocator>
00593 struct MD5Sum<navfn::MakeNavPlanResponse_<ContainerAllocator> > {
00594 static const char* value()
00595 {
00596 return "8ffef29bc8b086289124c16a8daa989d";
00597 }
00598
00599 static const char* value(const navfn::MakeNavPlanResponse_<ContainerAllocator> &) { return value(); }
00600 };
00601
00602 template<class ContainerAllocator>
00603 struct DataType<navfn::MakeNavPlanResponse_<ContainerAllocator> > {
00604 static const char* value()
00605 {
00606 return "navfn/MakeNavPlan";
00607 }
00608
00609 static const char* value(const navfn::MakeNavPlanResponse_<ContainerAllocator> &) { return value(); }
00610 };
00611
00612 }
00613 }
00614
00615 #endif // NAVFN_SERVICE_MAKENAVPLAN_H
00616