-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pvtools rework #129
pvtools rework #129
Conversation
This includes / obsoletes #125 |
886ea08
to
1e6178b
Compare
8ab2ec3
to
1500a17
Compare
With the last commit, Also good is that the request defaults to getting all, so just So overall, if this was a democracy, I'd vote for merging this. |
Just comments on behaviour.. Given this data:
.. the old pvget allowed fetching selected pieces. Now I always get the complete structure:
Maybe that's not an issue with
|
I recommend reading this comment on the Github website to see the proper formatting. Format comparisons
|
Try with multiple PV names. Values are indented based on the longest PV name, rather than a fixed 30 characters. (I've had to deal with too many really long PV names)
What would you have? 2 spaces? 4?
Doesn't bother me one way or the other. If you care enough, you can change this after epics-base/pvDataCPP#58 is merged (in printer.cpp). |
My bad, yours is obviously an improvement, I should have actually tried it instead of assuming:
How about using a fixed width for the timestamp field though? The values don't line up when an
The other thing that I would still like to see is some kind of terse mode, which for There's only so much pushing that we can do to get users to write clients in higher level languages, and in the APS case our physicists will probably be writing tcl/tk for some time to come and thus calling out to someone's pvget client (I'd much rather they use ours than write their own). |
On Oct 30, 2018, at 10:57 AM, Michael Davidsaver ***@***.***> wrote:
Hi Greg,
Not sure how you will like this. ...
'eget' in its present form will be moved to a separate repository,
which will not be included in 7.0.2.
Ok, but let me ask you what this really means.
I don’t need eget explicitly of course. Like all users who now use the control system framework for scientific data, or do ad-hoc investigations of a machine, or rapid prototype by seeing what is available and then coding to that, I just want easy access to the facilities EPICS 7 brings:
In particular, what about "-a arg argvalue”? Would -a and RPC be integrated into pvget pvput?
What about direct addressing? Is that staying in the API? If so, would that be preserved in pvget/put?
How about URL form?
What about your pvget?
- Does it preserve -f, including -f from stdio “-f -“. That’s critical.
- Does it preserve direct addressing - I suspect that will be critical for a number of labs in future. At SLAC the controls department tells us 60% of our net traffic is ca search broadcasts. Now we have a great directory service we have the basis to fix all of that.
In summary, we just need:
1. Command line support for talking to an rpc server. pvget/pvput are taught -a.
2. Direct addressing. pva://server:port
3. -f
4. -T (Transpose) for by-eye investigations and pipelining
5. -t (terse) for pipelining. Maybe if pvRequest was usable wouldn’t need this
6. Drop -x. A matrix with 9 rows and 4 columns is everywhere a matrix with 9 rows and 4 columns regardless of the language that formed it or the client that displays it - and the NTMatrix contains its dimensions, so -x is just misguided.
7. Fix pvlist. Make it so qSrv can list the pvs of an IOC trivially
8. Fix pvinfo. Fix its output format to make it easier to extract the direct address!
9. Fix pvRequest!!!! Ideally replace it with a known semi-structured query syntax
10. Fix the help for these tools in general. It’s objectively awful, and has been for years. The -h help being hard coded in the source is bizarre. And no man pages!! That would have been fine in 1990. In 2018 it's weird.
Later in the financial year I can help fund this I think. But need to see how other projects actually spend.
Greg
… On Oct 30, 2018, at 10:57 AM, Michael Davidsaver ***@***.***> wrote:
Hi Greg,
Not sure how you will like this. Faced with the competing factors
of your attachment to eget's many features, the recent discovery
the 'pvlist' and 'pvinfo' were broken for some months, and the
impending 7.0.2 release, have lead to a change in plans.
I will be merging my rewrite of pvget/put for inclusion in 7.0.2.
'eget' in its present form will be moved to a separate repository,
which will not be included in 7.0.2. You will have ownership
of this repo. I could also move over pvget and pvput as well
(with different names) if you wish.
I'll set up travis-ci configuration and make sure it builds again 7.0.2.
From that point though, it will be up to you/SLAC.
Michael
On Oct 30, 2018, at 12:10 PM, mdavidsaver ***@***.***> wrote:
With no formatting options only one space separates the PV names from their values
Try with multiple PV names. Values are indented based on the longest PV name, rather than a fixed 30 characters. (I've had to deal with too many really long PV names)
so it's a bit harder to identify where the value starts
What would you have? 2 spaces? 4?
The caget timestamp format uses a space instead of a T between the date and the time
Doesn't bother me one way or the other. If you care enough, you can change this after epics-base/pvDataCPP#58 <epics-base/pvDataCPP#58> is merged (in printer.cpp).
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub <#129 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AMV0AaZQu2dM9KcdEuxS7YfMbS-0ALvpks5uqKQagaJpZM4XE8Ve>.
|
Can we move this thread over to epics-base/pvDataCPP#58 ? This is where the relevant code is anyway. |
@gregoryraymondwhite Re your point 9, would JSON be an acceptable syntax? Take a look at the Suggestions section towards the bottom of this document to see what it might look like. That we can do relatively easily, but making big changes to how pvRequest works would be a major undertaking that could require rewriting existing servers. |
Along with
|
"just"?
No. Remember that I didn't even know this worked until Wednesday. These sort of features may be re-added in future along with test coverage!
This at least is already done.
I look forward to this. Right now though, I have to proceed on the basis of available funding ($0). With this level of support, I can only work on pvget et. al incidentally. This limits their scope to the low level troubleshooting tools I need them to be. |
I should also point out that, as with
|
1500a17
to
d832280
Compare
d832280
to
f87e305
Compare
I've merged epics-base/pvDataCPP#52 and created a new home for eget at https://github.com/epics-base/eget I'm going to wait until tomorrow morning before a merging this PR. |
Companion to epics-base/pvDataCPP#58 with changes to pvget et al. This is almost a rewrite. Net delta is
An incomplete list of feature changes:
PVStructure::stream()
.** pvget: -q, -t, -i, -n, -F
** pvput: -n, -s, -F, -t