Rolling 20210921 v2

This commit is contained in:
jomjol
2021-09-21 19:41:20 +02:00
parent f4c8bf9206
commit 9b3665b9c6
3 changed files with 45 additions and 42 deletions

View File

@@ -46,7 +46,7 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
if (CNNType == Analogue) if (CNNType == Analogue)
{ {
float zahl = GENERAL[_analog]->ROI[GENERAL[_analog]->ROI.size() - 1]->result_float; float zahl = GENERAL[_analog]->ROI[GENERAL[_analog]->ROI.size() - 1]->result_float;
int ergebnis_nachkomma = ((int) floor(zahl * 10)) % 10; int ergebnis_nachkomma = ((int) floor(zahl * 10) + 10) % 10;
int prev = -1; int prev = -1;
@@ -88,6 +88,7 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
int ergebnis_vorkomma = ((int) floor(zahl)) % 10; int ergebnis_vorkomma = ((int) floor(zahl)) % 10;
result = std::to_string(ergebnis_vorkomma) + std::to_string(ergebnis_nachkomma); result = std::to_string(ergebnis_vorkomma) + std::to_string(ergebnis_nachkomma);
zif_akt = ergebnis_vorkomma;
} }
else else
{ {
@@ -128,43 +129,43 @@ int ClassFlowCNNGeneral::ZeigerEvalHybrid(float zahl, float zahl_vorgaenger, int
if (zahl_vorgaenger < 0) // keine Vorzahl vorhanden !!! --> Runde die Zahl if (zahl_vorgaenger < 0) // keine Vorzahl vorhanden !!! --> Runde die Zahl
{ {
if ((ergebnis_nachkomma <= 2) || (ergebnis_nachkomma >= 8)) // Band um die Ziffer --> Runden, da Ziffer im Rahmen Ungenauigkeit erreicht if ((ergebnis_nachkomma <= 2) || (ergebnis_nachkomma >= 8)) // Band um die Ziffer --> Runden, da Ziffer im Rahmen Ungenauigkeit erreicht
return (int) round(zahl); return ((int) round(zahl) + 10) % 10;
else else
return (int) trunc(zahl); return ((int) trunc(zahl) + 10) % 10;
} }
if (zahl_vorgaenger > 9.2) // Ziffernwechsel beginnt if (zahl_vorgaenger > 9.2) // Ziffernwechsel beginnt
{ {
if (eval_vorgaenger == 0) // Wechsel hat schon stattgefunden if (eval_vorgaenger == 0) // Wechsel hat schon stattgefunden
{ {
return (int) round(zahl); // Annahme, dass die neue Zahl schon in der Nähe des Ziels ist return ((int) round(zahl) + 10) % 10; // Annahme, dass die neue Zahl schon in der Nähe des Ziels ist
} }
else else
{ {
if (zahl_vorgaenger <= 9.5) // Wechsel startet gerade, aber beginnt erst if (zahl_vorgaenger <= 9.5) // Wechsel startet gerade, aber beginnt erst
{ {
if ((ergebnis_nachkomma <= 2) || (ergebnis_nachkomma >= 8)) // Band um die Ziffer --> Runden, da Ziffer im Rahmen Ungenauigkeit erreicht if ((ergebnis_nachkomma <= 2) || (ergebnis_nachkomma >= 8)) // Band um die Ziffer --> Runden, da Ziffer im Rahmen Ungenauigkeit erreicht
return (int) round(zahl); return ((int) round(zahl) + 10) % 10;
else else
return (int) trunc(zahl); return ((int) trunc(zahl) + 10) % 10;
} }
else else
{ {
return (int) trunc(zahl); // Wechsel schon weiter fortgeschritten, d.h. über 2 als Nachkomma return ((int) trunc(zahl) + 10) % 10; // Wechsel schon weiter fortgeschritten, d.h. über 2 als Nachkomma
} }
} }
} }
if ((ergebnis_nachkomma <= 2) || (ergebnis_nachkomma >= 8)) // Band um die Ziffer --> Runden, da Ziffer im Rahmen Ungenauigkeit erreicht if ((ergebnis_nachkomma <= 2) || (ergebnis_nachkomma >= 8)) // Band um die Ziffer --> Runden, da Ziffer im Rahmen Ungenauigkeit erreicht
return (int) round(zahl); return ((int) round(zahl) + 10) % 10;
return (int) trunc(zahl); return ((int) trunc(zahl) + 10) % 10;
} }
int ClassFlowCNNGeneral::ZeigerEval(float zahl, int ziffer_vorgaenger) int ClassFlowCNNGeneral::ZeigerEval(float zahl, int ziffer_vorgaenger)
{ {
int ergebnis_nachkomma = ((int) floor(zahl * 10)) % 10; int ergebnis_nachkomma = ((int) floor(zahl * 10) + 10) % 10;
int ergebnis_vorkomma = ((int) floor(zahl)) % 10; int ergebnis_vorkomma = ((int) floor(zahl) + 10) % 10;
int ergebnis, ergebnis_rating; int ergebnis, ergebnis_rating;
if (ziffer_vorgaenger == -1) if (ziffer_vorgaenger == -1)
@@ -181,7 +182,7 @@ int ClassFlowCNNGeneral::ZeigerEval(float zahl, int ziffer_vorgaenger)
if (ergebnis == -1) if (ergebnis == -1)
ergebnis+=10; ergebnis+=10;
ergebnis = ergebnis % 10; ergebnis = (ergebnis + 10) % 10;
return ergebnis; return ergebnis;
} }

View File

@@ -311,39 +311,41 @@ bool ClassFlowControll::doFlow(string time)
string ClassFlowControll::getReadoutAll(int _type) string ClassFlowControll::getReadoutAll(int _type)
{ {
std::vector<NumberPost*> *numbers = flowpostprocessing->GetNumbers();
std::string out = ""; std::string out = "";
if (flowpostprocessing)
for (int i = 0; i < (*numbers).size(); ++i)
{ {
out = out + (*numbers)[i]->name + "\t"; std::vector<NumberPost*> *numbers = flowpostprocessing->GetNumbers();
switch (_type) {
case READOUT_TYPE_VALUE:
out = out + (*numbers)[i]->ReturnValueNoError;
break;
case READOUT_TYPE_PREVALUE:
if (flowpostprocessing->PreValueUse)
{
if ((*numbers)[i]->PreValueOkay)
out = out + (*numbers)[i]->ReturnPreValue;
else
out = out + "PreValue too old";
}
else
out = out + "PreValue deactivated";
break;
case READOUT_TYPE_RAWVALUE:
out = out + (*numbers)[i]->ReturnRawValue;
break;
case READOUT_TYPE_ERROR:
out = out + (*numbers)[i]->ErrorMessageText;
break;
}
if (i < (*numbers).size()-1)
out = out + "\r\n";
}
// printf("OUT: %s", out.c_str()); for (int i = 0; i < (*numbers).size(); ++i)
{
out = out + (*numbers)[i]->name + "\t";
switch (_type) {
case READOUT_TYPE_VALUE:
out = out + (*numbers)[i]->ReturnValueNoError;
break;
case READOUT_TYPE_PREVALUE:
if (flowpostprocessing->PreValueUse)
{
if ((*numbers)[i]->PreValueOkay)
out = out + (*numbers)[i]->ReturnPreValue;
else
out = out + "PreValue too old";
}
else
out = out + "PreValue deactivated";
break;
case READOUT_TYPE_RAWVALUE:
out = out + (*numbers)[i]->ReturnRawValue;
break;
case READOUT_TYPE_ERROR:
out = out + (*numbers)[i]->ErrorMessageText;
break;
}
if (i < (*numbers).size()-1)
out = out + "\r\n";
}
// printf("OUT: %s", out.c_str());
}
return out; return out;
} }

Binary file not shown.