Item 1.
We have noticed the following behavior in the MBBO record when we have
a constant DOL field.
In init_record:
If the DOL is a constant rather than a link, then it is fetched
and written into the VAL field.
if (pmbbo->dol.type == CONSTANT){
pmbbo->val = pmbbo->dol.value.value;
pmbbo->udf = FALSE;
}
But later on within init_record() the VAL field is overwritten by
either raw or converted RVAL field if the DSET entry for init_record
exists.
Then in process:
If DOL is not a constant than we update the value. The code is:
if (pmbbo->dol.type != CONSTANT && pmbbo->omsl == CLOSED_LOOP) {
long status;
unsigned short val;
status = recGblGetFastLink(&pmbbo->dol, (void *) pmbbo, &val);
if(status==0) {
pmbbo->val= val;
pmbbo->udf= FALSE;
}
The net effect is that VAL never has the value of DOL if DOL is a
constant.
Item 2.
Bob Dalesio mentioned that a field known as "IVAL" used to exist on
the MBBO record. The purpose of this field was to allow puts that were
not of type DBR_ENUM into the VAL field thus circumventing the
complaints from put_enum_string(). This is a useful feature if you
have no state strings and associated values defined (SDEF=0).
So far, only MEDM seems to cope with the current situation, all other
programs report an Illegal choice dbPutField error.
Peregrine
-------------------------------------------------------------------------------
Peregrine M. McGehee Canada-France-Hawaii Telescope Corporation
(808) 885-7944 P.O. Box 1597, Kamuela, Hawaii
- Navigate by Date:
- Prev:
Re: application error codes Jeff Hill
- Next:
EPICS status codes proposal William Lupton
- Index:
1994
<1995>
1996
1997
1998
1999
2000
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: help with ar Deb Kerstiens
- Next:
Re: MBBO record support Peregrine McGehee
- Index:
1994
<1995>
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|