EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
<== Date ==> <== Thread ==>

Subject: Re: CA Provider for PVXS
From: Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov>
To: "Marks, Nicholas" <nmarks at anl.gov>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 8 Jun 2026 10:25:27 -0700
Hello Nick,

On 6/8/26 8:35 AM, Marks, Nicholas via Tech-talk wrote:
Hello,

I was curious if there has been any discussion in the community about implementing a Channel Access provider for PVXS? I think most would agree the PVXS API is much easier to work with than the pvAccessCPP API, however one thing pvAccessCPP has over PVXS is it also provides a CA provider(epics::pvAccess::ca::CAClientFactory::start(); pvac::ClientProvider provider("ca");).

I was not enthused about supporting the (imo.) hacky code behind CA ClientProvider.  Wrapping libca adds the problem of API impedance mismatch to the differences between the two protocols.  I do not see a similar wrapper appearing in PVXS.  I would not rule out including a new CA implementation, with a similar API, but this is not at all a priority for me.


Any new client applications will likely need to support both CA and PVA (except maybe for some very new sites which are trying PVA only) so it is especially useful to have a single API for the EPICS communication layer of such an application. The way I see it, a C++ EPICS client which is to support both CA and PVA will need to use PVXS for PVA and the C API for Channel Access or alternatively stick with pvAccessCPP. This isn't the end of the world, but it sure would be nice to use PVXS for both protocols. I'm interested to hear others' thoughts on this.

To my mind, dual protocol servers are the way to go.  I think the server side is better equipped to handle the differences between the two protocols.  Including QSRV2 in all IOCs provides a ~95% solution.


If "transparent" support for PVA/CA is critical for your client application, and "pvac::ClientProvider" + CAProvider works for you, then great.  "pvac::" was my last attempt to wrap a not-horrible API around pvAccessCPP.  Like much of the original pvDataCPP stack, it is in deep maintenance mode at this point.  Still, the EPICS community has a history of keeping such code ~viable for a very long time.  I doubt that obsolescence will force a migration on you anytime soon.



Replies:
Re: CA Provider for PVXS André Favoto via Tech-talk
References:
CA Provider for PVXS Marks, Nicholas via Tech-talk

Navigate by Date:
Prev: Re: CA Provider for PVXS Kasemir, Kay via Tech-talk
Next: Re: CA Provider for PVXS André Favoto via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
Navigate by Thread:
Prev: Re: CA Provider for PVXS André Favoto via Tech-talk
Next: Re: CA Provider for PVXS André Favoto via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026
ANJ, 10 Jun 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·