EPICS Home

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

Subject: Multiple macro Substitution
From: Stephen Beckwith <[email protected]>
To: "[email protected]" <[email protected]>
Date: Thu, 8 May 2014 09:35:35 -0400
Greetings All,
   I have the following quandray to which I am unable to find a solution.  Given my (limited) understanding of EPICS and how it describes it's databases/records, maybe I'm missing something here, or maybe I'm just SOL.
Setup:  EPICS 3.14.12.4
    ASYN4-22
Target: Host mode run for testing (AMD x86, Ubuntu Linux)  Eventual target is Dual-Core ARM Cortex A9 running Embedded Linux.
Desired Goal:  @ initialization (run-time), when the records are loaded (after initialization), via a .subs file, have the .subs file itself include another file that was written during initialiation which contains data for macro substitution.

Current setup:
 -  st.cmd uses dbLoadTemplate "db/node.subs"
 -  node .sub has 3 sets of:
file "db/db1.db" {
    { nodeID = "AA-000102:" }
}
 -  This then gives one a Process Variable (PV) of:  "AA-000102:SystemTemp" for example
This works just fine dandy. 

Now, what I would like to do is:  Replace the "AA-000102" with another string, read from
a file that was genrated/written prior to loading the DB.
So this becomes like a "macro within a macro" sort of situation.
Scouring tech-talk doesn't turn up anything - there a couple close ones, but trying them failed. . .

The "AA-000102" is the "node name" for the device where "000102" is really the last 3 bytes of the devices MAC address.  I have the code that generates this information, that I can then write to a file, or EXPORT to the environment (though I believe this would be too late to have any affect).
The "hard way" is for me to re-create this .subs file @ initialization with the correct information, but that seems alot of work.  Or run some utility prior to starting EPICS IOC to generate this static file. . .

I was hoping the EPICS system would be smart enough handle this for me.

This is a "run-time" binding (sort of), which limits my options over a static setup.

Thank you for your time and expertise.

Regards,
Stephen Beckwith


Navigate by Date:
Prev: support for oriel cornerstone monochromator David M. Kline
Next: Application Export from CSS IDE Ganesh Jangir
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: support for oriel cornerstone monochromator David M. Kline
Next: Application Export from CSS IDE Ganesh Jangir
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024