EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: Re: mbbo record behavior changes
From: Marty Kraimer <[email protected]>
To: Bill Cruise <[email protected]>
Cc: [email protected]
Date: Thu, 02 Oct 2003 09:00:32 -0500
There is nothing wrong with your database. You have discovered a bug.

The release notes show that a change was made to mbboRecord

>mbboRecord

>Field VAL now has a cvt_dbaddr method. If any state strings are defined the >field type and dbr_field_type are declared ENUM. If no state strings are >defined then the type is USHORT. Previously the types were always ENUM.


This change was OK. HOWEVER.


At iocInit time the following happens:

1) init_record is called for all records with pass=0
2) All links except INP and OUT are resolved.
    This causes the stringout record DOL link to be resolved.
3) init_record is called for all records with pass=1
   It is during this pass that mbboRecord looks to see
   if any strings have been defined

Since DOL is resolved BEFORE the mbboRecord has looked for strings,
the cvt_dbaddr of the mbboRecord sets the type to USHORT.

The fix will be to make mbboRecord look for strings being defined during pass=0.

Marty Kraimer


Bill Cruise wrote:
I'm finally getting back to my 3.13B11 to 3.13.8 upgrade and tackling
all the interesting little problems introduced therein.  This one is
a bit more perplexing, so I'd like to ask about it before throwing
a fix at it.  I'll also present a simplified case, rather than the
convoluted one in my system.

The test case database is simply this:

an mbbi VAL is connected to a stringIn INP
an mbbo VAL is connected to a stringOut DOL

Both the mbbi and mbbo have a few enum strings defined.

In 3.13B11 I get strings in the string records in either case.

In 3.13.8 I get strings with the mbbi, but get the corresponding numerals in the stringOut record with the mbbo. You can imagine what this does to downstream processing that expects strings! If I use dbgf or caget, I do get strings right out of the mbbo.

I guess the first question is whether there has been a change in how
these record interconnections are supposed to work.  If so, I'll just
have to switch all my mbbo's to mbbi's in cases like this.

And, the second, most obvious, question is what am I doing wrong!
This is also, by far, the most likely case.


Thanks for any help on this one.

Bill





References:
mbbo record behavior changes Bill Cruise

Navigate by Date:
Prev: mbbo record behavior changes Bill Cruise
Next: EPICS meeting agenda Bob Dalesio
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: mbbo record behavior changes Bill Cruise
Next: EPICS meeting agenda Bob Dalesio
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  <20032004  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 ·