diff --git a/tracetools_analysis/analysis/ros_processor.py b/tracetools_analysis/analysis/ros_processor.py index df55715..829b9fc 100644 --- a/tracetools_analysis/analysis/ros_processor.py +++ b/tracetools_analysis/analysis/ros_processor.py @@ -26,10 +26,23 @@ class RosProcessor(EventHandler): def __init__(self): # Link a ROS trace event to its corresponding handling method handler_map = { + 'ros2:rcl_init': self._handle_rcl_init, + 'ros2:rcl_node_init': self._handle_rcl_node_init, + 'ros2:rcl_publisher_init': self._handle_rcl_publisher_init, 'ros2:rcl_subscription_init': self._handle_subscription_init, - 'ros2:rclcpp_subscription_callback_added': self._handle_subscription_callback_added, - 'ros2:rclcpp_subscription_callback_start': self._handle_subscription_callback_start, - 'ros2:rclcpp_subscription_callback_end': self._handle_subscription_callback_end, + 'ros2:rclcpp_subscription_callback_added': self._handle_rclcpp_subscription_callback_added, + 'ros2:rclcpp_subscription_callback_start': self._handle_rclcpp_subscription_callback_start, + 'ros2:rclcpp_subscription_callback_end': self._handle_rclcpp_subscription_callback_end, + 'ros2:rcl_service_init': self._handle_rcl_service_init, + 'ros2:rclcpp_service_callback_added': self._handle_rclcpp_service_callback_added, + 'ros2:rclcpp_service_callback_start': self._handle_rclcpp_service_callback_start, + 'ros2:rclcpp_service_callback_end': self._handle_rclcpp_service_callback_end, + 'ros2:rcl_client_init': self._handle_rcl_client_init, + 'ros2:rcl_timer_init': self._handle_rcl_timer_init, + 'ros2:rclcpp_timer_callback_added': self._handle_rclcpp_timer_callback_added, + 'ros2:rclcpp_timer_callback_start': self._handle_rclcpp_timer_callback_start, + 'ros2:rclcpp_timer_callback_end': self._handle_rclcpp_timer_callback_end, + 'ros2:rclcpp_callback_register': self._handle_rclcpp_callback_register, } super().__init__(handler_map) @@ -39,22 +52,74 @@ class RosProcessor(EventHandler): # Callback instances, callback_address: (end - start, start) self.callbacks_instances = {} + def _handle_rcl_init(self, event, metadata): + # TODO + pass + + def _handle_rcl_node_init(self, event, metadata): + # TODO + pass + + def _handle_rcl_publisher_init(self, event, metadata): + # TODO + pass + def _handle_subscription_init(self, event, metadata): # TODO pass - def _handle_subscription_callback_added(self, event, metadata): + def _handle_rclcpp_subscription_callback_added(self, event, metadata): # Add the callback address key and create an empty list callback_addr = get_field(event, 'callback') self.callbacks_instances[callback_addr] = [] - def _handle_subscription_callback_start(self, event, metadata): + def _handle_rclcpp_subscription_callback_start(self, event, metadata): callback_addr = get_field(event, 'callback') self._callback_starts[callback_addr] = metadata.timestamp - def _handle_subscription_callback_end(self, event, metadata): + def _handle_rclcpp_subscription_callback_end(self, event, metadata): callback_addr = get_field(event, 'callback') start_timestamp = self._callback_starts.pop(callback_addr, None) if start_timestamp is not None: duration = metadata.timestamp - start_timestamp self.callbacks_instances[callback_addr].append((duration, start_timestamp)) + + def _handle_rcl_service_init(self, event, metadata): + # TODO + pass + + def _handle_rclcpp_service_callback_added(self, event, metadata): + # TODO + pass + + def _handle_rclcpp_service_callback_start(self, event, metadata): + # TODO + pass + + def _handle_rclcpp_service_callback_end(self, event, metadata): + # TODO + pass + + def _handle_rcl_client_init(self, event, metadata): + # TODO + pass + + def _handle_rcl_timer_init(self, event, metadata): + # TODO + pass + + def _handle_rclcpp_timer_callback_added(self, event, metadata): + # TODO + pass + + def _handle_rclcpp_timer_callback_start(self, event, metadata): + # TODO + pass + + def _handle_rclcpp_timer_callback_end(self, event, metadata): + # TODO + pass + + def _handle_rclcpp_callback_register(self, event, metadata): + # TODO + pass