CSS pv() function missing in Phoebus
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
The issue describes a missing pv() expression function and gives a nested expression example, but names no implementation files or tests. First check how Phoebus currently parses backtick expressions and whether they support nested evaluation; then assess the scope of adding pv() as an alternative. Done would mean the example can resolve the computed PV name and retrieve its value, with tests covering that behavior.
Written by the indexing model from the issue text.
Description
Many of the functions available in CS-Studio are also available in Phoebus, however I have noticed that one that we make heavy use of is missing and that is the pv() function. This basically turns whatever is inside it into a PV object that CSS then gets the value of.
In many instances we can just replace that with the Phoebus syntax using backticks ``.
However there are some cases that do not work in Phoebus, for example, functions within the backticks or nested backticks. An example of what was done in CSS is shown below:
=pv(concat(pv("XXX:NAME:OF:PV"), ":HELLO"))
where:
-
pv("XXX:NAME:OF:PV")would return the value of this PV, which is a string with the name of another PV, e.g. XXX:NAME:OF:PV.val = "TEST:VAC:01" -
concat(..., ":HELLO")takes the string PV value from above and appends "HELLO" to it to get a new PV name, e.g. "TEST:VAC:01:HELLO" -
then
=pv(...)gets the value of "TEST:VAC:01:HELLO"
As far as I can tell, there is no easy way of doing this in Phoebus except using scripts.
I was just wondering whether there was a reason that the pv() function from CSS wasn't re-implemented in Phoebus? Would it be beneficial to have it?
- Dominant language
- Java
- Stars
- 130
- Forks
- 132
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 23
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ControlSystemStudio/phoebus
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
ControlSystemStudio/phoebus#3983 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ControlSystemStudio/phoebus#3979 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
ControlSystemStudio/phoebus#3962 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
ControlSystemStudio/phoebus#3865 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
ControlSystemStudio/phoebus#3995 ·
Maintainers usually reply within 1 day
All issues in ControlSystemStudio/phoebus
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
quarkiverse/quarkus-google-cloud-services#1188 ·
Maintainers usually reply within 1 day
-
Component: Frontend Component: Web Component Type: Maintenance
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
it-at-m/refarch-templates#1944 ·
Maintainers usually reply within 2 days
-
priority: p2 type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
googleapis/java-genai#1372 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 60/100