From 5ba8080f6ed698da477cc33b54ee939f372fa031 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 13 May 2022 11:36:00 -0700 Subject: [PATCH] Fix undef ts on first camonitor update of NORD Moves db_post_events() calls for NORD to process() function after it updates the timestamp. --- modules/database/src/std/rec/waveformRecord.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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; }