I hate to bring this issue up again but this is getting more and more annoying as time goes by.
I would like to get a solution on this. Or some way of moving forward.
I hope the pictures below come through, screenshots from CS-Studio (BOY in this case). Please take a look below.
One of them is using CA, the other using PVA. Exactly same IOC application, running rsrv and qsrv in parallel.
Guess which is which. Which one would you like to show your operators, A or B?
Some food for thought, just to provoke some (critical) reactions.
In CA, dbr_ctrl types for floating point values (float, double – only these) have the following:
status; /* status of value */
severity; /* severity of alarm */
precision; /* number of decimal places */
RISC_pad; /* RISC alignment */
/* units of value */
/* upper limit of graph */
/* lower limit of graph */
/* upper control limit */
/* lower control limit */
value; /* current value */
Whereas our beloved NTypes define:
Where I do find units, upper and lower display limits, a description (? What was that supposed to mean, I have lost it. Was it supposed to be the DESC field from a record?), and the format.
Have we not been a bit too ambitious here? Or rather too simplistic? Format as a just a(ny) string?
Could we perhaps have something like:
string specifier :opt
Where precision and specifier are like in Java (or C/C++). To reproduce CA functionality, precision could be just a number defining how many places after decimal point should be printed.
Specifier – if we stick to CA behaviour, this could default to "f". Could extend it to others as wanted.
Extend this with width, flags and whatever is in the format specification, if required.
I am by no means insisting on this or any other definition, I would just like to have this issue fixed so that we can start using our PVA clients in the control room. Any better or equivalent idea is ok with me.