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  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 
<== Date ==> <== Thread ==>

Subject: Multiple macro Substitution
From: Stephen Beckwith <embeddedsteve@gmail.com>
To: "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
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 
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