From 84f47716917b47d68ace3f3c63b64059ece56e58 Mon Sep 17 00:00:00 2001 From: Simon Rose Date: Wed, 11 May 2022 12:57:25 +0200 Subject: [PATCH] Single input data test passes --- modules/database/src/std/rec/compressRecord.c | 10 ++++++---- modules/database/test/std/rec/compressTest.c | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/database/src/std/rec/compressRecord.c b/modules/database/src/std/rec/compressRecord.c index d7da7f9b6..7a6e83b4f 100644 --- a/modules/database/src/std/rec/compressRecord.c +++ b/modules/database/src/std/rec/compressRecord.c @@ -28,6 +28,8 @@ #include "dbEvent.h" #include "dbFldTypes.h" #include "errMdef.h" +#include "menuYesNo.h" +#include "menuAlarmStat.h" #include "special.h" #include "recSup.h" #include "recGbl.h" @@ -166,9 +168,9 @@ static int compress_array(compressRecord *prec, } if (prec->n <= 0) prec->n = 1; - n = prec->n; - if (no_elements < n) + if (no_elements < prec->n && prec->pbuf != menuYesNoYES) return 1; /*dont do anything*/ + n = no_elements; /* determine number of samples to take */ if (no_elements < nsam * n) @@ -272,7 +274,7 @@ static int array_average(compressRecord *prec, prec->inx = 0; return 0; } - + static int compress_scalar(struct compressRecord *prec,double *psource) { double value = *psource; @@ -302,7 +304,7 @@ static int compress_scalar(struct compressRecord *prec,double *psource) break; } inx++; - if (inx >= prec->n) { + if (inx >= prec->n || prec->pbuf == menuYesNoYES) { put_value(prec,pdest,1); prec->inx = 0; return 0; diff --git a/modules/database/test/std/rec/compressTest.c b/modules/database/test/std/rec/compressTest.c index 259c9dca4..8d286ab44 100644 --- a/modules/database/test/std/rec/compressTest.c +++ b/modules/database/test/std/rec/compressTest.c @@ -437,7 +437,7 @@ testNto1AveragePartial(void) { long nReq = 1; DBADDR wfaddr, caddr; - testDiag("Test Average"); + testDiag("Test Average, Partial"); testdbPrepare(); testdbReadDatabase("recTestIoc.dbd", NULL, NULL); @@ -480,7 +480,7 @@ testNto1AveragePartial(void) { MAIN(compressTest) { - testPlan(123); + testPlan(127); testFIFOCirc(); testLIFOCirc(); testNto1Average();