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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: sequencer + streamdevice |
From: | Ralph Lange <[email protected]> |
To: | EPICS Tech-Talk <[email protected]> |
Date: | Tue, 29 Oct 2013 12:43:11 +0100 |
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