From 6aba4109c334763c73069c2f1eb7c86ece7e02a4 Mon Sep 17 00:00:00 2001 From: Christophe Bedard Date: Thu, 6 Jun 2019 09:25:16 +0200 Subject: [PATCH] Add start time to basic callback analysis --- analysis/ros_processor.py | 4 ++-- analysis/to_pandas.py | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/analysis/ros_processor.py b/analysis/ros_processor.py index cf69b6f..17e436c 100644 --- a/analysis/ros_processor.py +++ b/analysis/ros_processor.py @@ -22,7 +22,7 @@ class RosProcessor(): # TODO add other stuff # Instances of callback_start for eventual matching self._callback_starts = {} - # Callback instances, callback_address: end - start + # Callback instances, callback_address: (end - start, start) self.callbacks_instances = {} # Link a ROS trace event to its corresponding handling method @@ -72,4 +72,4 @@ class RosProcessor(): 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) + self.callbacks_instances[callback_addr].append((duration, start_timestamp)) diff --git a/analysis/to_pandas.py b/analysis/to_pandas.py index 9806759..2496913 100644 --- a/analysis/to_pandas.py +++ b/analysis/to_pandas.py @@ -6,12 +6,15 @@ from .ros_processor import RosProcessor def callback_durations_to_df(ros_processor): callback_addresses = [] durations = [] + start_timestamps = [] for addr in ros_processor.callbacks_instances: - for d in ros_processor.callbacks_instances[addr]: + for duration, start in ros_processor.callbacks_instances[addr]: callback_addresses.append(addr) - durations.append(d) + durations.append(duration) + start_timestamps.append(start) return pd.DataFrame(data={ 'callback_address': callback_addresses, 'duration': durations, + 'start_timestamp': start_timestamps })