Skip to content

Commit

Permalink
Add DDS domain graph view (#196)
Browse files Browse the repository at this point in the history
* Initial empty commit

Signed-off-by: JesusPoderoso <[email protected]>

* Add tab view in chart layout (#192)

* Refs #19308: Add tab view in chart layout

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Update graph view name

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Close last tab would open New tab

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Add and delete tab buttons improvements

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Fix transition

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Cap max tabs to 15

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Fix view issue when first tab gets closed

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Fix ChartLayout view issue when resizing window

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Fix polish infinite loop

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Avoid tab dragging

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19308: Propagate fullScreen var changes

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>

* Domain graph view implementation (#200)

* Disable dragging elements out of their bounds

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: Implement domain graph view

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Improve domain view

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Adapt to new JSON and visual improvements

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Add arrows to connections

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Round elements

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Fix entities height

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Update tab name with view content

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Fix connections

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Add domain id selector for graph view

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Add Refresh button and refresh feature

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: Implement Monitor <---> Backend connection

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Establish connection

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Add try-catch in SyncBackendConnection call

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Catch Exception when no graph

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: Fix issues, visual bugs and improvements

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Fix communication arrows visual bugs

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Fix icons and text spacing in entity boxes

Signed-off-by: JesusPoderoso <[email protected]>

Refs: Remove vulcanexus blue from color palette

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Fix entity order generation to optimize resizing

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Add comments to QML code

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Improve backend calls

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Fix overlapping visual bugs

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Fix resizing with large alias

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Fix single topic (and no entities) data representation

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Fix tab issue with multiple domains

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Display domain info when navigating through different domain views in tabs

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19308: Display entity and topic data when clicked in the graph

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19513: Improve Domain ID Dialog values

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19513: Add metatraffic filter in the graph view

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Improve arrow drawing

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: Please linters

Signed-off-by: JesusPoderoso <[email protected]>

* Initial empty commit

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove unnecessary include

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove unnecessary eol ';'

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove 'magic numbers'

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19532: [ARS] Remove wheel displacement 'magic number'

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Simplify hidden scrollbar

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove unnecesary item

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Update status comparision to uppercase

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove unnecessary width conditions

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove unnecessary filling rect

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Fix comment

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove unnecessary recursive call

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Fix refresh domain info call

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove unnecessary stack anchoring

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove unnecessary 'z' ordering

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19532: [ARS] Remove unnecessary 'z' ordering

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: [ARS] Remove unnecessary load model calls

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: Reorder elements to fix tabs overlapping

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19532: Fix warning displayed when showing metatraffic

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19533: [ARS] Add parenthesys to conditional assignations

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19533: [ARS] Add error check in missing entities

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19533: [ARS] Remove unnecessary rect

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19533: [ARS] Add missing space

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19533: [ARS] Improve entities width management

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19533: Fix connections

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Improve comparasion conditions

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Run resize call only once

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Improve connection generation

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Remove unnecessary load model call

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Reduce amount of painting iterations

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Fix typo

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Remove unnecessary signal declaration

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Apply latest rev suggestions

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>

* Status layout with problems per entity (#204)

* Refs #19533: Add Status view to layout

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Include problem callback backend connection

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Sync with statistics backend to obtain StatusData

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Take the samples and prepare a json structure

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Display the problem data in status layout

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Improve arrows based on internal feedback

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Include external QMLTreeView module

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Include external QMLTreeView module and adapt the tree with the required mechanisms

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Adapt model to use roles

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Include missing information through roles in the UI

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Add status icon and homogenize fonts

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Add incompatible qos policies links to documentation compatibility rules

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Fix first click issue in status footer and remove dead code

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Add view problem filter functionality

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Display entity issues counter on its right

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Avoid problem model destruction to avoid error messages when app closed

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Catch entity dispose and remove entity problems from model

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Update icons

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Fix visual details

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Fix error counting

Signed-off-by: JesusPoderoso <[email protected]>

Refs #19533: Adapt changes

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19533: Improve disable view of chart layout button

Signed-off-by: JesusPoderoso <[email protected]>

* Fix mock build issue

Signed-off-by: JesusPoderoso <[email protected]>

* Fix visual details

Signed-off-by: JesusPoderoso <[email protected]>

* Display entity information when clicked in status layout

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19533: Fix warning visual issue

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19533: Add filter to status layout properly

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Fix topic filtering visual bugs

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Add load model check for empty filter

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Set Backend status references

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Delete debug comment

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Rename all problems to statuses

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Improve comments

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Minor sugestions

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Improve entity status assignments

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Add missing problem sample 'Liveliness changed'

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Improve error / warning counter update and update left panel info when problem reported

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Rename method

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] QML minor changes

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Improve graph connections section

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Fix style in the imported qml files

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Remove unnecessary dead code

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Remove unnecessary method

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Refactor tree model filtering

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Remove info dead code

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Improve StatusLayout.qml comments

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Improve pointers deletion

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Refactor model roles to use direct get methods

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ALRS] Rename 'copy' model method as 'filtered_copy'

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ALRS] Remove repeated description in problems

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ALRS] Rename domain graph public property entity id as 'domain_entity_id'

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ALRS] Improve status counter anchoring to avoid overlapping numbers and icons

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ALRS] Improve status sample kind usage

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ALRS] Treat entity status model status as StatusLevel instead of as boolean

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ALRS] Comment typo

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Improve entity info update when new status reported

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Remove unnecessary error check

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Get Status Level string from sources (backend)

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Fix visual bug with expand/collapse status layout icon

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Fix timer flow

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Add try-catch in get_status_data

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Fix timer

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: [ARS] Fix left panel focus

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>

* Domain graph & status layout documentation (#205)

* Refs #19743: Update documentation sections to include tabs, domain graph and status problems

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Include new images

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Update screenshots

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19743: Apply rev suggestions

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>

* Improve graph visual details (#209)

* Refs #19973: Fix topic lines below entities visual bug

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19973: Update Warning Icon to be more visible

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19973: Remove info panel refresh call when new status is reported

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19973: Improve arrows when related topic is not displayed

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19973: Fix glitch when filtering domain graph per topic

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19973: Apply rev suggestions

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19973: Fix identation

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19973: Fix Gif size to adapt resolution

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19973: Please uncrustify

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19973: Fix statistics backend StatusLevel references

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>

* Update loading graph gif (#213)

* Update loading graph gif

Signed-off-by: JesusPoderoso <[email protected]>

* Fix gif size

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>

* Add eProsima software icons to Fast DDS Monitor (#207)

* Add AMLIP icon and display in graph

Signed-off-by: JesusPoderoso <[email protected]>

* Add product icons

Signed-off-by: JesusPoderoso <[email protected]>

* Rename icons with backend names

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Update image names based on latest backend update

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Include app logos in png format

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Change .png logos to .svg logos

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Include logos in project resources

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Include logo in UI

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Update Panel behavior to allow section resize

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Update Domain Graph icon visibility to fix all alias width

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Fix logos and revert to .png format

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Apply rev suggestions

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Apply latest rev suggestions

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Apply latest rev suggestions

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19880: Please uncrustify

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>

* Include Fast DDS Monitor app ID while init monitor, and include new arguments in mocks  (#212)

* Refs #19865: Init monitor with proper app id

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19865: Fix errors in mocks

Signed-off-by: JesusPoderoso <[email protected]>

* Refs #19865: Please linters

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>

* Please linters

Signed-off-by: JesusPoderoso <[email protected]>

---------

Signed-off-by: JesusPoderoso <[email protected]>
Co-authored-by: JesusPoderoso <[email protected]>
Co-authored-by: Jesús Poderoso <[email protected]>
  • Loading branch information
3 people authored Dec 21, 2023
1 parent 7bdf2a5 commit 06254c7
Show file tree
Hide file tree
Showing 110 changed files with 6,831 additions and 73 deletions.
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,8 @@ set(PROJECT_HEADERS
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/statistics/EntityItem.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/SubListedListItem.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/SubListedListModel.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/tree/StatusTreeItem.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/tree/StatusTreeModel.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/tree/TreeItem.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/tree/TreeModel.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/statistics/DataChartBox.h
Expand Down Expand Up @@ -261,6 +263,8 @@ set(PROJECT_SOURCES_NO_MAIN
${PROJECT_SOURCE_DIR}/src/model/physical/ProcessModelItem.cpp
${PROJECT_SOURCE_DIR}/src/model/statistics/EntityItem.cpp
${PROJECT_SOURCE_DIR}/src/model/SubListedListModel.cpp
${PROJECT_SOURCE_DIR}/src/model/tree/StatusTreeItem.cpp
${PROJECT_SOURCE_DIR}/src/model/tree/StatusTreeModel.cpp
${PROJECT_SOURCE_DIR}/src/model/tree/TreeItem.cpp
${PROJECT_SOURCE_DIR}/src/model/tree/TreeModel.cpp
${PROJECT_SOURCE_DIR}/src/statistics/DataChartBox.cpp
Expand Down
Binary file added docs/rst/figures/screenshots/domain_graph.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rst/figures/screenshots/init-monitor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/rst/figures/screenshots/main_panel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/rst/figures/screenshots/problem.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/rst/figures/screenshots/problem_detail.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/rst/figures/screenshots/shapes_domain.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/rst/figures/screenshots/shapes_topic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 31 additions & 2 deletions docs/rst/user_manual/chart_panel_index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,42 @@
Main Panel
##########

In the central panel or *chart panel*, is where the data of the entities will be displayed.
The main feature of the *Fast DDS Monitor* application is to graphically display the data that is being monitored.
In the central panel, there is a tab section that allows multiple views, including a collapsed menu that reports the
possible problems that have been detected on the DDS entities.

The main feature of the *Fast DDS Monitor* application is to graphically display the data that is being monitored in
the *Chart View*.
DDS entities have associated different types of data (so-called *DataKind*) that could be visualize by configuring
a chart.
For example, it can be displayed the mean, median and standard deviation latency between two machines (*Hosts*) running
*Fast DDS* applications for the period of two hours in intervals of ten minutes.

The *Fast DDS Monitor* can also show the detected entities in a graph.
The *Domain view* would filter all entities that belong to the same DDS Domain, and represent the inheritance of the
physical and DDS entities (the DataWriters or DataReaders that belong to a DomainParticipant, the
DomainParticipants that run on the same process, the processes that a user is running, and the users that are on a
host).
Those relations are represented in different boxes that contain the sub-category of entities.
Also, the connections between different endpoints that are publishing or subscribed to a Topic are represented with
arrows.
Those arrows would start from the DataWriter and point to the Topic, or start from the Topic and point to the
DataReader (in publication and subscription cases, respectively).

.. figure:: /rst/figures/screenshots/shapes_domain.png
:align: center

If filtering that graph by Topic, only the entities whose endpoints are publishing in, or subscribed to the selected
Topic would be represented in the view.

.. figure:: /rst/figures/screenshots/shapes_topic.png
:align: center

If there are problems reported by a DDS entity, they are condensed by entity in the bottom layout problem section.
Among the problem counter, the problem is described and, in some cases, followed by a link to the documentation.

.. figure:: /rst/figures/screenshots/problem_detail.png
:align: center

.. toctree::
:maxdepth: 2

Expand Down
52 changes: 46 additions & 6 deletions docs/rst/user_manual/layout.rst
Original file line number Diff line number Diff line change
Expand Up @@ -219,9 +219,11 @@ For the explanation of this information refer to the section :ref:`log_panel`.

Main Panel
==========
The central window it will display the data charts, so-called *Chartbox*, that the user has configured.
To create a new *Chartbox* go to *Edit->DisplayNewData* in the application menu.
This button will create a new *Chartbox* where new series could be added, removed or modified.
The central window allows multiple tabs for different views.
It is also displayed a collapsed menu with the possible problems that have been detected on the DDS entities.
It will display the data charts, so-called *Chartbox*, that the user has configured.
It will display a domain graph where the physical, logical and DDS entities from a domain are represented,
focusing on the connection between endpoints through the topics, and the entities physical inheritance.

.. figure:: /rst/figures/screenshots/main_panel.png
:align: center
Expand All @@ -232,21 +234,26 @@ For further information about how to create a chart refer to the section :ref:`c

Chartbox
--------
These windows in the central panel store some *series* or *data configurations* to show a specific data type for
These windows in the main panel store some *series* or *data configurations* to show a specific data type for
one or several entities in a specified time interval and with different accumulative operations on the data.

These Chartbox could be moved along the main window.
To create a new *Chartbox* go to *Chart View* in the Main Panel default tab, and click on *Create new chart* button.
This button will create a new *Chartbox* where new series could be added, removed or modified.

These Chartbox could be moved along the *Chart View* tab.
In order to move one of this charts, press in the *Chartbox* title and grab the object to its new location inside the
main panel.
The rest of the *Chartboxes* will automatically rearrange when one of them is moved to a different position.

.. figure:: /rst/figures/screenshots/chartbox.png
:align: center

For further information about how to create a chart refer to the section :ref:`chart_panel`.

.. _create_new_series_layout:

Create Series Dialog
------------------------
^^^^^^^^^^^^^^^^^^^^
This Dialog will appear every time a new Chartbox is created, or adding a new series by the button in the Chartbox
*Series->AddSeries*.

Expand All @@ -262,3 +269,36 @@ This Dialog will appear every time a new Chartbox is created, or adding a new se

For further details on how to configure a new series refer to :ref:`historic_series` for historic data or
:ref:`dynamic_series` for dynamic data.

.. _domain_graph:

Domain View
-----------
This view in the main panel shows the connections between DataWriters and DataReaders that belong to the same
DDS Domain.
They are represented encapsulated inside their physical entities (see :ref:`entities` relationship), and with a
connection to the topic they are published and subscribed, respectively.

.. figure:: /rst/figures/screenshots/domain_graph.png
:align: center

By clicking on any entity, its detailed information is displayed in the :ref:`info_panel`.
Right click allows changing the alias of the entity, filter the problems to display only the selected entity's problems
and, in the case of topics, filtering the domain graph by topic so that only the entities related to the selected topic
are displayed.

.. _problem_summary:

Problem summary
---------------

This section that can be expanded and collapsed displays all the collected problems per entity.
Those problems are related to DataReader samples lost, incompatible QoS between endpoints, or DataWriter deadline missed
counter, for instance.

The entities that have reported a problem would display a warning or an error icon close to the entity name, based on
the severity of the problem.
The entity representation in the domain graph may also display that icon.

.. figure:: /rst/figures/screenshots/problem.png
:align: center
4 changes: 4 additions & 0 deletions fastdds_monitor.pro
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ SOURCES += \
src/model/physical/ProcessModelItem.cpp \
src/model/statistics/EntityItem.cpp \
src/model/SubListedListModel.cpp \
src/model/tree/StatusTreeItem.cpp \
src/model/tree/StatusTreeModel.cpp \
src/model/tree/TreeItem.cpp \
src/model/tree/TreeModel.cpp \
src/statistics/DataChartBox.cpp \
Expand Down Expand Up @@ -75,6 +77,8 @@ HEADERS += \
include/fastdds_monitor/model/statistics/EntityItem.h \
include/fastdds_monitor/model/SubListedListItem.h \
include/fastdds_monitor/model/SubListedListModel.h \
include/fastdds_monitor/model/tree/StatusTreeModel.h \
include/fastdds_monitor/model/tree/StatusTreeItem.h \
include/fastdds_monitor/model/tree/TreeItem.h \
include/fastdds_monitor/model/tree/TreeModel.h \
include/fastdds_monitor/statistics/DataChartBox.h \
Expand Down
1 change: 1 addition & 0 deletions imports/Theme/Theme.qml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ QtObject {

readonly property color grey: "#808080"
readonly property color lightGrey: "#d3d3d3"
readonly property color darkGrey: "#3e3e3e"
readonly property color x11Grey: "#BEBEBE"
readonly property color whiteSmoke: "#f5f5f5"

Expand Down
22 changes: 22 additions & 0 deletions include/fastdds_monitor/Controller.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
#include <QObject>
#include <QtCharts/QVXYModelMapper>

#include <fastdds_monitor/backend/backend_types.h>

class Engine;

enum class ErrorType : int
Expand Down Expand Up @@ -59,6 +61,16 @@ class Controller : public QObject
QString error_msg,
ErrorType error_type = ErrorType::GENERIC);

//! Status counters displayed in the QML
struct StatusCounters
{
std::map<backend::EntityId, uint32_t> errors;
std::map<backend::EntityId, uint32_t> warnings;
int32_t total_errors = 0;
int32_t total_warnings = 0;
}
status_counters;

public slots:

// Methods to be called from QML
Expand Down Expand Up @@ -260,6 +272,11 @@ public slots:
quint64 series_id,
quint64 new_max_point);


//! Request to backend the latest domain view JSON to build the graph
QString get_domain_view_graph (
QString domain_id);

signals:

//! Signal to show the Error Dialog
Expand All @@ -270,6 +287,11 @@ public slots:
//! Signal to inform qml that a new monitor has been initialized
void monitorInitialized();

//! Signal to notify status counters have been updated
void update_status_counters(
QString errors,
QString warnings);

protected:

//! Reference to \c Engine object
Expand Down
Loading

0 comments on commit 06254c7

Please sign in to comment.