mirror of
https://github.com/jomjol/AI-on-the-edge-device.git
synced 2025-12-11 05:56:57 +03:00
Rolling 20210921 v2
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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.
Reference in New Issue
Block a user