mbbo/mbbiDirect number of bits as precision

Not really useful w/ RSRV/CA, but can be used by QSRV/PVA
to provide number of bits as meta-data.
This commit is contained in:
Michael Davidsaver
2019-01-03 09:15:32 -08:00
parent f955199805
commit ceccafe823
2 changed files with 22 additions and 2 deletions

View File

@@ -51,7 +51,7 @@ static long special(DBADDR *, int);
#define get_array_info NULL
#define put_array_info NULL
#define get_units NULL
#define get_precision NULL
static long get_precision(const DBADDR *, long *);
#define get_enum_str NULL
#define get_enum_strs NULL
#define put_enum_str NULL
@@ -204,6 +204,16 @@ static long special(DBADDR *paddr, int after)
}
}
static long get_precision(const DBADDR *paddr,long *precision)
{
mbbiDirectRecord *prec=(mbbiDirectRecord *)paddr->precord;
if(dbGetFieldIndex(paddr)==mbbiDirectRecordVAL)
*precision = prec->nobt;
else
recGblGetPrec(paddr,precision);
return 0;
}
static void monitor(mbbiDirectRecord *prec)
{
epicsUInt16 events = recGblResetAlarms(prec);

View File

@@ -51,7 +51,7 @@ static long special(DBADDR *, int);
#define get_array_info NULL
#define put_array_info NULL
#define get_units NULL
#define get_precision NULL
static long get_precision(const DBADDR *, long *);
#define get_enum_str NULL
#define get_enum_strs NULL
#define put_enum_str NULL
@@ -313,6 +313,16 @@ static long special(DBADDR *paddr, int after)
return 0;
}
static long get_precision(const DBADDR *paddr,long *precision)
{
mbboDirectRecord *prec=(mbboDirectRecord *)paddr->precord;
if(dbGetFieldIndex(paddr)==mbboDirectRecordVAL)
*precision = prec->nobt;
else
recGblGetPrec(paddr,precision);
return 0;
}
static void monitor(mbboDirectRecord *prec)
{
epicsUInt16 events = recGblResetAlarms(prec);