46 using NodeInterfaces = rclcpp::node_interfaces::NodeInterfaces<rclcpp::node_interfaces::NodeLoggingInterface, rclcpp::node_interfaces::NodeClockInterface>;
49 using Level = rclcpp::Logger::Level;
54 explicit Logger(NodeInterfaces node) : node_interfaces_(std::move(node))
66 node_interfaces_.get_node_logging_interface()->get_logger().set_level(level);
70#define MRS_LIB_GEN_LOG(level, LEVEL) \
74 template <typename... Args> \
75 void level(std::format_string<Args...> fmt, Args&&... args) \
77 RCLCPP_##LEVEL(get_logger(), "%s", std::format(fmt, std::forward<Args>(args)...).c_str()); \
80 MRS_LIB_GENERATE_FOR_ALL_LEVELS(MRS_LIB_GEN_LOG);
84#define MRS_LIB_GEN_LOG_ONCE(level, LEVEL) \
89 template <auto LocTag = MRS_LIB_LOGGER_UNIQUE_TAG, typename... Args> \
90 void level##_once(std::format_string<Args...> fmt, Args&&... args) \
92 RCLCPP_##LEVEL##_ONCE(get_logger(), "%s", std::format(fmt, std::forward<Args>(args)...).c_str()); \
95 MRS_LIB_GENERATE_FOR_ALL_LEVELS(MRS_LIB_GEN_LOG_ONCE);
96#undef MRS_LIB_GEN_LOG_ONCE
99#define MRS_LIB_GEN_LOG_THROTTLE(level, LEVEL) \
104 template <auto LocTag = MRS_LIB_LOGGER_UNIQUE_TAG, typename... Args> \
105 void level##_throttle(std::chrono::milliseconds duration, std::format_string<Args...> fmt, Args&&... args) \
107 RCLCPP_##LEVEL##_THROTTLE(get_logger(), get_clock(), duration.count(), "%s", std::format(fmt, std::forward<Args>(args)...).c_str()); \
110 MRS_LIB_GENERATE_FOR_ALL_LEVELS(MRS_LIB_GEN_LOG_THROTTLE);
111#undef MRS_LIB_GEN_LOG_THROTTLE
114 rclcpp::Logger get_logger()
116 return node_interfaces_.get_node_logging_interface()->get_logger();
119 rclcpp::Clock& get_clock()
121 return *node_interfaces_.get_node_clock_interface()->get_clock();
124 NodeInterfaces node_interfaces_;
All mrs_lib functions, classes, variables and definitions are contained in this namespace.
Definition attitude_converter.h:24