node_wrapper.h
Go to the documentation of this file.
1 #pragma once
2 
3 #ifdef ROS2 /**********************************************************************************************************/
5 #include "rclcpp/rclcpp.hpp"
6 #include "rclcpp_components/node_factory.hpp"
7 
8 #define CAMERA_NODE_WRAPPER(ClassName, _, __) \
9  rclcpp::init(argc, argv); \
10  rclcpp::executors::SingleThreadedExecutor exec; \
11  rclcpp::NodeOptions options; \
12  /* options.allow_undeclared_parameters(true); */ \
13  /* options.automatically_declare_parameters_from_overrides(true); */ \
14  \
15  auto node = std::make_shared<ensenso_camera::ClassName##Node>(options); \
16  \
17  exec.add_node(node); \
18  exec.spin(); \
19  \
20  rclcpp::shutdown();
21 
22 #define SINGLE_NODE_WRAPPER(ClassName, NodeName) \
23  rclcpp::init(argc, argv); \
24  rclcpp::spin(std::make_shared<ClassName>()); \
25  rclcpp::shutdown();
26 
27 #else /***ROS1*********************************************************************************************************/
28 #include <nodelet/loader.h>
29 #include <nodelet/nodelet.h>
30 #include <ros/ros.h>
31 #include <cstdlib>
32 
33 #define CAMERA_NODE_WRAPPER(ClassName, ClassNameCamelCase, NodeName) \
34  ros::init(argc, argv, "ensenso_camera_" #NodeName); \
35  \
36  nodelet::M_string remappings(ros::names::getRemappings()); \
37  nodelet::V_string arguments; \
38  for (int i = 0; i < argc; i++) \
39  { \
40  arguments.push_back(argv[i]); \
41  } \
42  \
43  nodelet::Loader nodelet; \
44  nodelet.load(ros::this_node::getName(), "ensenso_camera/" #ClassNameCamelCase "_node", remappings, arguments); \
45  \
46  ros::spin();
47 
48 #define SINGLE_NODE_WRAPPER(ClassName, NodeName) \
49  ros::init(argc, argv, NodeName); \
50  ClassName node; \
51  ros::spin();
52 
53 #endif
loader.h
ros.h
class_loader.hpp
nodelet.h


ensenso_camera
Author(s): Ensenso
autogenerated on Wed Apr 2 2025 02:37:46