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: Timo Korhonen via Tech-talk <tech-talk at aps.anl.gov>
To: Florian Feldbauer <florian at ep1.ruhr-uni-bochum.de>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 3 Apr 2024 07:19:56 +0000

Hi Florian,

 

Thanks, I missed that point. I guess it just shows that I am not building from scratch very often.

 

In the “ioc” type template, PVA has to be added by modifying the Makefile, as you say.

 

Cheers,

 

Timo

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Florian Feldbauer via Tech-talk <tech-talk at aps.anl.gov>
Reply to: Florian Feldbauer <florian at ep1.ruhr-uni-bochum.de>
Date: Wednesday, 3 April 2024 at 08:59
To: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Subject: Re: enable pvAccess by default

 

Hey Timo,

following the guide you have linked in your mail, you use the "example" template. This one includes the PVAaccess libraries.
William is using the "ioc" template, which does not include the PVAaccess libraries by default.

There are some more differences in these two examples and I also prefer using the "ioc" template for my installations (including PVaccess).

But since I need to modify *App/src/Makefile anyways (to include my drivers) including PVaccess wasn't much of an issue for me so far.

 

Cheers,
Florian

 

 

On 4/3/24 08:49, Timo Korhonen via Tech-talk wrote:

Hi William,

 

Your post perfectly illustrates why we at ESS put the effort to create our “e3” environment 😉

I have not done plain builds for a while…it has started to annoy me that I have to scramble together all the drivers whereas with e3 I have all I need, already figured out.

 

However, to check, I just downloaded the latest release and compiled, and then created a base app, more or less following the steps as defined here.

Pretty much the same steps you have followed, as far as I can tell. (I think the same procedure has worked since EPICS 7 was released…not sure though.)

 

With makeBaseApp, I got an IOC with PVA server, without doing anything extra. Also, the IOC directory is ready to start integrating your drivers.

 

If you run the IOC you created, try the command “pvasr” in the shell (after iocInit). If the command is recognized, you have PVA server enabled.

 

I am not sure what exactly Andrew meant with softIocPVA executable, but I assume that if you just run an IOC without connecting to any particular hardware (thus “soft”), you can use the ready-made softIocPVA without doing anything extra.

 

Best regards,


Timo

 

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of William Kirstaedter via Tech-talk <tech-talk at aps.anl.gov>
Reply to: William Kirstaedter <kirstaedter at fhi-berlin.mpg.de>
Date: Tuesday, 2 April 2024 at 21:50
To: "Johnson, Andrew N." <anj at anl.gov>, "tech-talk at aps.anl.gov" <Tech-talk at aps.anl.gov>
Subject: Re: enable pvAccess by default

 

Hi Andrew,

I'm not too deep into the EPICS (core) "game".

so please elaborate what you mean with "softIOCPVA" executable...

let me explain what I do:

Up until now, I create new IOCs via the "makeBaseApp.pl" script.
mkdir myIOC
cd myIOC
makeBaseApp.pl -t ioc myIOC
makeBaseApp.pl -i -t ioc myIOC

after that, I have a "barebone" IOC which can be compiled but does nothing.

then, I can start integrating my devices.

Im doing this by, for example,
loading the async and streamdevice modules via the *App/src/Makefile and a $(TOP)/../RELEASE.local file,
then creating streamdevice proto files and a *db file for the records.
"make" the IOC.
Finally, I setup and load everything via the st.cmd and have a running system that can control my device.

this is where my idea came from:

right now, the *App/src/Makefile lacks statements to load the PVAserver (whatever it is called now, I always thought theres only one that got developed in EPICS4 and is now mostly done and always included in EPICS 7)

So, if I'd like to switch over from CA to PVA, or at least also enable PVA for all my IOCs, I'd have to add the QSRV library loading to every Makefile of every IOC that I maintain, and, more importantly, recall to add them everytime I create a new IOC for a new Lab or Device or whatever constellation...

Idk, my assumption as a user would have been that PVAserver is always available since I use EPICS 7 which combines "old-world" EPICS 3 and "new-world" EPICS 4 ?

also I wonder how big the ressources impact might be to run an additional PVAserver by default...
I'd assume modern low end hardware can handle that easily.

anyways, thanks for your reply :)

PS: also @Erico, thanks for your answer aswell, I see there might be quite a rabbithole regarding PVA stuff inside of EPICS 7 that I totally wasnt aware of...

William Kirstaedter
PP&B Computer Support Group
Fritz-Haber-Institut Berlin

Am 01.04.24 um 18:17 schrieb Johnson, Andrew N.:

Hi William,

 

On 3/31/24, 3:53 PM, "Tech-talk" tech-talk-bounces at aps.anl.gov wrote:

I would like to know if you have already considered activating pvAccess

for softIOCs by default.

 

How is what you're asking for different than the softiocPVA executable that we already build in the pva2pva module?

 

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

 

Ultimately, this should not affect any old system, as pvAccess is only

loaded if it is also present in base?

 

PV Access has been part of Base since the first EPICS 7.0.1 release, but many sites aren't building it into all their IOCs — at the APS we use it in AreaDetector camera IOCs and our DAQ systems, but don't build it into our regular EPICS 7 IOCs yet. The extra libraries and threads that it starts would take up resources on our systems.

 

HTH,

 

- Andrew

 

-- 

Complexity comes for free, Simplicity you have to work for.

 

 

thanks in advance,

 

--

William Kirstaedter

PP&B Computer Support Group

Fritz-Haber-Institut Berlin

 

 

-- 
Ruhr-Universität Bochum
AG der Experimentalphysik I
Dr. Florian Feldbauer
NB 2/131 / Fach 125
Universitätsstr. 150
D-44801 Bochum
 
Office: NB 2/134
Phone:  (+49)234 / 32-23563
Fax:    (+49)234 / 32-14170
https://paluma.ruhr-uni-bochum.de

Replies:
Re: enable pvAccess by default Ralph Lange via Tech-talk
References:
enable pvAccess by default William Kirstaedter via Tech-talk
Re: enable pvAccess by default Johnson, Andrew N. via Tech-talk
Re: enable pvAccess by default William Kirstaedter via Tech-talk
Re: enable pvAccess by default Timo Korhonen via Tech-talk
Re: enable pvAccess by default Florian Feldbauer via Tech-talk

Navigate by Date:
Prev: Re: enable pvAccess by default Ralph Lange via Tech-talk
Next: Re: enable pvAccess by default Ralph Lange 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 Florian Feldbauer via Tech-talk
Next: Re: enable pvAccess by default Ralph Lange 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, 03 Apr 2024 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·