-
Notifications
You must be signed in to change notification settings - Fork 70
Convert NDPluginPva to use PVXS #528
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
Comments
I am happy to defer to Michael and DLS experts on this. It would be simplest to just convert to PVXS I think, I think we also need to change pvaDriver, which shares some of the code. |
If we can add PVXS support via compile time flags, that would be best at the moment. I suspect quite a few sites are using NDPluginPVA via the older PVAccess support bundled with base 7.0.X. |
@Ohisemega please could you start looking at this? Once you've scanned through the PVXS docs there will probably be some questions for @mdavidsaver but we can get started before arranging a meeting to answer those questions |
Took a little bit to get my environment set up but making progress with this, most of my questions were indirectly answered on friday, will open a wip draft PR when I get things tidied up. |
@jsouter FYI you could have:
This also gives you a test instance to try things against. Let me know if you want a quick 10 minute demo. |
Thanks Giles, I had a quick go last week trying to set up something in this container, ultimately I'm using ADSimDetector outside of a container so I can just use xmlbuilder a bit easier, maybe a quick demo would be good if you have some time tomorrow. |
@jsouter I'm on leave this week. Please drop something in my diary for next week. The devcontainer can also let you quickly make IOC instances too so no xmlbuilder needed. |
Still tidying up but very close to replicating the full functionality of the pvAccess version, I'm a bit stuck on reimplementing |
The Value avalue(top["some.value"]); // traverse to an Any field
assert(avalue.type()==TypeCode::Any);
Value contents(avalue.as<Value>()); // extract Value pointed to by Any (may be nothing). This can also be expressed as: Value contents(top["some.value->"]); // indirect during traverse |
Thanks! That did the trick. |
Draft is up here, |
@jsouter please could you talk to @gilesknap about getting the epics-containers demo updated and seeing if it solves the NAT issues please? |
It would be good to get pvaDriver converted as well. |
In epics-containers/epics-base we are building EPICS base with PVXS rather than pvAccess. This solves a number of issues for us, including the addition of
PVA_NAME_SERVERS
which means we can use TCP only allowing use of the network address translation needed in Kubernetes without exposing host network. (@gilesknap please correct me if I have got this wrong)The only remaining component for us that is using the old pvAccess stack is the NDPluginPVA.
Would it be possible to convert it to use PVXS? Should it be an in place conversion, or should there be a Makefile switch to build an NDPluginPva against pvAccess or PVXS?
I noticed that #485 was commented as a stepping stone to PVXS by @mdavidsaver but is still marked as draft.
DLS is happy to do this work, but would need some guidance on the best approach, and someone to review the PR!
The text was updated successfully, but these errors were encountered: