Add handling for services, clients, and timers

This commit is contained in:
Christophe Bedard 2019-06-13 15:26:21 +02:00
parent 6a8843f0f4
commit 12c2c7bad5
2 changed files with 38 additions and 22 deletions

View file

@ -22,10 +22,12 @@ class DataModel():
self._publishers.set_index(['publisher_handle'], inplace=True, drop=True)
self._subscriptions = pd.DataFrame(columns=['subscription_handle', 'timestamp', 'node_handle', 'rmw_handle', 'topic_name', 'depth'])
self._subscriptions.set_index(['subscription_handle'], inplace=True, drop=True)
self._services = pd.DataFrame(columns=[])
self._clients = pd.DataFrame(columns=[])
self._timers = pd.DataFrame(columns=[])
self._services = pd.DataFrame(columns=['service_handle', 'timestamp', 'node_handle', 'rmw_handle', 'service_name'])
self._services.set_index(['service_handle'], inplace=True, drop=True)
self._clients = pd.DataFrame(columns=['client_handle', 'timestamp', 'node_handle', 'rmw_handle', 'service_name'])
self._clients.set_index(['client_handle'], inplace=True, drop=True)
self._timers = pd.DataFrame(columns=['timer_handle', 'timestamp', 'period'])
self._timers.set_index(['timer_handle'], inplace=True, drop=True)
self._callback_objects = pd.DataFrame(columns=['handle', 'timestamp', 'callback_object'])
self._callback_objects.set_index(['handle'], inplace=True, drop=True)
@ -47,6 +49,15 @@ class DataModel():
def add_subscription(self, subscription_handle, timestamp, node_handle, rmw_handle, topic_name, depth):
self._subscriptions.loc[subscription_handle] = [timestamp, node_handle, rmw_handle, topic_name, depth]
def add_service(self, service_handle, timestamp, node_handle, rmw_handle, service_name):
self._services.loc[service_handle] = [timestamp, node_handle, rmw_handle, service_name]
def add_client(self, client_handle, timestamp, node_handle, rmw_handle, service_name):
self._clients.loc[client_handle] = [timestamp, node_handle, rmw_handle, service_name]
def add_timer(self, timer_handle, timestamp, period):
self._timers.loc[timer_handle] = [timestamp, period]
def add_callback_object(self, handle, timestamp, callback_object):
self._callback_objects.loc[handle] = [timestamp, callback_object]

View file

@ -111,40 +111,45 @@ class RosProcessor(EventHandler):
self.__handle_callback_end(event, metadata)
def _handle_rcl_service_init(self, event, metadata):
# TODO
pass
service_handle = get_field(event, 'service_handle')
node_handle = get_field(event, 'node_handle')
rmw_handle = get_field(event, 'rmw_service_handle')
service_name = get_field(event, 'service_name')
self._data.add_service(service_handle, metadata.timestamp, node_handle, rmw_handle, service_name)
def _handle_rclcpp_service_callback_added(self, event, metadata):
# TODO
pass
service_handle = get_field(event, 'service_handle')
callback_object = get_field(event, 'callback')
self._data.add_callback_object(service_handle, metadata.timestamp, callback_object)
def _handle_rclcpp_service_callback_start(self, event, metadata):
# TODO
pass
self.__handle_callback_start(event, metadata)
def _handle_rclcpp_service_callback_end(self, event, metadata):
# TODO
pass
self.__handle_callback_end(event, metadata)
def _handle_rcl_client_init(self, event, metadata):
# TODO
pass
client_handle = get_field(event, 'client_handle')
node_handle = get_field(event, 'node_handle')
rmw_handle = get_field(event, 'rmw_client_handle')
service_name = get_field(event, 'service_name')
self._data.add_client(client_handle, metadata.timestamp, node_handle, rmw_handle, service_name)
def _handle_rcl_timer_init(self, event, metadata):
# TODO
pass
timer_handle = get_field(event, 'timer_handle')
period = get_field(event, 'period')
self._data.add_timer(timer_handle, metadata.timestamp, period)
def _handle_rclcpp_timer_callback_added(self, event, metadata):
# TODO
pass
timer_handle = get_field(event, 'timer_handle')
callback_object = get_field(event, 'callback')
self._data.add_callback_object(timer_handle, metadata.timestamp, callback_object)
def _handle_rclcpp_timer_callback_start(self, event, metadata):
# TODO
pass
self.__handle_callback_start(event, metadata)
def _handle_rclcpp_timer_callback_end(self, event, metadata):
# TODO
pass
self.__handle_callback_end(event, metadata)
def _handle_rclcpp_callback_register(self, event, metadata):
callback_object = get_field(event, 'callback')