EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  <19992000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  <19992000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: DTYP + Link order
From: Luedeke Andreas <[email protected]>
To: tech-talk <[email protected]>
Date: Tue, 12 Oct 1999 11:51:16 +0200
Hi all,
we observed a strange "mis-feature" with our database files. Actually it seems that the configuration of a VME_IO hardware link depends on the order of DTYP and INP/OUT definition in the .db file. Is this meant to be that way? If not, what have we done wrong?
 

I have the following .db file:

  • record(ao,"test:I-SET") {
  •   field(DTYP,"Psc_IP")
  •   field(OUT,"#C1 S2 @set_ref_current")
  • }

  • with the definition in .dbd:

  • device(ao,VME_IO,devAoPscLink,"Psc_IP")
  • driver(drvPscIp)

  • The init routine of the driver is:

  • STATIC long init_record_ai(struct aiRecord *p_rec)
  • {
  •     struct vmeio* vmeio=&(p_rec->out.value.vmeio);
  •     printf( "init_record_ao: (#C%i S%i @%s)\n", vmeio->card, vmeio->signal, vmeio->parm );
  •     spc_lincnv_ao(p_rec, TRUE);
  •     return ( init_record_generic(p_rec, &p_rec->dpvt, p_rec->out.value.vmeio, p_rec->out.type, PSC_LINK_WORD_WRITE_REG, 0) );
  • }

  • In that case, I get the correct output from iocInit:
    init_record_ao: (#C1 S2 @set_ref_current)

    if I only exchange the field definition lines in my .db file to:

  • record(ao,"test:I-SET") {
  •   field(OUT,"#C1 S2 @set_ref_current")
  •   field(DTYP,"Psc_IP")
  • }

  • then I get the output:
    init_record_ao: (#C0 S0 @)

    After looking in the source of dbLoadRecord.c, I think it is meant to be that way. In the function yyparse, each line is interpreted after another. If the field OUT is parsed, the current setting of pdbentry->pflddes->field_type is used to determine the parsing procedure. I don't know what's the default setting of the field type, but it seems to be not VME_IO.

    I neither found anything written down in the application developers guide nor in the record reference manual and searching for some keywords in tech-talk didn't gave useful results. I can't believe that I'm the first one stumbling over that. Maybe the one who has written the stuff can comment on it.

    Thanks
        Andreas

    -- 
    Andreas Luedeke, Controls Group, Swiss-Light-Source, PSI
    mailto:[email protected], tel:+41-(0)56-310-4002, fax:-3351
     
    Replies:
    Re: DTYP + Link order Andrew Johnson

    Navigate by Date:
    Prev: Re: Problem with epics alarm Steve Lewis
    Next: Re: DTYP + Link order Andrew Johnson
    Index: 1994  1995  1996  1997  1998  <19992000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
    Navigate by Thread:
    Prev: Re: Problem with epics alarm Steve Lewis
    Next: Re: DTYP + Link order Andrew Johnson
    Index: 1994  1995  1996  1997  1998  <19992000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
    ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
    · Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·