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  <20132014  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  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: sequencer + streamdevice
From: Christoph Burandt <[email protected]>
To: [email protected]
Date: Tue, 29 Oct 2013 22:49:55 +0100
On 10/29/2013 12:43 PM, Ralph Lange wrote:
On 28.10.2013 22:41, Christoph Burandt wrote:
Hello again,

thank you all, for some first hints.

A bit more detailed information about my setup:

*debian linux (squeeze, amd64)
*EPICS packages installed from the repository at
http://epics.nsls2.bnl.gov/debian/ (EPICS 3.14.12.3)
*StreamDevice-2-6 (from psi website)
*Asyn 4-17

The active lines in the RELEASE file are:
==========================================================
TEMPLATE_TOP=$(EPICS_BASE)/templates/makeBaseApp/top
SNCSEQ=$(EPICS_BASE)/../modules/soft/seq
EPICS_BASE=/usr/lib/epics
ASYN=/usr/local/src/support/asyn/trunk
==========================================================
The SNCSEQ line seems to point to nowhere (path doesn't exist), but it
definitively works for the pure sequencer IOC like this. (!??!)


sncExample.dbd contains one line:
==========================================================
registrar(sncExampleRegistrar)
==========================================================


And the dbd file containing the stream device support is as follows:
streamInclude.dbd
==========================================================
include "base.dbd"
include "stream.dbd"
include "asyn.dbd"
registrar(drvAsynIPPortRegisterCommands)
registrar(drvAsynSerialPortRegisterCommands)
==========================================================


As I gather these line here, I realize, streamInclude.dbd is nowhere
being referenced explicitly. Does it have some special status?

Greetings,
Christoph

Hi Christoph,

The Debian EPICS packages install under /usr/lib/epics.
So, if your setting of SNCSEQ points to nowhere, you probably have the
sequencer installed as part of the epics-synapps-dev package.

If you want to override stuff with locally compiled modules, specify
them as usual in the .../configure/RELEASE file, *before* the setting
for EPICS_BASE. (Else your application will continue to use the package
stuff in /usr/lib/epics. The order of lines in the RELEASE file is kept
in the setting of include paths etc.)

If some rules depend on SNCSEQ being set, set it. Either to
/usr/lib/epics, or to a locally installed version, or to any string (in
which case stuff is found in /usr/lib/epics).

Your application must include all .dbd files and registrar declarations
necessary for both the sequencer and streamDevice.
It also must link against all libraries for both the sequencer and
streamDevice.

streamInclude.dbd is the dbd-include file for the streamDevice sample
application. Do not include it. It just shows what the dbd-include of
your application should contain to use streamDevice.

Also note that the epics-synapps-dev package contains asyn as well as
streamDevice. Unless you have a good reason to use your own locally
compiled versions, I would strongly suggest to stick with the packaged
versions. Locally compiled versions are by definition not
dependency-controlled by the packaging system, so they work around the
strongest advantage of using a package manager in the first place. It is
easy to create unstable applications by updating locally compiled
modules and not completely recompiling and linking all applications that
use them.

HTH,
~Ralph



Hi Ralph,

thank you for your elaborate answer. It allowed me to create an IOC with both, StreamDevice support and the sequencer working correctly. It does not use local versions of the StreamDevice support and the sequencer anymore.

You guessed right about our setup using the epics-synapps-dev package. The local asyn and stream device versions were used for historical reasons - we did not always use the debian packages and missed to change the configuration of our StreamDevice-Support-IOC when we started to use them.

Your clarifications concerning the RELEASE file were quite helpful too. I can write and understand basic Makefiles but I couldn't familiarize myself whith the EPICS build system so far.

Best regards,
Christoph

--
M.Sc. Phys. Christoph Burandt
Technische Universität Darmstadt

References:
Re: sequencer + streamdevice Christoph Burandt
Re: sequencer + streamdevice Ralph Lange

Navigate by Date:
Prev: GTR: thread-safety issue with devGtr.c Till Straumann
Next: RE: merge multiple alarms Mooney, Tim M.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: sequencer + streamdevice Ralph Lange
Next: Labview EPICS server and client data types. Vaughn, Brian
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·