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: "Mark Rivers" <[email protected]>
To: "Jason Tiller" <[email protected]>, <[email protected]>
Date: Fri, 13 Mar 2009 22:45:14 -0500
Hi Jason,
 
There are a few steps you are missing.
 
You have added the needed support modules to configure/RELEASE.  But you have not actually linked your application with the libraries from those modules.  To do that you need to do 2 things:
 
- Add the dbd files from those modules to your application's xxxInclude.dbd file.
- Add the libraries from those modules to your application's binary.  This is done in the test2App/src/Makefile.
 
Basically the dbd file controls what library modules are actually needed, and the Makefile tells the system where to find those libraries.
 
You have loaded a record with device type ACROMAG-445.  But the system needs to know how to find the needed support files for that.
 
Mark
 

________________________________

From: [email protected] on behalf of Jason Tiller
Sent: Fri 3/13/2009 9:38 PM
To: [email protected]
Subject: Utter Newbie: Can't get simple app going!



Hi, Everyone, :)

My name is Jason Tiller and I'm the newest software developer at SLAC
working on the photon-side control and DAQ systems on the LCLS.  As
many of you probably know, we're using EPICS (3.14.9) for our control
applications.  Iam, however, a complete newcomer to EPICS.

I've been tasked with a short-term project of writing an application
that measures the response time of a beamline shutter.  Towards that
end, I tried to make a dead-simple IOC that is based on the example
IOC but adds a single PV for reading the state of an analog input from
an AcroMag IP445 ADC board.  I can't for the life of me make this
work!

The target system is an MVME6100 (PowerPC) running RTEMS 4.7.1, but I
just want to load my database into a linux-x86 IOC for sanity-checking
purposes.  Here are the steps I followed:

1.  Generate the 'example' application, specifying linux-x86 as the
     target platform:

     makeBaseApp -t example test3

     makeBaseApp -i -t example test3

2.  Modify ./configure/RELEASE to include the modules required by the
     IP445 driver.  I added to RELEASE:

     IPAC=$(EPICS_MODULES)/ipac/$(IPAC_MODULE_VERSION)
     IP445=$(EPICS_MODULES)/xy2445/$(IP445_MODULE_VERSION)

3.  Added a .substitutions file in test3App/Db to generate a record
     for the IP445:

     file "ip445.template"
     {
       pattern { DEV           , CARD , PORT, CH, DESC             , ZNAM  , ONAM     }
               { "XPP:PP:BO:SC", "bi0", 0   , 0 , "Shutter Control", "Open", "Closed" }
     }

     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")
     }

4.  Modified test3App/Db/Makefile to expand this .substitutions file
     into a .db file:

     DB += test3.db

5.  Built from <TOP>:

     make

6.  Modified iocBoot/ioctest3/st.cmd to load my one-record database:

     dbLoadRecords("db/xppPP.db")

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

     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've been beating my head against various combinations of these
problems for days now, with no end in sight.

Could anyone please throw some debugging ideas my way?  I feel as
though I'm simply running in circles, and it's discouraging.

My grateful thanks in advance for any suggestions!

---Jason

Research Software Engineer
PPA Electrical & Software Engineering, LCLS
SLAC National Accelerator Laboratory
(650) 926-3445




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

Navigate by Date:
Prev: Utter Newbie: Can't get simple app going! Jason Tiller
Next: Re: Utter Newbie: Can't get simple app going! Russell Kackley
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: Utter Newbie: Can't get simple app going! Jason Tiller
Next: Re: Utter Newbie: Can't get simple app going! Russell Kackley
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 ·