EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  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  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Utter Newbie: Can't get simple app going!
From: Russell Kackley <[email protected]>
To: Jason Tiller <[email protected]>
Cc: [email protected]
Date: Fri, 13 Mar 2009 17:50:39 -1000 (HST)
We use EPICS 3.13.8 on VxWorks here, so there might be differences when running 3.14.9 on a Linux IOC, but here is what I can suggest.

   This is the resulting .db file:

   record(bo, XPP:PP:BO:SC ) {
     field(DESC, "Shutter Control")
     field(DTYP, "ACROMAG-445")
     field(OUT, "@bi0 P0 B0")
     field(ZNAM, "Open")
     field(ONAM, "Closed")
   }

We generate our .db files from capfast and sch2edif, but our .db files have the record names enclosed in double quotes. It is possible that those quotes aren't necessary.

7.  Run my IOC:

   ./st.cmd

   I get an error in the dbLoadRecords line:

   dbLoadRecords("db/xppPP.db")
   filename="../dbLexRoutines.c" line number=955
   Bad Field value dbPutStringError.
   Parsing ')'
      in file db/xppPP.db line 3
   db_parse returned -1

Your .db wants to use a bo record with DTYP = ACROMAG-445. For this to work, before you use dbLoadRecords, you have to use a dbLoadDatabase command that loads a .dbd file to tell EPICS how to handle a bo record with DTYP=ACROMAG-445. Your .dbd file would contain something like this:

device(bo,INST_IO,...,"ACROMAG-445")
driver(...)

There is some other stuff that needs to be in the .dbd file, but I don't have that handy right now. The "..." you have to fill in based on what is in the ACROMAG driver code.


   Because my file is already expanded and contains no substitutions,
   I think I can load it with dbLoadDatabase().  I tried that, but
   the entire IOC died:

   dbLoadDatabase("db/xppPP.db")
   Thread _main_ (0x9a68098) can't proceed, suspending.


I am pretty sure that dbLoadDatabase can't be used to load records. I think it is only used to load a "database definition file", so that it is why the IOC is getting killed by your command. Hope this helps you.

--
Russell Kackley
Joint Astronomy Centre
Hilo, Hawaii

References:
Utter Newbie: Can't get simple app going! Jason Tiller

Navigate by Date:
Prev: RE: Utter Newbie: Can't get simple app going! Mark Rivers
Next: how to change the MEAN without reboot IOC? 汪启胜
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Utter Newbie: Can't get simple app going! Mark Rivers
Next: how to change the MEAN without reboot IOC? 汪启胜
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·