|
@@ -734,8 +734,13 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
|
|
|
NUMBERS[j]->ReturnValue = "";
|
|
NUMBERS[j]->ReturnValue = "";
|
|
|
NUMBERS[j]->ErrorMessageText = "";
|
|
NUMBERS[j]->ErrorMessageText = "";
|
|
|
NUMBERS[j]->Value = -1;
|
|
NUMBERS[j]->Value = -1;
|
|
|
- /* TODO to be discussed, see https://github.com/jomjol/AI-on-the-edge-device/issues/1617 */
|
|
|
|
|
-// NUMBERS[j]->lastvalue = imagetime; // must only be set in case of good value !!! --> move to the end
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /* calculate time difference BEFORE we overwrite the 'lastvalue' */
|
|
|
|
|
+ double difference = difftime(imagetime, NUMBERS[j]->lastvalue); // in seconds
|
|
|
|
|
+
|
|
|
|
|
+ /* TODO:
|
|
|
|
|
+ * We could call `NUMBERS[j]->lastvalue = imagetime;` here and remove all other such calls further down.
|
|
|
|
|
+ * But we should check nothing breaks! */
|
|
|
|
|
|
|
|
UpdateNachkommaDecimalShift();
|
|
UpdateNachkommaDecimalShift();
|
|
|
|
|
|
|
@@ -833,7 +838,6 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
|
|
|
#ifdef SERIAL_DEBUG
|
|
#ifdef SERIAL_DEBUG
|
|
|
ESP_LOGD(TAG, "After checkDigitIncreaseConsistency: Value %f", NUMBERS[j]->Value);
|
|
ESP_LOGD(TAG, "After checkDigitIncreaseConsistency: Value %f", NUMBERS[j]->Value);
|
|
|
#endif
|
|
#endif
|
|
|
-
|
|
|
|
|
|
|
|
|
|
if (!NUMBERS[j]->AllowNegativeRates)
|
|
if (!NUMBERS[j]->AllowNegativeRates)
|
|
|
{
|
|
{
|
|
@@ -852,19 +856,21 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
|
|
|
NUMBERS[j]->ErrorMessageText = NUMBERS[j]->ErrorMessageText + "Neg. Rate - Read: " + zwvalue + " - Raw: " + NUMBERS[j]->ReturnRawValue + " - Pre: " + RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma) + " ";
|
|
NUMBERS[j]->ErrorMessageText = NUMBERS[j]->ErrorMessageText + "Neg. Rate - Read: " + zwvalue + " - Raw: " + NUMBERS[j]->ReturnRawValue + " - Pre: " + RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma) + " ";
|
|
|
NUMBERS[j]->Value = NUMBERS[j]->PreValue;
|
|
NUMBERS[j]->Value = NUMBERS[j]->PreValue;
|
|
|
NUMBERS[j]->ReturnValue = "";
|
|
NUMBERS[j]->ReturnValue = "";
|
|
|
|
|
+ NUMBERS[j]->lastvalue = imagetime;
|
|
|
|
|
|
|
|
string _zw = NUMBERS[j]->name + ": Raw: " + NUMBERS[j]->ReturnRawValue + ", Value: " + NUMBERS[j]->ReturnValue + ", Status: " + NUMBERS[j]->ErrorMessageText;
|
|
string _zw = NUMBERS[j]->name + ": Raw: " + NUMBERS[j]->ReturnRawValue + ", Value: " + NUMBERS[j]->ReturnValue + ", Status: " + NUMBERS[j]->ErrorMessageText;
|
|
|
- LogFile.WriteToFile(ESP_LOG_INFO, TAG, _zw);
|
|
|
|
|
|
|
+ LogFile.WriteToFile(ESP_LOG_ERROR, TAG, _zw);
|
|
|
WriteDataLog(j);
|
|
WriteDataLog(j);
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
#ifdef SERIAL_DEBUG
|
|
#ifdef SERIAL_DEBUG
|
|
|
ESP_LOGD(TAG, "After AllowNegativeRates: Value %f", NUMBERS[j]->Value);
|
|
ESP_LOGD(TAG, "After AllowNegativeRates: Value %f", NUMBERS[j]->Value);
|
|
|
#endif
|
|
#endif
|
|
|
- double difference = difftime(imagetime, NUMBERS[j]->lastvalue); // in seconds
|
|
|
|
|
|
|
+
|
|
|
difference /= 60;
|
|
difference /= 60;
|
|
|
NUMBERS[j]->FlowRateAct = (NUMBERS[j]->Value - NUMBERS[j]->PreValue) / difference;
|
|
NUMBERS[j]->FlowRateAct = (NUMBERS[j]->Value - NUMBERS[j]->PreValue) / difference;
|
|
|
NUMBERS[j]->ReturnRateValue = to_string(NUMBERS[j]->FlowRateAct);
|
|
NUMBERS[j]->ReturnRateValue = to_string(NUMBERS[j]->FlowRateAct);
|
|
@@ -879,29 +885,28 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
|
|
|
|
|
|
|
|
if (abs(_ratedifference) > abs(NUMBERS[j]->MaxRateValue))
|
|
if (abs(_ratedifference) > abs(NUMBERS[j]->MaxRateValue))
|
|
|
{
|
|
{
|
|
|
- WriteDataLog(j);
|
|
|
|
|
-
|
|
|
|
|
NUMBERS[j]->ErrorMessageText = NUMBERS[j]->ErrorMessageText + "Rate too high - Read: " + RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma) + " - Pre: " + RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma) + " - Rate: " + RundeOutput(_ratedifference, NUMBERS[j]->Nachkomma);
|
|
NUMBERS[j]->ErrorMessageText = NUMBERS[j]->ErrorMessageText + "Rate too high - Read: " + RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma) + " - Pre: " + RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma) + " - Rate: " + RundeOutput(_ratedifference, NUMBERS[j]->Nachkomma);
|
|
|
NUMBERS[j]->Value = NUMBERS[j]->PreValue;
|
|
NUMBERS[j]->Value = NUMBERS[j]->PreValue;
|
|
|
NUMBERS[j]->ReturnValue = "";
|
|
NUMBERS[j]->ReturnValue = "";
|
|
|
NUMBERS[j]->ReturnRateValue = "";
|
|
NUMBERS[j]->ReturnRateValue = "";
|
|
|
|
|
+ NUMBERS[j]->lastvalue = imagetime;
|
|
|
|
|
|
|
|
string _zw = NUMBERS[j]->name + ": Raw: " + NUMBERS[j]->ReturnRawValue + ", Value: " + NUMBERS[j]->ReturnValue + ", Status: " + NUMBERS[j]->ErrorMessageText;
|
|
string _zw = NUMBERS[j]->name + ": Raw: " + NUMBERS[j]->ReturnRawValue + ", Value: " + NUMBERS[j]->ReturnValue + ", Status: " + NUMBERS[j]->ErrorMessageText;
|
|
|
- LogFile.WriteToFile(ESP_LOG_INFO, TAG, _zw);
|
|
|
|
|
|
|
+ LogFile.WriteToFile(ESP_LOG_ERROR, TAG, _zw);
|
|
|
WriteDataLog(j);
|
|
WriteDataLog(j);
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
#ifdef SERIAL_DEBUG
|
|
#ifdef SERIAL_DEBUG
|
|
|
ESP_LOGD(TAG, "After MaxRateCheck: Value %f", NUMBERS[j]->Value);
|
|
ESP_LOGD(TAG, "After MaxRateCheck: Value %f", NUMBERS[j]->Value);
|
|
|
#endif
|
|
#endif
|
|
|
|
|
+
|
|
|
NUMBERS[j]->ReturnChangeAbsolute = RundeOutput(NUMBERS[j]->Value - NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
|
|
NUMBERS[j]->ReturnChangeAbsolute = RundeOutput(NUMBERS[j]->Value - NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
|
|
|
NUMBERS[j]->PreValue = NUMBERS[j]->Value;
|
|
NUMBERS[j]->PreValue = NUMBERS[j]->Value;
|
|
|
NUMBERS[j]->PreValueOkay = true;
|
|
NUMBERS[j]->PreValueOkay = true;
|
|
|
NUMBERS[j]->lastvalue = imagetime;
|
|
NUMBERS[j]->lastvalue = imagetime;
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
NUMBERS[j]->ReturnValue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma);
|
|
NUMBERS[j]->ReturnValue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma);
|
|
|
NUMBERS[j]->ReturnPreValue = RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
|
|
NUMBERS[j]->ReturnPreValue = RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
|
|
|
|
|
|
|
@@ -909,7 +914,6 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
|
|
|
UpdatePreValueINI = true;
|
|
UpdatePreValueINI = true;
|
|
|
|
|
|
|
|
string _zw = NUMBERS[j]->name + ": Raw: " + NUMBERS[j]->ReturnRawValue + ", Value: " + NUMBERS[j]->ReturnValue + ", Status: " + NUMBERS[j]->ErrorMessageText;
|
|
string _zw = NUMBERS[j]->name + ": Raw: " + NUMBERS[j]->ReturnRawValue + ", Value: " + NUMBERS[j]->ReturnValue + ", Status: " + NUMBERS[j]->ErrorMessageText;
|
|
|
- ESP_LOGD(TAG, "%s", zw.c_str());
|
|
|
|
|
LogFile.WriteToFile(ESP_LOG_INFO, TAG, _zw);
|
|
LogFile.WriteToFile(ESP_LOG_INFO, TAG, _zw);
|
|
|
WriteDataLog(j);
|
|
WriteDataLog(j);
|
|
|
}
|
|
}
|