From cbac1c54f573fc0199932d2cda190fe1469ec6ba Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 2 Nov 2020 09:41:16 -0800 Subject: [PATCH] test/ioc/db: xRecord handle alarms --- modules/database/test/ioc/db/xRecord.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/modules/database/test/ioc/db/xRecord.c b/modules/database/test/ioc/db/xRecord.c index e2e5fba5a..7cbcf1508 100644 --- a/modules/database/test/ioc/db/xRecord.c +++ b/modules/database/test/ioc/db/xRecord.c @@ -16,7 +16,8 @@ #include -#include "dbAccessDefs.h" +#include "dbAccess.h" +#include "dbEvent.h" #include "recSup.h" #include "recGbl.h" #include "devSup.h" @@ -45,17 +46,30 @@ static long init_record(struct dbCommon *pcommon, int pass) return ret; } +static void monitor(xRecord *prec) +{ + unsigned short monitor_mask = recGblResetAlarms(prec); + + /* we don't track value change, so always post */ + monitor_mask |= DBE_VALUE | DBE_LOG; + + if (monitor_mask){ + db_post_events(prec,&prec->val,monitor_mask); + } +} + static long process(struct dbCommon *pcommon) { struct xRecord *prec = (struct xRecord *)pcommon; long ret = 0; xdset *xset = (xdset*)prec->dset; + prec->pact = TRUE; if(prec->clbk) (*prec->clbk)(prec); - prec->pact = TRUE; if(xset && xset->process) ret = (*xset->process)(prec); + monitor(prec); recGblGetTimeStamp(prec); recGblFwdLink(prec); prec->pact = FALSE;