From 92903361d0f8c8be3d02f6497611209f88b10a96 Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Wed, 10 Oct 2018 11:08:41 +0200 Subject: [PATCH] handle state alarms in mbbo update --- src/devmbboStream.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/devmbboStream.c b/src/devmbboStream.c index 740a15f..9939629 100644 --- a/src/devmbboStream.c +++ b/src/devmbboStream.c @@ -79,12 +79,21 @@ static long readData(dbCommon *record, format_t *format) if (record->pact) return DO_NOT_CONVERT; /* In @init handler, no processing, enforce monitor updates. */ monitor_mask = recGblResetAlarms(record); + if (mbbo->val > 15) { + recGblSetSevr(record, STATE_ALARM, mbbo->unsv); + } else { + recGblSetSevr(record, STATE_ALARM, (&(mbbo->zrsv))[mbbo->val]); + } + mbbo->lalm = mbbo->val; + if (mbbo->val != mbbo->lalm) { + if (!recGblSetSevr(record, COS_ALARM, mbbo->cosv)) mbbo->lalm = mbbo->val; + } if (mbbo->mlst != mbbo->val) { monitor_mask |= (DBE_VALUE | DBE_LOG); mbbo->mlst = mbbo->val; } - if (monitor_mask){ + if (monitor_mask) { db_post_events(record, &mbbo->val, monitor_mask); } if (mbbo->oraw != mbbo->rval) {