monitor if either the STAT or SEVR changes

This commit is contained in:
Marty Kraimer
2000-06-28 13:40:50 +00:00
parent 77049dd60d
commit 335fc3aaee

View File

@@ -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){