Experimental Physics and Industrial Control System
|
Subject: |
Re: Inter-module dependency between stream and calc |
From: |
Ralph Lange via Tech-talk <[email protected]> |
To: |
EPICS Tech Talk <[email protected]> |
Date: |
Mon, 18 Mar 2019 17:28:11 +0100 |
I guess the only sane way to do that is to split up whatever scalc related is in stream.dbd into a separate stream-scalc.dbd file.
Then a "simple" IOC would
myioc_DBD += stream.dbd myioc_LIBS += stream
and the "full" IOC would
myioc_DBD += calc.dbd myioc_DBD += stream.dbd myioc_DBD += stream-calc.dbd myioc_LIBS += calc myioc_LIBS += stream
Cheers, ~Ralph
On Mon, 18 Mar 2019 at 17:15, Konrad, Martin via Tech-talk < [email protected]> wrote: Hi,
I'm wondering how to handle dependencies between support modules the
right way (TM). Let's say I have the following chain of dependencies:
myIOC -> stream -> calc
Background: StreamDevice includes support for the sCalcRecord. Since I'm
building stream and calc as shared libraries that are shipped as
pre-canned Debian packages I want to build them with all their features
enabled.
The problem: myIOC does not make use of sCalcRecords so I only add the
following lines to its Makefile:
myioc_DBD += stream.dbd
myioc_LIBS += stream
The IOC builds fine but a careful look reveals that dbdExpand.pl prints
the following message:
"Device using undefined record type 'scalcout', place-holder created"
When I try to run the IOC it fails to load the DBD file:
dbLoadDatabase("../../dbd/myioc.dbd",0,0)
Declaration of recordtype(scalcout) preceeded full definition.
Error at or before "}" in file "../../dbd/myioc.dbd" line 5335
The relevant lines are:
5334 recordtype(scalcout) {
5335 }
5336 device(scalcout, INST_IO, devscalcoutStream, "stream")
I understand that the scalcout record not being defined anywhere is a
problem. So I use the following lines in the IOC's Makefile and
everything works as intended:
myioc_DBD += calc.dbd
myioc_DBD += stream.dbd
myioc_LIBS += calc
myioc_LIBS += stream
However, I'm wondering if there is a way I can build stream without
forcing IOC engineers to include a DBD file they aren't using. In other
words: Is there a way to include the relevant calc stuff into stream.dbd
without causing problems on IOCs that are using calc directly?
Any help is appreciated,
Martin
P.S.: I'm using StreamDevice 2.8.8, calc 3.7.1 and Base 3.15.6.
--
Martin Konrad
High Performance Controls Team Leader
Facility for Rare Isotope Beams
Michigan State University
640 South Shaw Lane
East Lansing, MI 48824-1321, USA
Tel. 517-908-7253
Email: [email protected]
- References:
- Inter-module dependency between stream and calc Konrad, Martin via Tech-talk
- Navigate by Date:
- Prev:
Inter-module dependency between stream and calc Konrad, Martin via Tech-talk
- Next:
RE: drvAsynIPPort Not receiving broadcast UDP [SEC=UNCLASSIFIED] Mark Rivers 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:
Inter-module dependency between stream and calc Konrad, Martin via Tech-talk
- Next:
Re: Inter-module dependency between stream and calc Zimoch Dirk (PSI) 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, 19 Mar 2019 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|