Linear Meter Widget #2718
Replies: 11 comments 5 replies
-
That looks good! It might be a better mapping for 'bar' widgets when auto-converting MEDM or EDM screens. |
Beta Was this translation helpful? Give feedback.
-
I think it would be useful to include the linear widget like we included the thumbwheel (maybe in the future we can merge the modules) |
Beta Was this translation helpful? Give feedback.
-
@shroffk, not sure what you actually suggest in terms of code structure. Discussing this with @abrahamwolk I suggested to add the linear meter as a separate maven module, just like thumbwheel. That way the widgets can be excluded in a product pom rather than building them into a product, and then configure visibility. |
Beta Was this translation helpful? Give feedback.
-
For what it's worth, there's also the With bar, tank, linear meter, meter, .. all serving a similar purpose, displays will look inconsistent if everybody picks a different widget. As a maintainer of cs-studio for you site, you may decide to hide all but one of those variants in the editor. This means users at your site can only create displays with one of those variants. But you can still include the support for the others, such that displays created elsewhere that happen to include those widgets will "work". You can then update them to use the widgets that you prefer, but you're not looking at a blank screen until you do that. |
Beta Was this translation helpful? Give feedback.
-
OK, point taken. But to me this calls for a decision of strategic kind: should the code base be structured such that a site specific product would always include all widgets for the sake of reasonably predictable runtime behavior? If yes, then the thumbwheel (and linear meter) widget code should not live in a separate module. |
Beta Was this translation helpful? Give feedback.
-
I was indeed suggesting including it as a separate module... since we are talking about testing the widget and determining if there is a need for it given the existence of the progress bar. Once we are satisfied that the widget is stable enough we can include it into the main display module and switch to using the visibility preferences to control its usage. I think we can put experimental/first iteration widgets in standalone modules until we are sure that we want to take the responsibility of supporting them (in the runtime at the very least) for the foreseeable future . |
Beta Was this translation helpful? Give feedback.
-
OK, I understand. Personally I prefer the module-based approach and exclusions through site-specific product pom. After all, excluding modules is optional, the consequences of exclusions must be known by the maintainer of the site-specific pom. In any case, I am fine with the suggested approach. |
Beta Was this translation helpful? Give feedback.
-
In the merge-request I will add the widget as a separate module in the merge-request, and then it can be integrated more directly into the project some time in the future. The implemented widget diverges from other similar widgets in Phoebus in two ways:
The rationale behind printing the LAG-warning is that there are performance problems with the OPI if lag occurs, and the user should be aware that the performance problems are there (and they should be fixed, perhaps by improving the efficiency of the code, fixing the OPI itself, or some other solution). Before I create a merge-request, I would like to ask whether point 1. and 2. are OK? |
Beta Was this translation helpful? Give feedback.
-
1 is no problem at all. TextUpdate etc. also just use the general runtime PV throttle 2 might be overthinking the issue. The display is to make a best effort of showing the most recent value. It's understood that some intermediate values might have been dropped. The general runtime PV throttle drops values to lower CPU load. Channel Access drops values without ever telling you. PV Access does have an "overrun" bitset in the subscription update messages (https://github.com/epics-base/pvAccessCPP/wiki/Protocol-Operation-Monitor#response-encoding-server---client), but that's just a flag, you don't know if you missed 1 or 1000 values. Sure, you can add a lag indicator for your widget, but it'll be unaware of many dropped values. |
Beta Was this translation helpful? Give feedback.
-
I appreciate your concern, but by the time you display the lag message and the then-current value, the problem is gone. But again, do what you want to do with your widget. |
Beta Was this translation helpful? Give feedback.
-
Thanks again for adding this widget. Regarding with the "LAG" indicator, while I understand the concern to notify the user that the system is unable to process all incoming events... as Kay pointed out there are multiple points along the pipeline where updates are dropped (most of the times without notification) |
Beta Was this translation helpful? Give feedback.
-
At ESS, we have developed a new widget for Phoebus called the Linear Meter.
It looks like this (the colors of the alarm borders are non-standard because of my local Phoebus configuration; they will appear in the same way as for other widgets according to the configuration of Phoebus):
With a gradient enabled it looks like this:
We would like to know whether there is an interest in that we merge the widget into the Phoebus source tree? It would be added in the same way as the Thumbwheel widget, which allows for easy exclusion from builds if one does not want to include it in a build.
In case someone wants to test the new widget, I have pushed the branch
LinearMeter
to the Phoebus GitHub repository, on which the Linear Meter has been added.If there is support for an inclusion into the Phoebus source tree, I will open a pull-request.
Beta Was this translation helpful? Give feedback.
All reactions