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 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
<== Date ==> <== Thread ==>

Subject: Re: enable pvAccess by default
From: Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov>
To: Han Lee <jeonglee at lbl.gov>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 3 Apr 2024 12:09:43 -0700
On 4/3/24 11:25, Han Lee via Tech-talk wrote:
Hi Michael,

Could you explain the difference between QSRV1 and QSRV2?
Or do we have any documentation which way we have to go to develop the pvacces support IOC?

In brief.

QSRV (retroactively QSRV1) aka qsrv.dbd and libqsrv.so built from:

https://urldefense.us/v3/__https://github.com/epics-base/pva2pva__;!!G_uCfscf7eWS!aZRCuji_FW6yWsrGocTGX4MjvsaJ6DCCzco79zoOu47Q4Qhxs0UPVJ9-Itpv68mjE81sUQaHPRtIn5-Z4ghFGMe_9Q$
QSRV2 aka pvxsIoc.dbd and libpvxsIoc.so built from:

https://urldefense.us/v3/__https://github.com/mdavidsaver/pvxs__;!!G_uCfscf7eWS!aZRCuji_FW6yWsrGocTGX4MjvsaJ6DCCzco79zoOu47Q4Qhxs0UPVJ9-Itpv68mjE81sUQaHPRtIn5-Z4ggdwRe8rg$
Functionally very similar.  QSRV1 depends on pvDataCPP and pvAccessCPP
modules.  QSRV2 does not.

Including either is only a matter of linking in the relevant .dbd and
library.  Both will start automatically during iocInit(), and will
provide access via PVA protocol to all local database records with no
additional configuration.

https://urldefense.us/v3/__https://mdavidsaver.github.io/pvxs/building.html*including-pvxs-in-your-application__;Iw!!G_uCfscf7eWS!aZRCuji_FW6yWsrGocTGX4MjvsaJ6DCCzco79zoOu47Q4Qhxs0UPVJ9-Itpv68mjE81sUQaHPRtIn5-Z4ghKtTq0xQ$
Best,
Han



On Wed, Apr 3, 2024 at 10:37 AM Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov <mailto:tech-talk at aps.anl.gov>> wrote:

    On 3/31/24 13:53, William Kirstaedter via Tech-talk wrote:
     > Hello Core Devs,
     >
     > I would like to know if you have already considered activating pvAccess for softIOCs by default.

    Changing defaults seems certain to surprise someone.  I understand
    the desire for change though as out of date defaults confuse new
    users.

    Historically, epics-base development has prioritized unsurprising
    upgrades over unconfused newbies.  Still, changes are possible if
    folks want to propose something concrete.  (aka. PRs welcomed)


     > I would probably adapt the Makefile template and simply copy the section from the example IOC:
     >
     > # Link QSRV (pvAccess Server) if available
     > ifdef EPICS_QSRV_MAJOR_VERSION
     >      _APPNAME__LIBS += qsrv
     >      _APPNAME__LIBS += $(EPICS_BASE_PVA_CORE_LIBS)
     >      _APPNAME__DBD += PVAServerRegister.dbd
     >      _APPNAME__DBD += qsrv.dbd
     > endif

    When PVXS is included in RELEASE, then PVXS_MAJOR_VERSION will be defined.
    So some similar logic can be used.

     > ifdef PVXS_MAJOR_VERSION
     > _APPNAME__DBD += pvxsIoc.dbd
     > _APPNAME__LIBS += pvxsIoc pvxs
     > endif

    Of course this raises the question of what to do if both are defined?

    I have tried to design PVXS/QSRV2 so that both QSRV1 and QSRV2 can be linked
    into the same executable.  In this happens, then on startup QSRV2 should
    detect the presence of QSRV1 and disable itself.

    That said, I would recommend avoiding this situation with Makefile logic like:

     > ifdef PVXS_MAJOR_VERSION # prefer QSRV2 :)
     > nasaAcq_DBD += pvxsIoc.dbd
     > nasaAcq_LIBS += pvxsIoc pvxs
     > else
     > ifdef EPICS_QSRV_MAJOR_VERSION # fallback to QSRV1
     > nasaAcq_LIBS += qsrv
     > nasaAcq_LIBS += $(EPICS_BASE_PVA_CORE_LIBS)
     > nasaAcq_DBD += PVAServerRegister.dbd
     > nasaAcq_DBD += qsrv.dbd
     > endif
     > endif



--
Jeong Han Lee, Dr.rer.nat.
Lawrence Berkeley National Laboratory
https://urldefense.us/v3/__https://orcid.org/0000-0002-1699-2660__;!!G_uCfscf7eWS!aZRCuji_FW6yWsrGocTGX4MjvsaJ6DCCzco79zoOu47Q4Qhxs0UPVJ9-Itpv68mjE81sUQaHPRtIn5-Z4ghFgNhQnQ$  <https://urldefense.us/v3/__https://orcid.org/0000-0002-1699-2660__;!!G_uCfscf7eWS!eNObc-7Q0P7KNpWUlxbwamliBi86BKnYIb33rX5zmtCCw5F9x2YWQWbwGowBhbiwyjYwcQEUuS42UEiTul3wj0E$>


References:
enable pvAccess by default William Kirstaedter via Tech-talk
Re: enable pvAccess by default Michael Davidsaver via Tech-talk
Re: enable pvAccess by default Han Lee via Tech-talk

Navigate by Date:
Prev: Re: enable pvAccess by default Han Lee via Tech-talk
Next: RE: Pfeiffer Omnicontrol 200 Abdalla Ahmad 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
Navigate by Thread:
Prev: Re: enable pvAccess by default Han Lee via Tech-talk
Next: "Hard" IOC on commodity hardware Winter, Graeme (DLSLtd, RAL, LSCI) 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
ANJ, 04 Apr 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·