diff --git a/rec-nan.patch b/rec-nan.patch new file mode 100644 index 000000000..f61070fcc --- /dev/null +++ b/rec-nan.patch @@ -0,0 +1,190 @@ +=== modified file 'src/rec/aiRecord.c' +--- src/rec/aiRecord.c 2010-10-05 19:27:37 +0000 ++++ src/rec/aiRecord.c 2012-10-07 02:48:01 +0000 +@@ -385,7 +385,7 @@ + /* check for value change */ + delta = prec->mlst - prec->val; + if(delta<0.0) delta = -delta; +- if (delta > prec->mdel) { ++ if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ + /* post events for value change */ + monitor_mask |= DBE_VALUE; + /* update last value monitored */ +@@ -395,7 +395,7 @@ + /* check for archive change */ + delta = prec->alst - prec->val; + if(delta<0.0) delta = -delta; +- if (delta > prec->adel) { ++ if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ + /* post events on value field for archive change */ + monitor_mask |= DBE_LOG; + /* update last archive value monitored */ + +=== modified file 'src/rec/aoRecord.c' +--- src/rec/aoRecord.c 2010-10-05 19:27:37 +0000 ++++ src/rec/aoRecord.c 2012-10-07 02:48:01 +0000 +@@ -484,7 +484,7 @@ + /* check for value change */ + delta = prec->mlst - prec->val; + if(delta<0.0) delta = -delta; +- if (delta > prec->mdel) { ++ if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ + /* post events for value change */ + monitor_mask |= DBE_VALUE; + /* update last value monitored */ +@@ -493,7 +493,7 @@ + /* check for archive change */ + delta = prec->alst - prec->val; + if(delta<0.0) delta = -delta; +- if (delta > prec->adel) { ++ if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ + /* post events on value field for archive change */ + monitor_mask |= DBE_LOG; + /* update last archive value monitored */ + +=== modified file 'src/rec/calcRecord.c' +--- src/rec/calcRecord.c 2010-11-24 19:35:04 +0000 ++++ src/rec/calcRecord.c 2012-10-07 02:48:01 +0000 +@@ -310,7 +310,7 @@ + /* check for value change */ + delta = prec->mlst - prec->val; + if (delta < 0.0) delta = -delta; +- if (delta > prec->mdel) { ++ if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ + /* post events for value change */ + monitor_mask |= DBE_VALUE; + /* update last value monitored */ +@@ -319,7 +319,7 @@ + /* check for archive change */ + delta = prec->alst - prec->val; + if (delta < 0.0) delta = -delta; +- if (delta > prec->adel) { ++ if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ + /* post events on value field for archive change */ + monitor_mask |= DBE_LOG; + /* update last archive value monitored */ + +=== modified file 'src/rec/calcoutRecord.c' +--- src/rec/calcoutRecord.c 2012-03-08 15:47:38 +0000 ++++ src/rec/calcoutRecord.c 2012-10-07 02:48:01 +0000 +@@ -209,7 +209,7 @@ + static long process(calcoutRecord *prec) + { + rpvtStruct *prpvt = prec->rpvt; +- int doOutput = 0; ++ int doOutput; + + if (!prec->pact) { + prec->pact = TRUE; +@@ -231,21 +231,22 @@ + doOutput = 1; + break; + case calcoutOOPT_On_Change: +- if (fabs(prec->pval - prec->val) > prec->mdel) doOutput = 1; ++ doOutput = ! (fabs(prec->pval - prec->val) <= prec->mdel); + break; + case calcoutOOPT_Transition_To_Zero: +- if ((prec->pval != 0.0) && (prec->val == 0.0)) doOutput = 1; ++ doOutput = ((prec->pval != 0.0) && (prec->val == 0.0)); + break; + case calcoutOOPT_Transition_To_Non_zero: +- if ((prec->pval == 0.0) && (prec->val != 0.0)) doOutput = 1; ++ doOutput = ((prec->pval == 0.0) && (prec->val != 0.0)); + break; + case calcoutOOPT_When_Zero: +- if (prec->val == 0.0) doOutput = 1; ++ doOutput = (prec->val == 0.0); + break; + case calcoutOOPT_When_Non_zero: +- if (prec->val != 0.0) doOutput = 1; ++ doOutput = (prec->val != 0.0); + break; + default: ++ doOutput = 0; + break; + } + prec->pval = prec->val; +@@ -584,7 +585,7 @@ + /* check for value change */ + delta = prec->mlst - prec->val; + if (delta<0.0) delta = -delta; +- if (delta > prec->mdel) { ++ if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ + /* post events for value change */ + monitor_mask |= DBE_VALUE; + /* update last value monitored */ +@@ -593,7 +594,7 @@ + /* check for archive change */ + delta = prec->alst - prec->val; + if (delta<0.0) delta = -delta; +- if (delta > prec->adel) { ++ if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ + /* post events on value field for archive change */ + monitor_mask |= DBE_LOG; + /* update last archive value monitored */ + +=== modified file 'src/rec/dfanoutRecord.c' +--- src/rec/dfanoutRecord.c 2010-10-05 19:27:37 +0000 ++++ src/rec/dfanoutRecord.c 2012-10-07 02:48:01 +0000 +@@ -267,7 +267,7 @@ + /* check for value change */ + delta = prec->mlst - prec->val; + if(delta<0) delta = -delta; +- if (delta > prec->mdel) { ++ if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ + /* post events for value change */ + monitor_mask |= DBE_VALUE; + /* update last value monitored */ +@@ -276,7 +276,7 @@ + /* check for archive change */ + delta = prec->alst - prec->val; + if(delta<0) delta = -delta; +- if (delta > prec->adel) { ++ if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ + /* post events on value field for archive change */ + monitor_mask |= DBE_LOG; + /* update last archive value monitored */ + +=== modified file 'src/rec/selRecord.c' +--- src/rec/selRecord.c 2010-10-05 19:27:37 +0000 ++++ src/rec/selRecord.c 2012-10-07 02:48:01 +0000 +@@ -300,7 +300,7 @@ + /* check for value change */ + delta = prec->mlst - prec->val; + if(delta<0.0) delta = -delta; +- if (delta > prec->mdel) { ++ if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ + /* post events for value change */ + monitor_mask |= DBE_VALUE; + /* update last value monitored */ +@@ -309,7 +309,7 @@ + /* check for archive change */ + delta = prec->alst - prec->val; + if(delta<0.0) delta = -delta; +- if (delta > prec->adel) { ++ if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ + /* post events on value field for archive change */ + monitor_mask |= DBE_LOG; + /* update last archive value monitored */ + +=== modified file 'src/rec/subRecord.c' +--- src/rec/subRecord.c 2010-10-05 19:27:37 +0000 ++++ src/rec/subRecord.c 2012-10-07 02:48:01 +0000 +@@ -353,7 +353,7 @@ + /* check for value change */ + delta = prec->val - prec->mlst; + if (delta < 0.0) delta = -delta; +- if (delta > prec->mdel) { ++ if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ + /* post events for value change */ + monitor_mask |= DBE_VALUE; + /* update last value monitored */ +@@ -362,7 +362,7 @@ + /* check for archive change */ + delta = prec->val - prec->alst; + if (delta < 0.0) delta = -delta; +- if (delta > prec->adel) { ++ if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ + /* post events on value field for archive change */ + monitor_mask |= DBE_LOG; + /* update last archive value monitored */ diff --git a/src/rec/aiRecord.c b/src/rec/aiRecord.c index 657df122b..07111ab0d 100644 --- a/src/rec/aiRecord.c +++ b/src/rec/aiRecord.c @@ -385,7 +385,7 @@ static void monitor(aiRecord *prec) /* check for value change */ delta = prec->mlst - prec->val; if(delta<0.0) delta = -delta; - if (delta > prec->mdel) { + if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ /* post events for value change */ monitor_mask |= DBE_VALUE; /* update last value monitored */ @@ -395,7 +395,7 @@ static void monitor(aiRecord *prec) /* check for archive change */ delta = prec->alst - prec->val; if(delta<0.0) delta = -delta; - if (delta > prec->adel) { + if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ /* post events on value field for archive change */ monitor_mask |= DBE_LOG; /* update last archive value monitored */ diff --git a/src/rec/aoRecord.c b/src/rec/aoRecord.c index d166c22ac..2f2e6c968 100644 --- a/src/rec/aoRecord.c +++ b/src/rec/aoRecord.c @@ -484,7 +484,7 @@ static void monitor(aoRecord *prec) /* check for value change */ delta = prec->mlst - prec->val; if(delta<0.0) delta = -delta; - if (delta > prec->mdel) { + if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ /* post events for value change */ monitor_mask |= DBE_VALUE; /* update last value monitored */ @@ -493,7 +493,7 @@ static void monitor(aoRecord *prec) /* check for archive change */ delta = prec->alst - prec->val; if(delta<0.0) delta = -delta; - if (delta > prec->adel) { + if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ /* post events on value field for archive change */ monitor_mask |= DBE_LOG; /* update last archive value monitored */ diff --git a/src/rec/calcRecord.c b/src/rec/calcRecord.c index 6af2448e7..e202b4276 100644 --- a/src/rec/calcRecord.c +++ b/src/rec/calcRecord.c @@ -310,7 +310,7 @@ static void monitor(calcRecord *prec) /* check for value change */ delta = prec->mlst - prec->val; if (delta < 0.0) delta = -delta; - if (delta > prec->mdel) { + if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ /* post events for value change */ monitor_mask |= DBE_VALUE; /* update last value monitored */ @@ -319,7 +319,7 @@ static void monitor(calcRecord *prec) /* check for archive change */ delta = prec->alst - prec->val; if (delta < 0.0) delta = -delta; - if (delta > prec->adel) { + if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ /* post events on value field for archive change */ monitor_mask |= DBE_LOG; /* update last archive value monitored */ diff --git a/src/rec/calcoutRecord.c b/src/rec/calcoutRecord.c index 95b7c0d10..0700947f8 100644 --- a/src/rec/calcoutRecord.c +++ b/src/rec/calcoutRecord.c @@ -211,7 +211,7 @@ static long init_record(calcoutRecord *prec, int pass) static long process(calcoutRecord *prec) { rpvtStruct *prpvt = prec->rpvt; - int doOutput = 0; + int doOutput; if (!prec->pact) { prec->pact = TRUE; @@ -233,21 +233,22 @@ static long process(calcoutRecord *prec) doOutput = 1; break; case calcoutOOPT_On_Change: - if (fabs(prec->pval - prec->val) > prec->mdel) doOutput = 1; + doOutput = ! (fabs(prec->pval - prec->val) <= prec->mdel); break; case calcoutOOPT_Transition_To_Zero: - if ((prec->pval != 0.0) && (prec->val == 0.0)) doOutput = 1; + doOutput = ((prec->pval != 0.0) && (prec->val == 0.0)); break; case calcoutOOPT_Transition_To_Non_zero: - if ((prec->pval == 0.0) && (prec->val != 0.0)) doOutput = 1; + doOutput = ((prec->pval == 0.0) && (prec->val != 0.0)); break; case calcoutOOPT_When_Zero: - if (prec->val == 0.0) doOutput = 1; + doOutput = (prec->val == 0.0); break; case calcoutOOPT_When_Non_zero: - if (prec->val != 0.0) doOutput = 1; + doOutput = (prec->val != 0.0); break; default: + doOutput = 0; break; } prec->pval = prec->val; @@ -580,7 +581,7 @@ static void monitor(calcoutRecord *prec) /* check for value change */ delta = prec->mlst - prec->val; if (delta<0.0) delta = -delta; - if (delta > prec->mdel) { + if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ /* post events for value change */ monitor_mask |= DBE_VALUE; /* update last value monitored */ @@ -589,7 +590,7 @@ static void monitor(calcoutRecord *prec) /* check for archive change */ delta = prec->alst - prec->val; if (delta<0.0) delta = -delta; - if (delta > prec->adel) { + if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ /* post events on value field for archive change */ monitor_mask |= DBE_LOG; /* update last archive value monitored */ diff --git a/src/rec/dfanoutRecord.c b/src/rec/dfanoutRecord.c index ba6c579aa..e2efc931c 100644 --- a/src/rec/dfanoutRecord.c +++ b/src/rec/dfanoutRecord.c @@ -267,7 +267,7 @@ static void monitor(dfanoutRecord *prec) /* check for value change */ delta = prec->mlst - prec->val; if(delta<0) delta = -delta; - if (delta > prec->mdel) { + if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ /* post events for value change */ monitor_mask |= DBE_VALUE; /* update last value monitored */ @@ -276,7 +276,7 @@ static void monitor(dfanoutRecord *prec) /* check for archive change */ delta = prec->alst - prec->val; if(delta<0) delta = -delta; - if (delta > prec->adel) { + if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ /* post events on value field for archive change */ monitor_mask |= DBE_LOG; /* update last archive value monitored */ diff --git a/src/rec/selRecord.c b/src/rec/selRecord.c index 919438962..542b2163b 100644 --- a/src/rec/selRecord.c +++ b/src/rec/selRecord.c @@ -300,7 +300,7 @@ static void monitor(selRecord *prec) /* check for value change */ delta = prec->mlst - prec->val; if(delta<0.0) delta = -delta; - if (delta > prec->mdel) { + if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ /* post events for value change */ monitor_mask |= DBE_VALUE; /* update last value monitored */ @@ -309,7 +309,7 @@ static void monitor(selRecord *prec) /* check for archive change */ delta = prec->alst - prec->val; if(delta<0.0) delta = -delta; - if (delta > prec->adel) { + if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ /* post events on value field for archive change */ monitor_mask |= DBE_LOG; /* update last archive value monitored */ diff --git a/src/rec/subRecord.c b/src/rec/subRecord.c index eb92e137b..1cf2d4868 100644 --- a/src/rec/subRecord.c +++ b/src/rec/subRecord.c @@ -353,7 +353,7 @@ static void monitor(subRecord *prec) /* check for value change */ delta = prec->val - prec->mlst; if (delta < 0.0) delta = -delta; - if (delta > prec->mdel) { + if (!(delta <= prec->mdel)) { /* Handles MDEL == NAN */ /* post events for value change */ monitor_mask |= DBE_VALUE; /* update last value monitored */ @@ -362,7 +362,7 @@ static void monitor(subRecord *prec) /* check for archive change */ delta = prec->val - prec->alst; if (delta < 0.0) delta = -delta; - if (delta > prec->adel) { + if (!(delta <= prec->adel)) { /* Handles ADEL == NAN */ /* post events on value field for archive change */ monitor_mask |= DBE_LOG; /* update last archive value monitored */