Skip to content

Conversation

abrahamwolk
Copy link
Collaborator

This pull request adds a new Waterfall Plot widget to Phoebus:

screenshot

The intended usage of the widget is to display the evolution of a waveform or of a number of (compatible) PVs over time. The widget plots the values of the waveform or the list of PVs from a configurable amount of time in the past until the current moment. For simplicity, the time is always displayed in UTC in the initial implementation. The plot is updated once per second.

The implementation of the widget uses the ChartFX [1] library for its implementation.

I have added the widget to the Maven-build files by adding it to the pom.xml file for phoebus-product. At the moment, it is enabled by default in the pull request. Would it be preferable that it is disabled by default?

Unfortunately, I am not familiar withe the Ant build system, and I have therefore not added it to this build system. Help to add it to the Ant build system is welcome.

One limitation is that the widget currently does not allow for dynamically changing the connected PV(s) when it is running.

When testing the widget and the widget doesn't display any values, it may be helpful to check the setting "Z-axis min & max" to make sure it is correctly set.

[1] https://github.com/fair-acc/chart-fx

@kasemir
Copy link
Collaborator

kasemir commented Aug 25, 2025

Does it go left/right with time? Waterfall plots tend to go up/down with time, https://en.wikipedia.org/wiki/Waterfall_plot
Makes sense because of the "fall" in waterfall.

</dependency>
<dependency>
<groupId>io.fair-acc</groupId>
<artifactId>chartfx</artifactId>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add the new dependency to dependencies/phoebus-target/pom.xml?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's possible, but isn't it preferable that only the module waterfallplot includes it? If one builds Phoebus without the Waterfall plot, then there is no need to include the new dependency in the build.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See https://github.com/ControlSystemStudio/phoebus/tree/master/dependencies#readme
This is about establishing a target platform, a list of all the dependencies, for use with Eclipse, ant, make, .. whatever you want to use. If you limit the build tools to maven, then you're of course correct.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have added the dependency to dependencies/phoebus-target/pom.xml: 7bc8075

@abrahamwolk
Copy link
Collaborator Author

Does it go left/right with time? Waterfall plots tend to go up/down with time, https://en.wikipedia.org/wiki/Waterfall_plot Makes sense because of the "fall" in waterfall.

Which axis is the "time axis" is configurable using the "Time Axis" widget property.

@abrahamwolk
Copy link
Collaborator Author

abrahamwolk commented Aug 26, 2025

I have changed the default to be time on the y-axis. The x-axis represents "now" and the data-points travel upwards in the plot into the "past".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants