diff --git a/modules/database/src/std/filters/dbnd.c b/modules/database/src/std/filters/dbnd.c index 2a94f146e..fdbc612f8 100644 --- a/modules/database/src/std/filters/dbnd.c +++ b/modules/database/src/std/filters/dbnd.c @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include typedef struct myStruct { @@ -81,8 +81,8 @@ static db_field_log* filter(void* pvt, dbChannel *chan, db_field_log *pfl) { status = dbFastGetConvertRoutine[pfl->field_type][DBR_DOUBLE] (localAddr.pfield, (void*) &val, &localAddr); if (!status) { - send = 0; - recGblCheckDeadband(&my->last, val, my->hyst, &send, 1); + send = pfl->mask & ~(DBE_VALUE|DBE_LOG); + recGblCheckDeadband(&my->last, val, my->hyst, &send, pfl->mask & (DBE_VALUE|DBE_LOG)); if (send && my->mode == 1) { my->hyst = val * my->cval/100.; } diff --git a/modules/database/test/std/filters/dbndTest.c b/modules/database/test/std/filters/dbndTest.c index 0206865fb..d9c0b96d0 100644 --- a/modules/database/test/std/filters/dbndTest.c +++ b/modules/database/test/std/filters/dbndTest.c @@ -13,6 +13,7 @@ #include +#include "dbAccess.h" #include "dbStaticLib.h" #include "dbAccessDefs.h" #include "db_field_log.h" @@ -46,6 +47,7 @@ static void fl_setup(dbChannel *chan, db_field_log *pfl) { pfl->stat = prec->stat; pfl->sevr = prec->sevr; pfl->time = prec->time; + pfl->mask = DBE_VALUE; pfl->field_type = dbChannelFieldType(chan); pfl->field_size = dbChannelFieldSize(chan); pfl->no_elements = dbChannelElements(chan);