Experimental Physics and
| |||||||||||||||
|
Hello Ignacio,
It depends on exactly what you want to achieve. If you want to create a Normative Types PV from your regular EPICS database, you might want to use the PV groups [1]. You also can do a lot by using PVA links [2] in your database records. In the example below you would read from PVA to a longin record: record(longin, "$(P)$(R)DBRInput") { field(DESC, "Copy of PVAInput") field(INP, {pva:{pv:"$(P)$(R)PVAInput",proc:true}}) } You can also do the other way around and write to a Normative Types PV: record(longout, "$(P)$(R)DBROut") { field(DESC, "write using PVA") field(OUT, {pva:{pv:"$(P)$(R)PVAOut"}}) } PVA links are available in the pva2pva library that is part of EPICS Base already, and soon will be also in PVXS (QSRV2). But if you need at a more "complex" integration, I would definitively go for PVXS inside you IOC [3]. You can use the aSub record to read from your regular DBR PVs (records) and from there you can use the SharedPV class from PVXS to do whatever you want. Bruno Martins has a very nice example [4]. If your "old" IOC runs EPICS Base 7+ and QSRV is enabled, it is already producing Normative Types PVs that could be accessed by a PVXS client context via read (get) and subscription (monitor) operations inside the same IOC. [1] - https://epics-base.github.io/pva2pva/qsrv_page.html#qsrv_group_def [2] - https://epics-base.github.io/pva2pva/qsrv_page.html#qsrv_link [3] - https://indico.fnal.gov/event/58280/contributions/264559/ [4] - https://github.com/brunoseivam/tabulator/blob/main/stackerApp/src/stackerSup.cpp Kind regards, João Paulo Martins European Spallation Source ERIC From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Ignacio Arriagada via Tech-talk <tech-talk at aps.anl.gov>
Sent: Wednesday, October 4, 2023 5:38:50 PM To: tech-talk at aps.anl.gov Subject: DBRecord <-> PVRecord data exchange Hello Tech-Talk!
I'm trying to integrate PVAccess (or PVXS) capabilities into an old IOC.
I've been reading
Marty Kraimer EPICSV4 developers guide and associated git examples. I'm also consulting Michael Davidsaver's PVXS documentation but it is not clear to me yet how to accomplish this. Are there other resources or examples that I could access regarding this
topic?
Thank you all in advance,
Regards,
Ignacio
| ||||||||||||||
ANJ, 11 Oct 2023 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |