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 })