From 335fc3aaeef01e4aaead28d7ba0b5dce3134feda Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Wed, 28 Jun 2000 13:40:50 +0000 Subject: [PATCH] monitor if either the STAT or SEVR changes --- src/db/recGbl.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/db/recGbl.c b/src/db/recGbl.c index 0b5cbd9f1..584d0d66d 100644 --- a/src/db/recGbl.c +++ b/src/db/recGbl.c @@ -256,6 +256,7 @@ unsigned short recGblResetAlarms(void *precord) { struct dbCommon *pdbc = precord; unsigned short mask,stat,sevr,nsta,nsev,ackt,acks; + unsigned short stat_mask=0; mask = 0; stat=pdbc->stat; sevr=pdbc->sevr; @@ -263,14 +264,16 @@ unsigned short recGblResetAlarms(void *precord) pdbc->stat=nsta; pdbc->sevr=nsev; pdbc->nsta=0; pdbc->nsev=0; /* alarm condition changed this scan?*/ - if (stat!=nsta) { - mask = DBE_ALARM; - db_post_events(pdbc,&pdbc->stat,DBE_VALUE); - } if (sevr!=nsev) { - mask = DBE_ALARM; - db_post_events(pdbc,&pdbc->sevr,DBE_VALUE); + stat_mask = mask = DBE_ALARM; + db_post_events(pdbc,&pdbc->sevr,DBE_VALUE); } + if(stat!=nsta) { + stat_mask |= DBE_VALUE; + mask = DBE_ALARM; + } + if(stat_mask) + db_post_events(pdbc,&pdbc->stat,stat_mask); if(sevr!=nsev || stat!=nsta) { ackt = pdbc->ackt; acks = pdbc->acks; if(!ackt || nsev>=acks){