diff --git a/src/rec/mbboRecord.c b/src/rec/mbboRecord.c index cbd0eaafb..efda5de3d 100644 --- a/src/rec/mbboRecord.c +++ b/src/rec/mbboRecord.c @@ -46,7 +46,7 @@ static long init_record(); static long process(); static long special(); #define get_value NULL -#define cvt_dbaddr NULL +static long cvt_dbaddr(); #define get_array_info NULL #define put_array_info NULL #define get_units NULL @@ -276,6 +276,24 @@ static long special(paddr,after) } } +static long cvt_dbaddr(paddr) + struct dbAddr *paddr; +{ + struct mbboRecord *pmbbo=(struct mbboRecord *)paddr->precord; + int index; + + index = dbGetFieldIndex(paddr); + if(index!=mbboRecordVAL) { + recGblDbaddrError(S_db_badField,paddr,"mbbo: cvt_dbaddr"); + return(0); + } + if(!pmbbo->sdef) { + paddr->field_type = DBF_USHORT; + paddr->dbr_field_type = DBF_USHORT; + } + return(0); +} + static long get_enum_str(paddr,pstring) struct dbAddr *paddr; char *pstring; diff --git a/src/rec/mbboRecord.dbd b/src/rec/mbboRecord.dbd index 849045344..7316b795c 100644 --- a/src/rec/mbboRecord.dbd +++ b/src/rec/mbboRecord.dbd @@ -12,6 +12,7 @@ recordtype(mbbo) { field(VAL,DBF_ENUM) { prompt("Desired Value") promptgroup(GUI_OUTPUT) + special(SPC_DBADDR) asl(ASL0) pp(TRUE) }