Skip to content

Changes

Summary

  1. ros2: add messages view (details)
  2. ros2: add action for hiding internal objects in ROS 2 views (details)
  3. ros2: add causal message links analysis (details)
  4. ros2: add message flow analysis (details)
Commit 764902929a1acac19b317e59da6ebbc2b1d3b79a by Christophe Bedard
ros2: add messages view

This adds a messages analysis and view, showing timer & subscription
callbacks as well as message publications and receptions over time for
each node. Furthermore, arrows provide links between subscription or
timer callbacks and message publications, as well as between message
publications and the resulting subscription callback(s).

Screenshot: https://i.imgur.com/y38e5rQ.png
The view above is the messages view, and the one below is the executor
view.

Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com>
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
Change-Id: Ifc58628bef24fb6cd90289dc0010a9d3275b4097
Reviewed-on: https://git.eclipse.org/r/c/tracecompass.incubator/org.eclipse.tracecompass.incubator/+/192547
Tested-by: Trace Compass Bot <tracecompass-bot@eclipse.org>
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/views/messages/Ros2MessagesView.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/IRos2ModelProvider.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messages/Ros2TakeTimeGraphState.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/META-INF/MANIFEST.MF (diff)
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/executor/Ros2ExecutorStateInstance.java (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messages/Ros2PubInstance.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messages/Ros2TakeInstance.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messages/Ros2PubTimeGraphState.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/plugin.properties (diff)
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/Activator.java (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messages/Ros2SubCallbackInstance.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messages/Ros2Instance.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messages/Ros2MessageTimestamp.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.properties (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messages/Ros2CallbackPublicationInstance.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/views/messages/Ros2MessagesPresentationProvider.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messages/Ros2MessagesUtil.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messages/Ros2CallbackTimeGraphState.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messages/Ros2MessageTransportInstance.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/plugin.xml (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/IRos2Model.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/views/Ros2ObjectTreeLabelProvider.java (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messages/Ros2MessagesAnalysis.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messages/Ros2MessagesStateProvider.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messages/Ros2NodeTimeGraphState.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messages/Ros2MessagesDataProviderFactory.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.xml (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messages/Ros2TimerCallbackInstance.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messages/Ros2CallbackInstance.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messages/Ros2MessagesDataProvider.java
Commit a57a4aaf4edf7152e1d9e00605dc3aa09cfb823e by Christophe Bedard
ros2: add action for hiding internal objects in ROS 2 views

This allows hiding internal publishers or subscriptions that are mostly
internal to ROS 2. It thus allows simplifying the views a bit.

Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com>
Change-Id: Id32125292c5e16cc6cf22c0ef5924dc3b1caef51
Reviewed-on: https://git.eclipse.org/r/c/tracecompass.incubator/org.eclipse.tracecompass.incubator/+/192548
Tested-by: Trace Compass Bot <tracecompass-bot@eclipse.org>
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.ui/icons/elcl16/hide_internal.gif
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/views/Ros2HideInternalObjectsAction.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/views/messages/Ros2MessagesView.java (diff)
Commit 5745f169c7c27d736d2ffe15255ec5a577cf9a2b by Christophe Bedard
ros2: add causal message links analysis

This collects user-level annotation data for causal links between
publishers and subscriptions. This can then later be used by other
analyses to find causal links between specific messages.

Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com>
Change-Id: I8e91bf7640b5e59e99b94448fe2b8c5d6debc446
Reviewed-on: https://git.eclipse.org/r/c/tracecompass.incubator/org.eclipse.tracecompass.incubator/+/192550
Tested-by: Trace Compass Bot <tracecompass-bot@eclipse.org>
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messagelinks/Ros2MessageCausalLinksAnalysis.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messagelinks/Ros2MessageCausalLinkType.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/META-INF/MANIFEST.MF (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messagelinks/Ros2MessageCausalLink.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/trace/layout/IRos2EventLayout.java (diff)
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/plugin.properties (diff)
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/trace/layout/Ros2RollingEventLayout.java (diff)
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/plugin.xml (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messagelinks/Ros2MessageCausalLinksModel.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messagelinks/Ros2MessageCausalLinksStateProvider.java
Commit 475eb7b470890495022654751ff8b36b139ceeed by Christophe Bedard
ros2: add message flow analysis

This adds a message flow analysis that can be triggered by selecting a
time graph segment in the messages view and clicking on the "follow"
action. The message flow analysis then builds a graph of the flow of the
message across the traced ROS 2 system, both forwards and backwards.

The result is shown in the message flow view, which is similar to the
messages view, but only showing what is part of the message's flow.

Screenshot: https://i.imgur.com/gZsHsxi.png
The view above is the messages view, and the view below is the message
flow view, showing the flow of the selected message, which was at the
start of the system's computation graph.

Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com>
Signed-off-by: Christophe Bedard <christophe.bedard@apex.ai>
Change-Id: I0deb1b8a1ff5c7e4c925c968d373d2488c95c1d5
Reviewed-on: https://git.eclipse.org/r/c/tracecompass.incubator/org.eclipse.tracecompass.incubator/+/192551
Tested-by: Trace Compass Bot <tracecompass-bot@eclipse.org>
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/META-INF/MANIFEST.MF (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messageflow/Ros2MessageFlowDataProviderFactory.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/Ros2ModelUtils.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.xml (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2WaitMessageFlowSegment.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/views/messages/Ros2MessagesView.java (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2MessageFlowBuildInfo.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2FlowTargetInfo.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/IRos2MessageFlowVisitor.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2CallbackPubMessageFlowSegment.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2TransportMessageFlowSegment.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.properties (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/actions/Ros2FollowMessageAction.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2MessageFlowBuilder.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.ui/icons/elcl16/follow_message.gif
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/views/messageflow/Ros2MessageFlowView.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/plugin.properties (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2MessageFlowSegment.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/messageflow/Ros2MessageFlowParameterProvider.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2SubCallbackMessageFlowSegment.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messageflow/Ros2MessageFlowDataProvider.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2MessageFlowModel.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/analysis/messageflow/Ros2MessageFlowAnalysis.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2FlowTargetType.java
The file was modified rcp/org.eclipse.tracecompass.incubator.rcp.product/tracing.incubator.product (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2TimerCallbackMessageFlowSegment.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/signals/Ros2FlowItemSelectedSignal.java
The file was modified tracetypes/org.eclipse.tracecompass.incubator.ros2.core/plugin.xml (diff)
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/views/messageflow/Ros2MessageFlowPresentationProvider.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2MessageFlowTraverser.java
The file was addedtracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/model/messageflow/Ros2PublicationMessageFlowSegment.java