commit | a6008d39e73f6a3d2bc0c9c8eab5edeeb7e94832 | [log] [tgz] |
---|---|---|
author | Christophe Bedard <bedard.christophe@gmail.com> | Mon Apr 15 23:52:16 2019 -0400 |
committer | Christophe Bedard <bedard.christophe@gmail.com> | Thu Apr 25 16:52:06 2019 -0400 |
tree | c02085f5278bf8d4008fd653628701b398af0dbd | |
parent | 3b58ef4ffabfd9df2ecc612eabf942da7a241048 [diff] |
ros: add message flow analysis From the ROS queues view, the user can select a message from a queue, which will trigger the message flow analysis. This analysis computes the path of that message through ROS nodes, including pub/sub queues and callbacks. It depends on three analyses: 1. (Existing) queues analysis, for all the information about the state of queues and callbacks. 2. Connections model, which provides a list of ROS connections (e.g. pub/sub) between nodes. Note: services are not supported yet. 3. Messages transport analysis, itself depending on the connections model. It uses this model along with a ROS-specific extension of TmfEventMatching to try to link every message that gets sent over the network (by a publisher) to a message that is received on the other side (by a subscriber) in order to build a flow graph. Its current limitations, which should eventually be addressed, are: 1. At this moment, it assumes that the flow graph is linear, i.e. one input message in a callback leads to, at most, one published message. 2. It currently only builds a graph for the selected message, and only builds it going forward. Eventually, this should be used/extended to create a ROS-aware critical path analysis. Change-Id: I2effd8d74143f5431b713cb034119746fa7708b5 Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com> Reviewed-on: https://git.eclipse.org/r/140644 Tested-by: CI Bot Reviewed-by: Genevieve Bastien <gbastien+lttng@versatic.net>
This source tree contains the source code for Trace Compass Incubator plugins.
This project is an incubator which aims at rapid availability of new features and prototypes, to provide new functionnalities to end users and get feedback from them during the development process. As such, code style and design architecture will not be looked at too much during reviews, though some advices and ideas can be discussed. The features have to work as expected though and not break anything in Trace Compass.
Add unit tests: CI will be run on every patch on gerrit, so having unit tests ensures that a patch does not break anything somewhere else. Also, these plugins are work in progress. Having unit tests makes it easier to manipulate code structure and algorithms by knowing the expected results. Tests need to be maintained, but have more benefits than trouble.
There is no release, so no API. Plugins may use the other incubation features at their own risk.
The incubator is an Eclipse project so code will be verified to make sure it can be distributed by Eclipse. Committers are responsible to ensure the IP due diligence is met with every patch submitted.
When the code base of some feature gets more stable and mature, it may be ported to the main Trace Compass repository and only then will there be thorough code review and design discussion.
To set up the environment to build Trace Compass from within Eclipse, see this wiki page: http://wiki.eclipse.org/Trace_Compass/Development_Environment_Setup
Once the Trace Compass environment set, import the projects from this repository.
The Maven project build requires version 3.3 or later. It can be downloaded from http://maven.apache.org or from the package management system of your distro.
To build the project manually using Maven, simply run the following command from the top-level directory:
mvn clean install
The default command will compile and run the unit tests. Running the tests can take some time, to skip them you can append -Dmaven.test.skip=true
to the mvn
command:
mvn clean install -Dmaven.test.skip=true
The following Maven profiles and properties are defined in the build system. You can set them by using -P[profile name]
and -D[property name]=[value]
in mvn
commands.
-Pdeploy-update-site
Mainly for use on build servers. Copies the standard update site (for the Eclipse plugin installation) to the destination specified by -DsiteDestination=/absolute/path/to/destination
.