Hi Dave,
The only place that defines your full list of variable values and which .db files they apply to is your
st.cmd file, plus any other .cmd or .iocsh files that it runs. EPICS only comes with one parser which can extract that information out of the st.cmd file — the IOC shell, as it boots the IOC. As Mark Rivers rightly
pointed out, the IOC can output its complete list of record names to a file by redirecting the
dbl command output, and that's the approach we use here for populating our CA name-servers.
If boot time is too late for your system design though another such parser does exist. It isn't normally used at build time, but might be modified to do that. Search for references to IRMIS in the
tech-talk archives, IRMIS has its own crawler for parsing st.cmd files and database template files. It was designed to populate a relational database with the complete set of record names and field values for all IOCs in the control system, and it also
parses other control system files that name PVs such as MEDM displays, alarm handler configurations and SNL programs, i.e. some of the other places you need to change if you rename or delete records from an IOC's database.
We still use IRMIS here at APS for exactly that and have updated it to support EPICS 7, but I don't know if any other labs are still using it. Some of the online documentation may no longer be available, but
this link provides the Agenda and slides from an IRMIS Collaboration meeting held in 2005 which should give you some ideas of its capabilities. We should be able to provide you a copy of our crawler code on request.
- Andrew
--
Complexity comes for free, Simplicity you have to work for.
On 7/23/26, 3:27 PM, "Tech-talk" <tech-talk-bounces at aps.anl.gov> wrote:
Very slick, you guys! So simple...
But I think we can’t wait until we launch the IOC - we may need to do it at build time.
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Pierrick Hanlet via Tech-talk <tech-talk at aps.anl.gov>
Date: Thursday, July 23, 2026 at 3:23 PM
To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: Create record name manifest during build
Or, in our case "pvxsl". Both work.
On 7/23/26 15:18, Mark Rivers via Tech-talk wrote:
Hi David,
An alternative 1 line solution is add this line to the end of the IOC startup script:
dbl > myIOC_record_list.txt
Mark
Some of our IOC projects would like to use macro substitutions at their dbLoadRecords invocations in st.cmd:
dbLoadRecords("${EPICS_IOCTOPS}/${IOCDIR}/db/MyRecords.db”, “P=XYZ”)
This means that the *.db files created by the build will have incompletely substituted record names after the build completes.
We have tooling that scrapes record names from the build-product *.db files, but the above would cause it to not see the final record names.
I would like to have the build create a manifest file that contains the fully substituted record names, basically by using grep, awk, etc. to parse the source db filename/path and the substitution tokens, and then call the perl script that does the substitutions,
producing some file that is just a list of the fully substituted record names.
However, I don’t know how to make an EPICS Makefile do such an arbitrary thing.
May I please get some guidance as to a smart way to do this?
Dave Bracey
Fermi National Accelerator Laboratory
--
Pierrick Hanlet
Fermi National Accelerator
Accelerator Front End Controls
+1-630-840-5555 -- lab
+1-312-687-4980 -- mobile
"Whether you think you can or think you can't, you're right" -- Henry Ford
- Replies:
- Re: Create record name manifest during build Michael Davidsaver via Tech-talk
- References:
- Create record name manifest during build David Bracey via Tech-talk
- Re: Create record name manifest during build Mark Rivers via Tech-talk
- Re: Create record name manifest during build Pierrick Hanlet via Tech-talk
- Re: Create record name manifest during build David Bracey via Tech-talk
- Navigate by Date:
- Prev:
Re: Create record name manifest during build David Bracey via Tech-talk
- Next:
Re: Create record name manifest during build Michael Davidsaver 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
2025
<2026>
- Navigate by Thread:
- Prev:
Re: Create record name manifest during build David Bracey via Tech-talk
- Next:
Re: Create record name manifest during build Michael Davidsaver 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
2025
<2026>
|