Skip to content

Commit 06ea546

Browse files
committed
Add macro with also enable argument
1 parent 3818a47 commit 06ea546

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

hardware_interface/include/hardware_interface/introspection.hpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,28 @@ namespace hardware_interface
2424
constexpr char DEFAULT_REGISTRY_KEY[] = "ros2_control";
2525
constexpr char DEFAULT_INTROSPECTION_TOPIC[] = "~/introspection_data";
2626

27-
#define REGISTER_ROS2_CONTROL_INTROSPECTION(ID, ENTITY) \
27+
#define REGISTER_ROS2_CONTROL_INTROSPECTION_2_ARGS(ID, ENTITY) \
2828
REGISTER_ENTITY( \
2929
hardware_interface::DEFAULT_REGISTRY_KEY, get_name() + "." + ID, ENTITY, \
3030
&stats_registrations_, false)
31+
32+
#define REGISTER_ROS2_CONTROL_INTROSPECTION_3_ARGS(ID, ENTITY, ENABLE) \
33+
REGISTER_ENTITY( \
34+
hardware_interface::DEFAULT_REGISTRY_KEY, get_name() + "." + ID, ENTITY, \
35+
&stats_registrations_, ENABLE)
36+
37+
#ifndef GET_4TH_ARG
38+
#define GET_4TH_ARG(arg1, arg2, arg3, arg4, ...) arg4
39+
#endif
40+
41+
#define REGISTER_ROS2_CONTROL_INTROSPECTION_MACRO_CHOOSER(...) \
42+
GET_4TH_ARG( \
43+
__VA_ARGS__, REGISTER_ROS2_CONTROL_INTROSPECTION_3_ARGS, \
44+
REGISTER_ROS2_CONTROL_INTROSPECTION_2_ARGS)
45+
46+
#define REGISTER_ROS2_CONTROL_INTROSPECTION(...) \
47+
REGISTER_ROS2_CONTROL_INTROSPECTION_MACRO_CHOOSER(__VA_ARGS__)(__VA_ARGS__)
48+
3149
} // namespace hardware_interface
3250

3351
#endif // HARDWARE_INTERFACE__INTROSPECTION_HPP_

0 commit comments

Comments
 (0)