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: Utter Newbie: Can't get simple app going!
From: Jason Tiller <[email protected]>
To: [email protected]
Date: Fri, 13 Mar 2009 19:38:31 -0700 (PDT)
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

Replies:
RE: Utter Newbie: Can't get simple app going! Mark Rivers
Re: Utter Newbie: Can't get simple app going! Russell Kackley

Navigate by Date:
Prev: Re: Looking for feedback on what epics users require Emmanuel Mayssat
Next: RE: Utter Newbie: Can't get simple app going! Mark Rivers
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: [Fwd: Re: MM4000 asynMotor problem] Ron Sluiter
Next: RE: Utter Newbie: Can't get simple app going! Mark Rivers
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 ·