diff --git a/modules/database/src/std/rec/waveformRecord.c b/modules/database/src/std/rec/waveformRecord.c index 72bc63efd..610657079 100644 --- a/modules/database/src/std/rec/waveformRecord.c +++ b/modules/database/src/std/rec/waveformRecord.c @@ -124,6 +124,7 @@ static long process(struct dbCommon *pcommon) struct waveformRecord *prec = (struct waveformRecord *)pcommon; wfdset *pdset = (wfdset *)(prec->dset); unsigned char pact=prec->pact; + epicsUInt32 nord = prec->nord; long status; if ((pdset==NULL) || (pdset->read_wf==NULL)) { @@ -143,6 +144,8 @@ static long process(struct dbCommon *pcommon) prec->udf = FALSE; recGblGetTimeStampSimm(prec, prec->simm, &prec->siol); + if (nord != prec->nord) + db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG); monitor(prec); /* process the forward scan link record */ @@ -206,7 +209,9 @@ static long put_array_info(DBADDR *paddr, long nNew) prec->nord = prec->nelm; if (nord != prec->nord) + { db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG); + } return 0; } @@ -334,11 +339,7 @@ static long readValue(waveformRecord *prec) switch (prec->simm) { case menuYesNoNO: { - epicsUInt32 nord = prec->nord; - status = pdset->read_wf(prec); - if (nord != prec->nord) - db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG); break; } @@ -353,7 +354,6 @@ static long readValue(waveformRecord *prec) if (nRequest != prec->nord) { prec->nord = nRequest; - db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG); } prec->pact = FALSE; }