dev, rec: Fix smoothing for NaN/+inf/-inf values in ai record and soft support

This commit is contained in:
Ralph Lange
2014-08-01 17:20:55 +02:00
parent 152e8865cc
commit a5fe64a8ad
2 changed files with 3 additions and 2 deletions
+2 -1
View File
@@ -20,6 +20,7 @@
#include "alarm.h"
#include "dbDefs.h"
#include "dbAccess.h"
#include "epicsMath.h"
#include "recGbl.h"
#include "devSup.h"
#include "aiRecord.h"
@@ -78,7 +79,7 @@ static long read_ai(aiRecord *prec)
if (!dbGetLink(&prec->inp, DBR_DOUBLE, &val, 0, 0)) {
/* Apply smoothing algorithm */
if (prec->smoo != 0.0 && prec->dpvt)
if (prec->smoo != 0.0 && prec->dpvt && finite(prec->val))
prec->val = val * (1.00 - prec->smoo) + (prec->val * prec->smoo);
else
prec->val = val;
+1 -1
View File
@@ -367,7 +367,7 @@ static void convert(aiRecord *prec)
}
/* apply smoothing algorithm */
if (prec->smoo != 0.0){
if (prec->smoo != 0.0 && finite(prec->val)){
if (prec->init) prec->val = val; /* initial condition */
prec->val = val * (1.00 - prec->smoo) + (prec->val * prec->smoo);
}else{