This commit is contained in:
George Ruinelli
2022-10-21 22:55:36 +02:00
parent a512d82793
commit 0bf8182728
15 changed files with 164 additions and 140 deletions

View File

@@ -3,11 +3,13 @@
#include "ClassFlow.h" #include "ClassFlow.h"
#include "CRotateImage.h" #include "CRotateImage.h"
#include "esp_log.h"
#include "ClassLogFile.h" #include "ClassLogFile.h"
static const char *TAG = "class_flow_alignment";
bool AlignmentExtendedDebugging = true; bool AlignmentExtendedDebugging = true;
@@ -48,7 +50,7 @@ ClassFlowAlignment::ClassFlowAlignment(std::vector<ClassFlow*>* lfc)
if (!ImageBasis) // die Funktion Bilder aufnehmen existiert nicht --> muss erst erzeugt werden NUR ZU TESTZWECKEN if (!ImageBasis) // die Funktion Bilder aufnehmen existiert nicht --> muss erst erzeugt werden NUR ZU TESTZWECKEN
{ {
if (AlignmentExtendedDebugging) printf("CImageBasis had to be created\n"); if (AlignmentExtendedDebugging) ESP_LOGD(TAG, "CImageBasis had to be created");
ImageBasis = new CImageBasis(namerawimage); ImageBasis = new CImageBasis(namerawimage);
} }
} }
@@ -174,7 +176,7 @@ bool ClassFlowAlignment::doFlow(string time)
} }
if (initialmirror){ if (initialmirror){
printf("do mirror\n"); ESP_LOGD(TAG, "do mirror");
rt.Mirror(); rt.Mirror();
if (SaveAllFiles) AlignAndCutImage->SaveToFile(FormatFileName("/sdcard/img_tmp/mirror.jpg")); if (SaveAllFiles) AlignAndCutImage->SaveToFile(FormatFileName("/sdcard/img_tmp/mirror.jpg"));
} }
@@ -279,7 +281,7 @@ bool ClassFlowAlignment::LoadReferenceAlignmentValues(void)
// LogFile.WriteToDedicatedFile("/sdcard/alignment.txt", "LoadReferenceAlignmentValues01"); // LogFile.WriteToDedicatedFile("/sdcard/alignment.txt", "LoadReferenceAlignmentValues01");
fgets(zw, 1024, pFile); fgets(zw, 1024, pFile);
printf("%s", zw); ESP_LOGD(TAG, "%s", zw);
// zwvalue = "LoadReferenceAlignmentValues Time: " + std::string(zw); // zwvalue = "LoadReferenceAlignmentValues Time: " + std::string(zw);

View File

@@ -7,6 +7,7 @@
#include "CTfLiteClass.h" #include "CTfLiteClass.h"
#include "ClassLogFile.h" #include "ClassLogFile.h"
#include "esp_log.h"
static const char* TAG = "flow_analog"; static const char* TAG = "flow_analog";
@@ -311,7 +312,7 @@ bool ClassFlowCNNGeneral::ReadParameter(FILE* pfile, string& aktparamgraph)
{ {
disabled = true; disabled = true;
while (getNextLine(pfile, &aktparamgraph) && !isNewParagraph(aktparamgraph)); while (getNextLine(pfile, &aktparamgraph) && !isNewParagraph(aktparamgraph));
printf("[Analog/Digit] is disabled !!!\n"); ESP_LOGD(TAG, "[Analog/Digit] is disabled!");
return true; return true;
} }
@@ -429,7 +430,7 @@ general* ClassFlowCNNGeneral::GetGENERAL(string _name, bool _create = true)
_ret->ROI.push_back(neuroi); _ret->ROI.push_back(neuroi);
printf("GetGENERAL - GENERAL %s - roi %s - CCW: %d\n", _analog.c_str(), _roi.c_str(), neuroi->CCW); ESP_LOGD(TAG, "GetGENERAL - GENERAL %s - roi %s - CCW: %d", _analog.c_str(), _roi.c_str(), neuroi->CCW);
return _ret; return _ret;
} }
@@ -488,7 +489,7 @@ bool ClassFlowCNNGeneral::doAlignAndCut(string time)
for (int _ana = 0; _ana < GENERAL.size(); ++_ana) for (int _ana = 0; _ana < GENERAL.size(); ++_ana)
for (int i = 0; i < GENERAL[_ana]->ROI.size(); ++i) for (int i = 0; i < GENERAL[_ana]->ROI.size(); ++i)
{ {
printf("General %d - Align&Cut\n", i); ESP_LOGD(TAG, "General %d - Align&Cut", i);
caic->CutAndSave(GENERAL[_ana]->ROI[i]->posx, GENERAL[_ana]->ROI[i]->posy, GENERAL[_ana]->ROI[i]->deltax, GENERAL[_ana]->ROI[i]->deltay, GENERAL[_ana]->ROI[i]->image_org); caic->CutAndSave(GENERAL[_ana]->ROI[i]->posx, GENERAL[_ana]->ROI[i]->posy, GENERAL[_ana]->ROI[i]->deltax, GENERAL[_ana]->ROI[i]->deltay, GENERAL[_ana]->ROI[i]->image_org);
if (SaveAllFiles) if (SaveAllFiles)
@@ -545,9 +546,9 @@ bool ClassFlowCNNGeneral::getNetworkParameter()
CTfLiteClass *tflite = new CTfLiteClass; CTfLiteClass *tflite = new CTfLiteClass;
string zwcnn = "/sdcard" + cnnmodelfile; string zwcnn = "/sdcard" + cnnmodelfile;
zwcnn = FormatFileName(zwcnn); zwcnn = FormatFileName(zwcnn);
printf(zwcnn.c_str());printf("\n"); ESP_LOGD(TAG, "%s", zwcnn.c_str());
if (!tflite->LoadModel(zwcnn)) { if (!tflite->LoadModel(zwcnn)) {
printf("Can't read model file /sdcard%s\n", cnnmodelfile.c_str()); ESP_LOGD(TAG, "Can't read model file /sdcard%s", cnnmodelfile.c_str());
LogFile.WriteToFile("Cannot load model"); LogFile.WriteToFile("Cannot load model");
delete tflite; delete tflite;
return false; return false;
@@ -566,37 +567,37 @@ bool ClassFlowCNNGeneral::getNetworkParameter()
{ {
case 2: case 2:
CNNType = Analogue; CNNType = Analogue;
printf("TFlite-Type set to Analogue\n"); ESP_LOGD(TAG, "TFlite-Type set to Analogue");
break; break;
case 10: case 10:
CNNType = DoubleHyprid10; CNNType = DoubleHyprid10;
printf("TFlite-Type set to DoubleHyprid10\n"); ESP_LOGD(TAG, "TFlite-Type set to DoubleHyprid10");
break; break;
case 11: case 11:
CNNType = Digital; CNNType = Digital;
printf("TFlite-Type set to Digital\n"); ESP_LOGD(TAG, "TFlite-Type set to Digital");
break; break;
/* case 20: /* case 20:
CNNType = DigitalHyprid10; CNNType = DigitalHyprid10;
printf("TFlite-Type set to DigitalHyprid10\n"); ESP_LOGD(TAG, "TFlite-Type set to DigitalHyprid10");
break; break;
*/ */
// case 22: // case 22:
// CNNType = DigitalHyprid; // CNNType = DigitalHyprid;
// printf("TFlite-Type set to DigitalHyprid\n"); // ESP_LOGD(TAG, "TFlite-Type set to DigitalHyprid");
// break; // break;
case 100: case 100:
if (modelxsize==32 && modelysize == 32) { if (modelxsize==32 && modelysize == 32) {
CNNType = Analogue100; CNNType = Analogue100;
printf("TFlite-Type set to Analogue100\n"); ESP_LOGD(TAG, "TFlite-Type set to Analogue100");
} else { } else {
CNNType = Digital100; CNNType = Digital100;
printf("TFlite-Type set to Digital\n"); ESP_LOGD(TAG, "TFlite-Type set to Digital");
} }
break; break;
default: default:
LogFile.WriteToFile("ERROR ERROR ERROR - tflite passt nicht zur Firmware - ERROR ERROR ERROR (outout_dimension=" + std::to_string(_anzoutputdimensions) + ")"); LogFile.WriteToFile("ERROR ERROR ERROR - tflite passt nicht zur Firmware - ERROR ERROR ERROR (outout_dimension=" + std::to_string(_anzoutputdimensions) + ")");
printf("ERROR ERROR ERROR - tflite passt nicht zur Firmware - ERROR ERROR ERROR\n"); ESP_LOGD(TAG, "ERROR ERROR ERROR - tflite passt nicht zur Firmware - ERROR ERROR ERROR");
} }
} }
@@ -614,9 +615,9 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
CTfLiteClass *tflite = new CTfLiteClass; CTfLiteClass *tflite = new CTfLiteClass;
string zwcnn = "/sdcard" + cnnmodelfile; string zwcnn = "/sdcard" + cnnmodelfile;
zwcnn = FormatFileName(zwcnn); zwcnn = FormatFileName(zwcnn);
printf(zwcnn.c_str());printf("\n"); ESP_LOGD(TAG, "%s", zwcnn.c_str());
if (!tflite->LoadModel(zwcnn)) { if (!tflite->LoadModel(zwcnn)) {
printf("Can't read model file /sdcard%s\n", cnnmodelfile.c_str()); ESP_LOGD(TAG, "Can't read model file /sdcard%s", cnnmodelfile.c_str());
LogFile.WriteToFile("Cannot load model"); LogFile.WriteToFile("Cannot load model");
delete tflite; delete tflite;
@@ -628,7 +629,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
{ {
for (int i = 0; i < GENERAL[_ana]->ROI.size(); ++i) for (int i = 0; i < GENERAL[_ana]->ROI.size(); ++i)
{ {
printf("General %d - TfLite\n", i); ESP_LOGD(TAG, "General %d - TfLite", i);
switch (CNNType) { switch (CNNType) {
case Analogue: case Analogue:
@@ -649,7 +650,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
else else
GENERAL[_ana]->ROI[i]->result_float = result * 10; GENERAL[_ana]->ROI[i]->result_float = result * 10;
printf("Result General(Analog)%i - CCW: %d - %f\n", i, GENERAL[_ana]->ROI[i]->CCW, GENERAL[_ana]->ROI[i]->result_float); ESP_LOGD(TAG, "Result General(Analog)%i - CCW: %d - %f", i, GENERAL[_ana]->ROI[i]->CCW, GENERAL[_ana]->ROI[i]->result_float);
if (isLogImage) if (isLogImage)
LogImage(logPath, GENERAL[_ana]->ROI[i]->name, &GENERAL[_ana]->ROI[i]->result_float, NULL, time, GENERAL[_ana]->ROI[i]->image_org); LogImage(logPath, GENERAL[_ana]->ROI[i]->name, &GENERAL[_ana]->ROI[i]->result_float, NULL, time, GENERAL[_ana]->ROI[i]->image_org);
} break; } break;
@@ -658,7 +659,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
{ {
GENERAL[_ana]->ROI[i]->result_klasse = 0; GENERAL[_ana]->ROI[i]->result_klasse = 0;
GENERAL[_ana]->ROI[i]->result_klasse = tflite->GetClassFromImageBasis(GENERAL[_ana]->ROI[i]->image); GENERAL[_ana]->ROI[i]->result_klasse = tflite->GetClassFromImageBasis(GENERAL[_ana]->ROI[i]->image);
printf("Result General(Digit)%i: %d\n", i, GENERAL[_ana]->ROI[i]->result_klasse); ESP_LOGD(TAG, "Result General(Digit)%i: %d", i, GENERAL[_ana]->ROI[i]->result_klasse);
if (isLogImage) if (isLogImage)
{ {
@@ -695,7 +696,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
else else
GENERAL[_ana]->ROI[i]->result_float = fmod((double) _num + (((double)_nachkomma)-5)/10 + (double) 10, 10); GENERAL[_ana]->ROI[i]->result_float = fmod((double) _num + (((double)_nachkomma)-5)/10 + (double) 10, 10);
printf("Result General(DigitalHyprid)%i: %f\n", i, GENERAL[_ana]->ROI[i]->result_float); ESP_LOGD(TAG, "Result General(DigitalHyprid)%i: %f\n", i, GENERAL[_ana]->ROI[i]->result_float);
_zwres = "Result General(DigitalHyprid)" + to_string(i) + ": " + to_string(GENERAL[_ana]->ROI[i]->result_float); _zwres = "Result General(DigitalHyprid)" + to_string(i) + ": " + to_string(GENERAL[_ana]->ROI[i]->result_float);
if (debugdetailgeneral) LogFile.WriteToFile(_zwres); if (debugdetailgeneral) LogFile.WriteToFile(_zwres);
@@ -732,7 +733,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
GENERAL[_ana]->ROI[i]->result_float = fmod((double) _num + (((double)_nachkomma)-5)/10 + (double) 10, 10); GENERAL[_ana]->ROI[i]->result_float = fmod((double) _num + (((double)_nachkomma)-5)/10 + (double) 10, 10);
printf("Result General(DigitalHyprid)%i: %f\n", i, GENERAL[_ana]->ROI[i]->result_float); ESP_LOGD(TAG, "Result General(DigitalHyprid)%i: %f\n", i, GENERAL[_ana]->ROI[i]->result_float);
_zwres = "Result General(DigitalHyprid)" + to_string(i) + ": " + to_string(GENERAL[_ana]->ROI[i]->result_float); _zwres = "Result General(DigitalHyprid)" + to_string(i) + ": " + to_string(GENERAL[_ana]->ROI[i]->result_float);
if (debugdetailgeneral) LogFile.WriteToFile(_zwres); if (debugdetailgeneral) LogFile.WriteToFile(_zwres);
@@ -792,7 +793,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
string zw = "_num (p, m): " + to_string(_num) + " " + to_string(_numplus) + " " + to_string(_numminus); string zw = "_num (p, m): " + to_string(_num) + " " + to_string(_numplus) + " " + to_string(_numminus);
zw = zw + " _val (p, m): " + to_string(_val) + " " + to_string(_valplus) + " " + to_string(_valminus); zw = zw + " _val (p, m): " + to_string(_val) + " " + to_string(_valplus) + " " + to_string(_valminus);
zw = zw + " result: " + to_string(result) + " _fit: " + to_string(_fit); zw = zw + " result: " + to_string(result) + " _fit: " + to_string(_fit);
printf("details cnn: %s\n", zw.c_str()); ESP_LOGD(TAG, "details cnn: %s", zw.c_str());
LogFile.WriteToFile(zw); LogFile.WriteToFile(zw);
@@ -804,7 +805,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
result = -1; result = -1;
_result_save_file+= 100; // Für den Fall, dass fit nicht ausreichend, soll trotzdem das Ergebnis mit "-10x.y" abgespeichert werden. _result_save_file+= 100; // Für den Fall, dass fit nicht ausreichend, soll trotzdem das Ergebnis mit "-10x.y" abgespeichert werden.
string zw = "Value Rejected due to Threshold (Fit: " + to_string(_fit) + "Threshold: " + to_string(CNNGoodThreshold); string zw = "Value Rejected due to Threshold (Fit: " + to_string(_fit) + "Threshold: " + to_string(CNNGoodThreshold);
printf("Value Rejected due to Threshold (Fit: %f, Threshold: %f\n", _fit, CNNGoodThreshold); ESP_LOGD(TAG, "Value Rejected due to Threshold (Fit: %f, Threshold: %f", _fit, CNNGoodThreshold);
LogFile.WriteToFile(zw); LogFile.WriteToFile(zw);
} }
else else
@@ -814,7 +815,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
GENERAL[_ana]->ROI[i]->result_float = result; GENERAL[_ana]->ROI[i]->result_float = result;
printf("Result General(Analog)%i: %f\n", i, GENERAL[_ana]->ROI[i]->result_float); ESP_LOGD(TAG, "Result General(Analog)%i: %f", i, GENERAL[_ana]->ROI[i]->result_float);
if (isLogImage) if (isLogImage)
{ {
@@ -852,7 +853,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
GENERAL[_ana]->ROI[i]->isReject = false; GENERAL[_ana]->ROI[i]->isReject = false;
printf("Result General(Analog)%i - CCW: %d - %f\n", i, GENERAL[_ana]->ROI[i]->CCW, GENERAL[_ana]->ROI[i]->result_float); ESP_LOGD(TAG, "Result General(Analog)%i - CCW: %d - %f", i, GENERAL[_ana]->ROI[i]->CCW, GENERAL[_ana]->ROI[i]->result_float);
if (isLogImage) if (isLogImage)
{ {
@@ -898,7 +899,7 @@ std::vector<HTMLInfo*> ClassFlowCNNGeneral::GetHTMLInfo()
for (int _ana = 0; _ana < GENERAL.size(); ++_ana) for (int _ana = 0; _ana < GENERAL.size(); ++_ana)
for (int i = 0; i < GENERAL[_ana]->ROI.size(); ++i) for (int i = 0; i < GENERAL[_ana]->ROI.size(); ++i)
{ {
printf("Image: %d\n", (int) GENERAL[_ana]->ROI[i]->image); ESP_LOGD(TAG, "Image: %d", (int) GENERAL[_ana]->ROI[i]->image);
if (GENERAL[_ana]->ROI[i]->image) if (GENERAL[_ana]->ROI[i]->image)
{ {
if (GENERAL[_ana]->name == "default") if (GENERAL[_ana]->name == "default")

View File

@@ -33,7 +33,7 @@ static const char* TAG = "flow_controll";
std::string ClassFlowControll::doSingleStep(std::string _stepname, std::string _host){ std::string ClassFlowControll::doSingleStep(std::string _stepname, std::string _host){
std::string _classname = ""; std::string _classname = "";
std::string result = ""; std::string result = "";
// printf("_stepname: %s\n", _stepname.c_str()); // ESP_LOGD(TAG, "_stepname: %s", _stepname.c_str());
if ((_stepname.compare("[MakeImage]") == 0) || (_stepname.compare(";[MakeImage]") == 0)){ if ((_stepname.compare("[MakeImage]") == 0) || (_stepname.compare(";[MakeImage]") == 0)){
_classname = "ClassFlowMakeImage"; _classname = "ClassFlowMakeImage";
} }
@@ -89,7 +89,7 @@ std::vector<HTMLInfo*> ClassFlowControll::GetAllDigital()
{ {
if (flowdigit) if (flowdigit)
{ {
printf("ClassFlowControll::GetAllDigital - flowdigit != NULL\n"); ESP_LOGD(TAG, "ClassFlowControll::GetAllDigital - flowdigit != NULL");
return flowdigit->GetHTMLInfo(); return flowdigit->GetHTMLInfo();
} }
@@ -230,7 +230,7 @@ void ClassFlowControll::InitFlow(std::string config)
if (pFile != NULL) if (pFile != NULL)
{ {
fgets(zw, 1024, pFile); fgets(zw, 1024, pFile);
printf("%s", zw); ESP_LOGD(TAG, "%s", zw);
line = std::string(zw); line = std::string(zw);
} }
@@ -239,7 +239,7 @@ void ClassFlowControll::InitFlow(std::string config)
cfc = CreateClassFlow(line); cfc = CreateClassFlow(line);
if (cfc) if (cfc)
{ {
printf("Start ReadParameter (%s)\n", line.c_str()); ESP_LOGD(TAG, "Start ReadParameter (%s)", line.c_str());
cfc->ReadParameter(pFile, line); cfc->ReadParameter(pFile, line);
} }
else else
@@ -247,7 +247,7 @@ void ClassFlowControll::InitFlow(std::string config)
line = ""; line = "";
if (fgets(zw, 1024, pFile) && !feof(pFile)) if (fgets(zw, 1024, pFile) && !feof(pFile))
{ {
printf("Read: %s", zw); ESP_LOGD(TAG, "Read: %s", zw);
line = std::string(zw); line = std::string(zw);
} }
} }
@@ -362,7 +362,7 @@ string ClassFlowControll::getReadoutAll(int _type)
if (i < (*numbers).size()-1) if (i < (*numbers).size()-1)
out = out + "\r\n"; out = out + "\r\n";
} }
// printf("OUT: %s", out.c_str()); // ESP_LOGD(TAG, "OUT: %s", out.c_str());
} }
return out; return out;
@@ -408,7 +408,7 @@ std::string ClassFlowControll::UpdatePrevalue(std::string _newvalue, std::string
char* p; char* p;
_newvalue = trim(_newvalue); _newvalue = trim(_newvalue);
// printf("Input UpdatePreValue: %s\n", _newvalue.c_str()); // ESP_LOGD(TAG, "Input UpdatePreValue: %s", _newvalue.c_str());
if (_newvalue.compare("0.0") == 0) if (_newvalue.compare("0.0") == 0)
{ {
@@ -493,7 +493,7 @@ bool ClassFlowControll::ReadParameter(FILE* pfile, string& aktparamgraph)
{ {
// reboot notwendig damit die neue wlan.ini auch benutzt wird !!! // reboot notwendig damit die neue wlan.ini auch benutzt wird !!!
fclose(pfile); fclose(pfile);
printf("do reboot\n"); ESP_LOGD(TAG, "do reboot");
LogFile.SwitchOnOff(true); LogFile.SwitchOnOff(true);
LogFile.WriteToFile("Reboot to activate new HOSTNAME."); LogFile.WriteToFile("Reboot to activate new HOSTNAME.");
esp_restart(); esp_restart();
@@ -558,7 +558,7 @@ esp_err_t ClassFlowControll::SendRawJPG(httpd_req_t *req)
esp_err_t ClassFlowControll::GetJPGStream(std::string _fn, httpd_req_t *req) esp_err_t ClassFlowControll::GetJPGStream(std::string _fn, httpd_req_t *req)
{ {
printf("ClassFlowControll::GetJPGStream %s\n", _fn.c_str()); ESP_LOGD(TAG, "ClassFlowControll::GetJPGStream %s", _fn.c_str());
CImageBasis *_send = NULL; CImageBasis *_send = NULL;
esp_err_t result = ESP_FAIL; esp_err_t result = ESP_FAIL;
@@ -566,7 +566,7 @@ esp_err_t ClassFlowControll::GetJPGStream(std::string _fn, httpd_req_t *req)
if (flowalignment == NULL) if (flowalignment == NULL)
{ {
printf("Can't continue, flowalignment is NULL\n"); ESP_LOGD(TAG, "Can't continue, flowalignment is NULL");
return ESP_FAIL; return ESP_FAIL;
} }
@@ -589,7 +589,7 @@ esp_err_t ClassFlowControll::GetJPGStream(std::string _fn, httpd_req_t *req)
{ {
std::vector<HTMLInfo*> htmlinfo; std::vector<HTMLInfo*> htmlinfo;
htmlinfo = GetAllDigital(); htmlinfo = GetAllDigital();
printf("After getClassFlowControll::GetAllDigital\n"); ESP_LOGD(TAG, "After getClassFlowControll::GetAllDigital");
for (int i = 0; i < htmlinfo.size(); ++i) for (int i = 0; i < htmlinfo.size(); ++i)
{ {

View File

@@ -14,6 +14,8 @@ extern "C" {
#include "time_sntp.h" #include "time_sntp.h"
#include "ClassLogFile.h" #include "ClassLogFile.h"
#include "CImageBasis.h" #include "CImageBasis.h"
#include "esp_log.h"
ClassFlowImage::ClassFlowImage(const char* logTag) ClassFlowImage::ClassFlowImage(const char* logTag)
{ {
@@ -79,7 +81,7 @@ void ClassFlowImage::LogImage(string logPath, string name, float *resultFloat, i
nm = FormatFileName(nm); nm = FormatFileName(nm);
string output = "/sdcard/img_tmp/" + name + ".jpg"; string output = "/sdcard/img_tmp/" + name + ".jpg";
output = FormatFileName(output); output = FormatFileName(output);
printf("save to file: %s\n", nm.c_str()); ESP_LOGD(logTag, "save to file: %s", nm.c_str());
_img->SaveToFile(nm); _img->SaveToFile(nm);
// CopyFile(output, nm); // CopyFile(output, nm);
} }

View File

@@ -6,9 +6,12 @@
#include "time_sntp.h" #include "time_sntp.h"
#include "interface_influxdb.h" #include "interface_influxdb.h"
#include "ClassFlowPostProcessing.h" #include "ClassFlowPostProcessing.h"
#include "esp_log.h"
#include <time.h> #include <time.h>
static const char* TAG = "class_flow_influxDb";
void ClassFlowInfluxDB::SetInitialParameter(void) void ClassFlowInfluxDB::SetInitialParameter(void)
{ {
uri = ""; uri = "";
@@ -76,7 +79,7 @@ bool ClassFlowInfluxDB::ReadParameter(FILE* pfile, string& aktparamgraph)
while (this->getNextLine(pfile, &aktparamgraph) && !this->isNewParagraph(aktparamgraph)) while (this->getNextLine(pfile, &aktparamgraph) && !this->isNewParagraph(aktparamgraph))
{ {
printf("while loop reading line: %s\n", aktparamgraph.c_str()); ESP_LOGD(TAG, "while loop reading line: %s", aktparamgraph.c_str());
zerlegt = this->ZerlegeZeile(aktparamgraph); zerlegt = this->ZerlegeZeile(aktparamgraph);
if ((toUpper(zerlegt[0]) == "USER") && (zerlegt.size() > 1)) if ((toUpper(zerlegt[0]) == "USER") && (zerlegt.size() > 1))
{ {
@@ -102,11 +105,11 @@ bool ClassFlowInfluxDB::ReadParameter(FILE* pfile, string& aktparamgraph)
if ((uri.length() > 0) && (database.length() > 0) && (measurement.length() > 0)) if ((uri.length() > 0) && (database.length() > 0) && (measurement.length() > 0))
{ {
printf("Init InfluxDB with uri: %s, measurement: %s, user: %s, password: %s\n", uri.c_str(), measurement.c_str(), user.c_str(), password.c_str()); ESP_LOGD(TAG, "Init InfluxDB with uri: %s, measurement: %s, user: %s, password: %s", uri.c_str(), measurement.c_str(), user.c_str(), password.c_str());
InfluxDBInit(uri, database, measurement, user, password); InfluxDBInit(uri, database, measurement, user, password);
InfluxDBenable = true; InfluxDBenable = true;
} else { } else {
printf("InfluxDB init skipped as we are missing some parameters"); ESP_LOGD(TAG, "InfluxDB init skipped as we are missing some parameters");
} }
return true; return true;

View File

@@ -12,6 +12,8 @@
#define __HIDE_PASSWORD #define __HIDE_PASSWORD
static const char *TAG = "class_flow_MQTT";
void ClassFlowMQTT::SetInitialParameter(void) void ClassFlowMQTT::SetInitialParameter(void)
{ {
uri = ""; uri = "";
@@ -120,19 +122,19 @@ bool ClassFlowMQTT::ReadParameter(FILE* pfile, string& aktparamgraph)
} }
#ifdef __HIDE_PASSWORD #ifdef __HIDE_PASSWORD
printf("Init Read with uri: %s, clientname: %s, user: %s, password: XXXXXX, maintopic: %s\n", uri.c_str(), clientname.c_str(), user.c_str(), mainerrortopic.c_str()); ESP_LOGD(TAG, "Init Read with uri: %s, clientname: %s, user: %s, password: XXXXXX, maintopic: %s", uri.c_str(), clientname.c_str(), user.c_str(), mainerrortopic.c_str());
#else #else
printf("Init Read with uri: %s, clientname: %s, user: %s, password: %s, maintopic: %s\n", uri.c_str(), clientname.c_str(), user.c_str(), password.c_str(), mainerrortopic.c_str()); ESP_LOGD(TAG, "Init Read with uri: %s, clientname: %s, user: %s, password: %s, maintopic: %s", uri.c_str(), clientname.c_str(), user.c_str(), password.c_str(), mainerrortopic.c_str());
#endif #endif
if (!MQTTisConnected() && (uri.length() > 0) && (maintopic.length() > 0)) if (!MQTTisConnected() && (uri.length() > 0) && (maintopic.length() > 0))
{ {
printf("InitMQTTInit\n"); ESP_LOGD(TAG, "InitMQTTInit");
mainerrortopic = maintopic + "/connection"; mainerrortopic = maintopic + "/connection";
#ifdef __HIDE_PASSWORD #ifdef __HIDE_PASSWORD
printf("Init MQTT with uri: %s, clientname: %s, user: %s, password: XXXXXXXX, maintopic: %s\n", uri.c_str(), clientname.c_str(), user.c_str(), mainerrortopic.c_str()); ESP_LOGD(TAG, "Init MQTT with uri: %s, clientname: %s, user: %s, password: XXXXXXXX, maintopic: %s", uri.c_str(), clientname.c_str(), user.c_str(), mainerrortopic.c_str());
#else #else
printf("Init MQTT with uri: %s, clientname: %s, user: %s, password: %s, maintopic: %s\n", uri.c_str(), clientname.c_str(), user.c_str(), password.c_str(), mainerrortopic.c_str()); ESP_LOGD(TAG, "Init MQTT with uri: %s, clientname: %s, user: %s, password: %s, maintopic: %s", uri.c_str(), clientname.c_str(), user.c_str(), password.c_str(), mainerrortopic.c_str());
#endif #endif
if (!MQTTInit(uri, clientname, user, password, mainerrortopic, keepAlive)) if (!MQTTInit(uri, clientname, user, password, mainerrortopic, keepAlive))
{ // Failed { // Failed

View File

@@ -6,6 +6,7 @@
#include "ClassControllCamera.h" #include "ClassControllCamera.h"
#include "esp_wifi.h" #include "esp_wifi.h"
#include "esp_log.h"
#include <time.h> #include <time.h>
@@ -30,7 +31,7 @@ void ClassFlowMakeImage::takePictureWithFlash(int flashdauer)
rawImage->width = image_width; rawImage->width = image_width;
rawImage->height = image_height; rawImage->height = image_height;
///////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////
printf("Flashdauer: %d\n", flashdauer); ESP_LOGD(TAG, "Flashdauer: %d", flashdauer);
Camera.CaptureToBasisImage(rawImage, flashdauer); Camera.CaptureToBasisImage(rawImage, flashdauer);
time(&TimeImageTaken); time(&TimeImageTaken);
localtime(&TimeImageTaken); localtime(&TimeImageTaken);
@@ -145,7 +146,7 @@ bool ClassFlowMakeImage::ReadParameter(FILE* pfile, string& aktparamgraph)
waitbeforepicture_store = waitbeforepicture; waitbeforepicture_store = waitbeforepicture;
if (FixedExposure && (waitbeforepicture > 0)) if (FixedExposure && (waitbeforepicture > 0))
{ {
// printf("Fixed Exposure enabled!\n"); // ESP_LOGD(TAG, "Fixed Exposure enabled!");
int flashdauer = (int) (waitbeforepicture * 1000); int flashdauer = (int) (waitbeforepicture * 1000);
Camera.EnableAutoExposure(flashdauer); Camera.EnableAutoExposure(flashdauer);
waitbeforepicture = 0.2; waitbeforepicture = 0.2;

View File

@@ -9,6 +9,11 @@
#include <time.h> #include <time.h>
#include "time_sntp.h" #include "time_sntp.h"
#include "esp_log.h"
static const char* TAG = "class_flow_postproc";
//#define SERIAL_DEBUG // testing debug on serial enabled //#define SERIAL_DEBUG // testing debug on serial enabled
@@ -72,10 +77,10 @@ string ClassFlowPostProcessing::GetPreValue(std::string _number)
void ClassFlowPostProcessing::SetPreValue(double zw, string _numbers, bool _extern) void ClassFlowPostProcessing::SetPreValue(double zw, string _numbers, bool _extern)
{ {
printf("SetPrevalue: %f, %s\n", zw, _numbers.c_str()); ESP_LOGD(TAG, "SetPrevalue: %f, %s", zw, _numbers.c_str());
for (int j = 0; j < NUMBERS.size(); ++j) for (int j = 0; j < NUMBERS.size(); ++j)
{ {
// printf("Number %d, %s\n", j, NUMBERS[j]->name.c_str()); // ESP_LOGD(TAG, "Number %d, %s", j, NUMBERS[j]->name.c_str());
if (NUMBERS[j]->name == _numbers) if (NUMBERS[j]->name == _numbers)
{ {
NUMBERS[j]->PreValue = zw; NUMBERS[j]->PreValue = zw;
@@ -86,7 +91,7 @@ void ClassFlowPostProcessing::SetPreValue(double zw, string _numbers, bool _exte
time(&(NUMBERS[j]->lastvalue)); time(&(NUMBERS[j]->lastvalue));
localtime(&(NUMBERS[j]->lastvalue)); localtime(&(NUMBERS[j]->lastvalue));
} }
// printf("Found %d! - set to %f\n", j, NUMBERS[j]->PreValue); // ESP_LOGD(TAG, "Found %d! - set to %f", j, NUMBERS[j]->PreValue);
} }
} }
UpdatePreValueINI = true; UpdatePreValueINI = true;
@@ -110,7 +115,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
return false; return false;
fgets(zw, 1024, pFile); fgets(zw, 1024, pFile);
printf("Read line Prevalue.ini: %s", zw); ESP_LOGD(TAG, "Read line Prevalue.ini: %s", zw);
zwtime = trim(std::string(zw)); zwtime = trim(std::string(zw));
if (zwtime.length() == 0) if (zwtime.length() == 0)
return false; return false;
@@ -161,7 +166,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
_done = true; _done = true;
else else
{ {
printf("Read line Prevalue.ini: %s", zw); ESP_LOGD(TAG, "Read line Prevalue.ini: %s", zw);
zerlegt = HelperZerlegeZeile(trim(std::string(zw)), "\t"); zerlegt = HelperZerlegeZeile(trim(std::string(zw)), "\t");
if (zerlegt.size() > 1) if (zerlegt.size() > 1)
{ {
@@ -177,7 +182,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
{ {
fgets(zw, 1024, pFile); fgets(zw, 1024, pFile);
fclose(pFile); fclose(pFile);
printf("%s", zw); ESP_LOGD(TAG, "%s", zw);
zwvalue = trim(std::string(zw)); zwvalue = trim(std::string(zw));
NUMBERS[0]->PreValue = stod(zwvalue.c_str()); NUMBERS[0]->PreValue = stod(zwvalue.c_str());
@@ -194,7 +199,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
whenStart.tm_sec = ss; whenStart.tm_sec = ss;
whenStart.tm_isdst = -1; whenStart.tm_isdst = -1;
printf("TIME: %d, %d, %d, %d, %d, %d\n", whenStart.tm_year, whenStart.tm_mon, whenStart.tm_wday, whenStart.tm_hour, whenStart.tm_min, whenStart.tm_sec); ESP_LOGD(TAG, "TIME: %d, %d, %d, %d, %d, %d", whenStart.tm_year, whenStart.tm_mon, whenStart.tm_wday, whenStart.tm_hour, whenStart.tm_min, whenStart.tm_sec);
NUMBERS[0]->lastvalue = mktime(&whenStart); NUMBERS[0]->lastvalue = mktime(&whenStart);
@@ -236,10 +241,10 @@ void ClassFlowPostProcessing::SavePreValue()
struct tm* timeinfo = localtime(&NUMBERS[j]->lastvalue); struct tm* timeinfo = localtime(&NUMBERS[j]->lastvalue);
strftime(buffer, 80, PREVALUE_TIME_FORMAT_OUTPUT, timeinfo); strftime(buffer, 80, PREVALUE_TIME_FORMAT_OUTPUT, timeinfo);
NUMBERS[j]->timeStamp = std::string(buffer); NUMBERS[j]->timeStamp = std::string(buffer);
// printf("SaverPreValue %d, Value: %f, Nachkomma %d\n", j, NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma); // ESP_LOGD(TAG, "SaverPreValue %d, Value: %f, Nachkomma %d", j, NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
_zw = NUMBERS[j]->name + "\t" + NUMBERS[j]->timeStamp + "\t" + RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma) + "\n"; _zw = NUMBERS[j]->name + "\t" + NUMBERS[j]->timeStamp + "\t" + RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma) + "\n";
printf("Write PreValue Zeile: %s\n", _zw.c_str()); ESP_LOGD(TAG, "Write PreValue Zeile: %s", _zw.c_str());
if (pFile) { if (pFile) {
fputs(_zw.c_str(), pFile); fputs(_zw.c_str(), pFile);
} }
@@ -278,7 +283,7 @@ void ClassFlowPostProcessing::handleDecimalExtendedResolution(string _decsep, st
{ {
string _digit, _decpos; string _digit, _decpos;
int _pospunkt = _decsep.find_first_of("."); int _pospunkt = _decsep.find_first_of(".");
// printf("Name: %s, Pospunkt: %d\n", _decsep.c_str(), _pospunkt); // ESP_LOGD(TAG, "Name: %s, Pospunkt: %d", _decsep.c_str(), _pospunkt);
if (_pospunkt > -1) if (_pospunkt > -1)
_digit = _decsep.substr(0, _pospunkt); _digit = _decsep.substr(0, _pospunkt);
else else
@@ -308,7 +313,7 @@ void ClassFlowPostProcessing::handleDecimalSeparator(string _decsep, string _val
{ {
string _digit, _decpos; string _digit, _decpos;
int _pospunkt = _decsep.find_first_of("."); int _pospunkt = _decsep.find_first_of(".");
// printf("Name: %s, Pospunkt: %d\n", _decsep.c_str(), _pospunkt); // ESP_LOGD(TAG, "Name: %s, Pospunkt: %d", _decsep.c_str(), _pospunkt);
if (_pospunkt > -1) if (_pospunkt > -1)
_digit = _decsep.substr(0, _pospunkt); _digit = _decsep.substr(0, _pospunkt);
else else
@@ -324,7 +329,7 @@ void ClassFlowPostProcessing::handleDecimalSeparator(string _decsep, string _val
} }
/* catch(const std::exception& e) /* catch(const std::exception& e)
{ {
printf("ERROR - Decimalshift is not a number: %s\n", _value.c_str()); ESP_LOGD(TAG, "ERROR - Decimalshift is not a number: %s", _value.c_str());
} }
*/ */
if (_digit == "default") // erstmal auf default setzen (falls sonst nichts gesetzt) if (_digit == "default") // erstmal auf default setzen (falls sonst nichts gesetzt)
@@ -347,7 +352,7 @@ void ClassFlowPostProcessing::handleAnalogDigitalTransitionStart(string _decsep,
{ {
string _digit, _decpos; string _digit, _decpos;
int _pospunkt = _decsep.find_first_of("."); int _pospunkt = _decsep.find_first_of(".");
// printf("Name: %s, Pospunkt: %d\n", _decsep.c_str(), _pospunkt); // ESP_LOGD(TAG, "Name: %s, Pospunkt: %d", _decsep.c_str(), _pospunkt);
if (_pospunkt > -1) if (_pospunkt > -1)
_digit = _decsep.substr(0, _pospunkt); _digit = _decsep.substr(0, _pospunkt);
else else
@@ -372,7 +377,7 @@ void ClassFlowPostProcessing::handleMaxRateType(string _decsep, string _value)
{ {
string _digit, _decpos; string _digit, _decpos;
int _pospunkt = _decsep.find_first_of("."); int _pospunkt = _decsep.find_first_of(".");
// printf("Name: %s, Pospunkt: %d\n", _decsep.c_str(), _pospunkt); // ESP_LOGD(TAG, "Name: %s, Pospunkt: %d", _decsep.c_str(), _pospunkt);
if (_pospunkt > -1) if (_pospunkt > -1)
_digit = _decsep.substr(0, _pospunkt); _digit = _decsep.substr(0, _pospunkt);
else else
@@ -404,7 +409,7 @@ void ClassFlowPostProcessing::handleMaxRateValue(string _decsep, string _value)
{ {
string _digit, _decpos; string _digit, _decpos;
int _pospunkt = _decsep.find_first_of("."); int _pospunkt = _decsep.find_first_of(".");
// printf("Name: %s, Pospunkt: %d\n", _decsep.c_str(), _pospunkt); // ESP_LOGD(TAG, "Name: %s, Pospunkt: %d", _decsep.c_str(), _pospunkt);
if (_pospunkt > -1) if (_pospunkt > -1)
_digit = _decsep.substr(0, _pospunkt); _digit = _decsep.substr(0, _pospunkt);
else else
@@ -418,7 +423,7 @@ void ClassFlowPostProcessing::handleMaxRateValue(string _decsep, string _value)
} }
/* catch(const std::exception& e) /* catch(const std::exception& e)
{ {
printf("ERROR - MaxRateValue is not a number: %s\n", _value.c_str()); ESP_LOGD(TAG, "ERROR - MaxRateValue is not a number: %s", _value.c_str());
} }
*/ */
if (_digit == "default") // erstmal auf default setzen (falls sonst nichts gesetzt) if (_digit == "default") // erstmal auf default setzen (falls sonst nichts gesetzt)
@@ -541,7 +546,7 @@ void ClassFlowPostProcessing::InitNUMBERS()
flowAnalog->UpdateNameNumbers(&name_numbers); flowAnalog->UpdateNameNumbers(&name_numbers);
} }
printf("Anzahl NUMBERS: %d - DIGITS: %d, ANALOG: %d\n", name_numbers.size(), anzDIGIT, anzANALOG); ESP_LOGD(TAG, "Anzahl NUMBERS: %d - DIGITS: %d, ANALOG: %d", name_numbers.size(), anzDIGIT, anzANALOG);
for (int _num = 0; _num < name_numbers.size(); ++_num) for (int _num = 0; _num < name_numbers.size(); ++_num)
{ {
@@ -597,7 +602,7 @@ void ClassFlowPostProcessing::InitNUMBERS()
} }
for (int i = 0; i < NUMBERS.size(); ++i) { for (int i = 0; i < NUMBERS.size(); ++i) {
printf("Number %s, Anz DIG: %d, Anz ANA %d\n", NUMBERS[i]->name.c_str(), NUMBERS[i]->AnzahlDigital, NUMBERS[i]->AnzahlAnalog); ESP_LOGD(TAG, "Number %s, Anz DIG: %d, Anz ANA %d", NUMBERS[i]->name.c_str(), NUMBERS[i]->AnzahlDigital, NUMBERS[i]->AnzahlAnalog);
} }
} }
@@ -666,7 +671,7 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
strftime(strftime_buf, sizeof(strftime_buf), "%Y-%m-%dT%H:%M:%S", timeinfo); strftime(strftime_buf, sizeof(strftime_buf), "%Y-%m-%dT%H:%M:%S", timeinfo);
zwtime = std::string(strftime_buf); zwtime = std::string(strftime_buf);
printf("Anzahl NUMBERS: %d\n", NUMBERS.size()); ESP_LOGD(TAG, "Anzahl NUMBERS: %d", NUMBERS.size());
for (int j = 0; j < NUMBERS.size(); ++j) for (int j = 0; j < NUMBERS.size(); ++j)
{ {
@@ -691,7 +696,7 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
} }
} }
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After analog->getReadout: ReturnRaw %s\n", NUMBERS[j]->ReturnRawValue.c_str()); ESP_LOGD(TAG, "After analog->getReadout: ReturnRaw %s", NUMBERS[j]->ReturnRawValue.c_str());
#endif #endif
if (NUMBERS[j]->digit_roi && NUMBERS[j]->analog_roi) if (NUMBERS[j]->digit_roi && NUMBERS[j]->analog_roi)
NUMBERS[j]->ReturnRawValue = "." + NUMBERS[j]->ReturnRawValue; NUMBERS[j]->ReturnRawValue = "." + NUMBERS[j]->ReturnRawValue;
@@ -704,12 +709,12 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
NUMBERS[j]->ReturnRawValue = flowDigit->getReadout(j, NUMBERS[j]->isExtendedResolution, previous_value); // Extended Resolution nur falls es keine analogen Ziffern gibt NUMBERS[j]->ReturnRawValue = flowDigit->getReadout(j, NUMBERS[j]->isExtendedResolution, previous_value); // Extended Resolution nur falls es keine analogen Ziffern gibt
} }
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After digital->getReadout: ReturnRaw %s\n", NUMBERS[j]->ReturnRawValue.c_str()); ESP_LOGD(TAG, "After digital->getReadout: ReturnRaw %s", NUMBERS[j]->ReturnRawValue.c_str());
#endif #endif
NUMBERS[j]->ReturnRawValue = ShiftDecimal(NUMBERS[j]->ReturnRawValue, NUMBERS[j]->DecimalShift); NUMBERS[j]->ReturnRawValue = ShiftDecimal(NUMBERS[j]->ReturnRawValue, NUMBERS[j]->DecimalShift);
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After ShiftDecimal: ReturnRaw %s\n", NUMBERS[j]->ReturnRawValue.c_str()); ESP_LOGD(TAG, "After ShiftDecimal: ReturnRaw %s", NUMBERS[j]->ReturnRawValue.c_str());
#endif #endif
if (IgnoreLeadingNaN) if (IgnoreLeadingNaN)
@@ -717,7 +722,7 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
NUMBERS[j]->ReturnRawValue.erase(0, 1); NUMBERS[j]->ReturnRawValue.erase(0, 1);
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After IgnoreLeadingNaN: ReturnRaw %s\n", NUMBERS[j]->ReturnRawValue.c_str()); ESP_LOGD(TAG, "After IgnoreLeadingNaN: ReturnRaw %s", NUMBERS[j]->ReturnRawValue.c_str());
#endif #endif
NUMBERS[j]->ReturnValue = NUMBERS[j]->ReturnRawValue; NUMBERS[j]->ReturnValue = NUMBERS[j]->ReturnRawValue;
@@ -734,17 +739,17 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
} }
} }
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After findDelimiterPos: ReturnValue %s\n", NUMBERS[j]->ReturnRawValue.c_str()); ESP_LOGD(TAG, "After findDelimiterPos: ReturnValue %s", NUMBERS[j]->ReturnRawValue.c_str());
#endif #endif
// Lösche führende Nullen (außer es ist nur noch einen 0) // Lösche führende Nullen (außer es ist nur noch einen 0)
while ((NUMBERS[j]->ReturnValue.length() > 1) && (NUMBERS[j]->ReturnValue[0] == '0')) while ((NUMBERS[j]->ReturnValue.length() > 1) && (NUMBERS[j]->ReturnValue[0] == '0'))
NUMBERS[j]->ReturnValue.erase(0, 1); NUMBERS[j]->ReturnValue.erase(0, 1);
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After removeLeadingZeros: ReturnValue %s\n", NUMBERS[j]->ReturnRawValue.c_str()); ESP_LOGD(TAG, "After removeLeadingZeros: ReturnValue %s", NUMBERS[j]->ReturnRawValue.c_str());
#endif #endif
NUMBERS[j]->Value = std::stod(NUMBERS[j]->ReturnValue); NUMBERS[j]->Value = std::stod(NUMBERS[j]->ReturnValue);
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After setting the Value: Value %f and as double is %f\n", NUMBERS[j]->Value, std::stod(NUMBERS[j]->ReturnValue)); ESP_LOGD(TAG, "After setting the Value: Value %f and as double is %f", NUMBERS[j]->Value, std::stod(NUMBERS[j]->ReturnValue));
#endif #endif
if (NUMBERS[j]->checkDigitIncreaseConsistency) if (NUMBERS[j]->checkDigitIncreaseConsistency)
@@ -752,20 +757,20 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
if (flowDigit) if (flowDigit)
{ {
if (flowDigit->getCNNType() != Digital) if (flowDigit->getCNNType() != Digital)
printf("checkDigitIncreaseConsistency = true - ignored due to wrong CNN-Type (not Digital Classification)\n"); ESP_LOGD(TAG, "checkDigitIncreaseConsistency = true - ignored due to wrong CNN-Type (not Digital Classification)");
else else
NUMBERS[j]->Value = checkDigitConsistency(NUMBERS[j]->Value, NUMBERS[j]->DecimalShift, NUMBERS[j]->analog_roi != NULL, NUMBERS[j]->PreValue); NUMBERS[j]->Value = checkDigitConsistency(NUMBERS[j]->Value, NUMBERS[j]->DecimalShift, NUMBERS[j]->analog_roi != NULL, NUMBERS[j]->PreValue);
} }
else else
{ {
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("checkDigitIncreaseConsistency = true - no digital numbers defined!\n"); ESP_LOGD(TAG, "checkDigitIncreaseConsistency = true - no digital numbers defined!");
#endif #endif
} }
} }
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After checkDigitIncreaseConsistency: Value %f\n", NUMBERS[j]->Value); ESP_LOGD(TAG, "After checkDigitIncreaseConsistency: Value %f", NUMBERS[j]->Value);
#endif #endif
@@ -774,7 +779,7 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
if ((NUMBERS[j]->Value < NUMBERS[j]->PreValue)) if ((NUMBERS[j]->Value < NUMBERS[j]->PreValue))
{ {
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("Neg: value=%f, preValue=%f, preToll%f\n", NUMBERS[j]->Value, NUMBERS[j]->PreValue, ESP_LOGD(TAG, "Neg: value=%f, preValue=%f, preToll%f", NUMBERS[j]->Value, NUMBERS[j]->PreValue,
NUMBERS[j]->PreValue-(2/pow(10, NUMBERS[j]->Nachkomma)) NUMBERS[j]->PreValue-(2/pow(10, NUMBERS[j]->Nachkomma))
) ; ) ;
#endif #endif
@@ -793,7 +798,7 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
} }
} }
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After AllowNegativeRates: Value %f\n", NUMBERS[j]->Value); ESP_LOGD(TAG, "After AllowNegativeRates: Value %f", NUMBERS[j]->Value);
#endif #endif
double difference = difftime(imagetime, NUMBERS[j]->lastvalue); // in Sekunden double difference = difftime(imagetime, NUMBERS[j]->lastvalue); // in Sekunden
difference /= 60; difference /= 60;
@@ -819,7 +824,7 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
} }
} }
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("After MaxRateCheck: Value %f\n", 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]->lastvalue = imagetime; NUMBERS[j]->lastvalue = imagetime;
@@ -834,7 +839,7 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
UpdatePreValueINI = true; UpdatePreValueINI = true;
string _zw = "PostProcessing - Raw: " + NUMBERS[j]->ReturnRawValue + " Value: " + NUMBERS[j]->ReturnValue + " Error: " + NUMBERS[j]->ErrorMessageText; string _zw = "PostProcessing - Raw: " + NUMBERS[j]->ReturnRawValue + " Value: " + NUMBERS[j]->ReturnValue + " Error: " + NUMBERS[j]->ErrorMessageText;
printf("%s\n", zw.c_str()); ESP_LOGD(TAG, "%s", zw.c_str());
LogFile.WriteToFile(_zw); LogFile.WriteToFile(_zw);
WriteDataLog(j); WriteDataLog(j);
} }
@@ -853,7 +858,7 @@ void ClassFlowPostProcessing::WriteDataLog(int _analog)
digital = flowDigit->getReadoutRawString(_analog); digital = flowDigit->getReadoutRawString(_analog);
// LogFile.WriteToFile(analog); // LogFile.WriteToFile(analog);
LogFile.WriteToData(NUMBERS[_analog]->ReturnRawValue, NUMBERS[_analog]->ReturnValue, NUMBERS[_analog]->ReturnPreValue, NUMBERS[_analog]->ErrorMessageText, digital, analog); LogFile.WriteToData(NUMBERS[_analog]->ReturnRawValue, NUMBERS[_analog]->ReturnValue, NUMBERS[_analog]->ReturnPreValue, NUMBERS[_analog]->ErrorMessageText, digital, analog);
printf("WriteDataLog: %s, %s, %s, %s, %s", NUMBERS[_analog]->ReturnRawValue.c_str(), NUMBERS[_analog]->ReturnValue.c_str(), NUMBERS[_analog]->ErrorMessageText.c_str(), digital.c_str(), analog.c_str()); ESP_LOGD(TAG, "WriteDataLog: %s, %s, %s, %s, %s", NUMBERS[_analog]->ReturnRawValue.c_str(), NUMBERS[_analog]->ReturnValue.c_str(), NUMBERS[_analog]->ErrorMessageText.c_str(), digital.c_str(), analog.c_str());
} }
@@ -863,7 +868,7 @@ void ClassFlowPostProcessing::UpdateNachkommaDecimalShift()
{ {
if (NUMBERS[j]->digit_roi && !NUMBERS[j]->analog_roi) // es gibt nur digitale ziffern if (NUMBERS[j]->digit_roi && !NUMBERS[j]->analog_roi) // es gibt nur digitale ziffern
{ {
// printf("Nurdigital\n"); // ESP_LOGD(TAG, "Nurdigital");
NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShiftInitial; NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShiftInitial;
if (NUMBERS[j]->isExtendedResolution && flowDigit->isExtendedResolution()) // extended resolution ist an und soll auch bei dieser Ziffer verwendet werden if (NUMBERS[j]->isExtendedResolution && flowDigit->isExtendedResolution()) // extended resolution ist an und soll auch bei dieser Ziffer verwendet werden
@@ -874,7 +879,7 @@ void ClassFlowPostProcessing::UpdateNachkommaDecimalShift()
if (!NUMBERS[j]->digit_roi && NUMBERS[j]->analog_roi) // es gibt nur analoge ziffern if (!NUMBERS[j]->digit_roi && NUMBERS[j]->analog_roi) // es gibt nur analoge ziffern
{ {
// printf("Nur analog\n"); // ESP_LOGD(TAG, "Nur analog");
NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShiftInitial; NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShiftInitial;
if (NUMBERS[j]->isExtendedResolution && flowAnalog->isExtendedResolution()) // extended resolution ist an und soll auch bei dieser Ziffer verwendet werden if (NUMBERS[j]->isExtendedResolution && flowAnalog->isExtendedResolution()) // extended resolution ist an und soll auch bei dieser Ziffer verwendet werden
NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShift-1; NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShift-1;
@@ -884,7 +889,7 @@ void ClassFlowPostProcessing::UpdateNachkommaDecimalShift()
if (NUMBERS[j]->digit_roi && NUMBERS[j]->analog_roi) // digital + analog if (NUMBERS[j]->digit_roi && NUMBERS[j]->analog_roi) // digital + analog
{ {
// printf("Nur digital + analog\n"); // ESP_LOGD(TAG, "Nur digital + analog");
NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShiftInitial; NUMBERS[j]->DecimalShift = NUMBERS[j]->DecimalShiftInitial;
NUMBERS[j]->Nachkomma = NUMBERS[j]->analog_roi->ROI.size() - NUMBERS[j]->DecimalShift; NUMBERS[j]->Nachkomma = NUMBERS[j]->analog_roi->ROI.size() - NUMBERS[j]->DecimalShift;
@@ -894,7 +899,7 @@ void ClassFlowPostProcessing::UpdateNachkommaDecimalShift()
} }
printf("UpdateNachkommaDecShift NUMBER%i: Nachkomma %i, DecShift %i\n", j, NUMBERS[j]->Nachkomma,NUMBERS[j]->DecimalShift); ESP_LOGD(TAG, "UpdateNachkommaDecShift NUMBER%i: Nachkomma %i, DecShift %i", j, NUMBERS[j]->Nachkomma,NUMBERS[j]->DecimalShift);
} }
} }
@@ -916,7 +921,7 @@ string ClassFlowPostProcessing::getReadoutParam(bool _rawValue, bool _noerror, i
string ClassFlowPostProcessing::RundeOutput(double _in, int _anzNachkomma){ string ClassFlowPostProcessing::RundeOutput(double _in, int _anzNachkomma){
std::stringstream stream; std::stringstream stream;
int _zw = _in; int _zw = _in;
// printf("AnzNachkomma: %d\n", _anzNachkomma); // ESP_LOGD(TAG, "AnzNachkomma: %d", _anzNachkomma);
if (_anzNachkomma < 0) { if (_anzNachkomma < 0) {
_anzNachkomma = 0; _anzNachkomma = 0;
@@ -981,7 +986,7 @@ float ClassFlowPostProcessing::checkDigitConsistency(double input, int _decilams
pot++; pot++;
} }
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("checkDigitConsistency: pot=%d, decimalshift=%d\n", pot, _decilamshift); ESP_LOGD(TAG, "checkDigitConsistency: pot=%d, decimalshift=%d", pot, _decilamshift);
#endif #endif
pot_max = ((int) log10(input)) + 1; pot_max = ((int) log10(input)) + 1;
while (pot <= pot_max) while (pot <= pot_max)
@@ -1013,7 +1018,7 @@ float ClassFlowPostProcessing::checkDigitConsistency(double input, int _decilams
} }
} }
#ifdef SERIAL_DEBUG #ifdef SERIAL_DEBUG
printf("checkDigitConsistency: input=%f", input); ESP_LOGD(TAG, "checkDigitConsistency: input=%f", input);
#endif #endif
pot++; pot++;
} }

View File

@@ -22,6 +22,8 @@ extern "C" {
#include "ClassLogFile.h" #include "ClassLogFile.h"
//#include "ClassLogFile.h" //#include "ClassLogFile.h"
static const char* TAG = "helper";
//#define ISWINDOWS_TRUE //#define ISWINDOWS_TRUE
#define PATH_MAX_STRING_SIZE 256 #define PATH_MAX_STRING_SIZE 256
@@ -90,13 +92,13 @@ FILE* OpenFileAndWait(const char* nm, const char* _mode, int _waitsec)
{ {
FILE *pfile; FILE *pfile;
printf("open file %s in mode %s\n", nm, _mode); ESP_LOGD(TAG, "open file %s in mode %s", nm, _mode);
if ((pfile = fopen(nm, _mode)) != NULL) { if ((pfile = fopen(nm, _mode)) != NULL) {
printf("File %s successfully opened\n", nm); ESP_LOGD(TAG, "File %s successfully opened", nm);
} }
else { else {
printf("Error: file %s does not exist!\n", nm); ESP_LOGD(TAG, "Error: file %s does not exist!", nm);
return NULL; return NULL;
} }
@@ -106,8 +108,7 @@ FILE* OpenFileAndWait(const char* nm, const char* _mode, int _waitsec)
TickType_t xDelay; TickType_t xDelay;
xDelay = _waitsec * 1000 / portTICK_PERIOD_MS; xDelay = _waitsec * 1000 / portTICK_PERIOD_MS;
std::string zw = "File is locked: " + std::string(nm) + " - wait for " + std::to_string(_waitsec) + " seconds"; std::string zw = "File is locked: " + std::string(nm) + " - wait for " + std::to_string(_waitsec) + " seconds";
printf(zw.c_str()); ESP_LOGD(TAG, "%s", zw.c_str());
printf("\n");
LogFile.WriteToFile(zw); LogFile.WriteToFile(zw);
vTaskDelay( xDelay ); vTaskDelay( xDelay );
pfile = fopen(nm, _mode); pfile = fopen(nm, _mode);
@@ -159,7 +160,7 @@ void MakeDir(std::string _what)
// chdir(_where.c_str()); // chdir(_where.c_str());
if (mkdir(_what.c_str(), S_IRWXU|S_IRWXG|S_IROTH)) if (mkdir(_what.c_str(), S_IRWXU|S_IRWXG|S_IROTH))
printf("Problem with MakeDir: %s \n", _what.c_str()); ESP_LOGD(TAG, "Problem with MakeDir: %s", _what.c_str());
} }
@@ -233,7 +234,7 @@ void RenameFile(string from, string to)
FILE* fpSourceFile = OpenFileAndWait(from.c_str(), "rb"); FILE* fpSourceFile = OpenFileAndWait(from.c_str(), "rb");
if (!fpSourceFile) // Sourcefile existiert nicht sonst gibt es einen Fehler beim Kopierversuch! if (!fpSourceFile) // Sourcefile existiert nicht sonst gibt es einen Fehler beim Kopierversuch!
{ {
printf("DeleteFile: File %s existiert nicht!\n", from.c_str()); ESP_LOGD(TAG, "DeleteFile: File %s existiert nicht!", from.c_str());
return; return;
} }
fclose(fpSourceFile); fclose(fpSourceFile);
@@ -249,7 +250,7 @@ void DeleteFile(string fn)
FILE* fpSourceFile = OpenFileAndWait(fn.c_str(), "rb"); FILE* fpSourceFile = OpenFileAndWait(fn.c_str(), "rb");
if (!fpSourceFile) // Sourcefile existiert nicht sonst gibt es einen Fehler beim Kopierversuch! if (!fpSourceFile) // Sourcefile existiert nicht sonst gibt es einen Fehler beim Kopierversuch!
{ {
printf("DeleteFile: File %s existiert nicht!\n", fn.c_str()); ESP_LOGD(TAG, "DeleteFile: File %s existiert nicht!", fn.c_str());
return; return;
} }
fclose(fpSourceFile); fclose(fpSourceFile);
@@ -265,7 +266,7 @@ void CopyFile(string input, string output)
if (toUpper(input).compare("/SDCARD/WLAN.INI") == 0) if (toUpper(input).compare("/SDCARD/WLAN.INI") == 0)
{ {
printf("wlan.ini kann nicht kopiert werden!\n"); ESP_LOGD(TAG, "wlan.ini kann nicht kopiert werden!");
return; return;
} }
@@ -273,7 +274,7 @@ void CopyFile(string input, string output)
FILE* fpSourceFile = OpenFileAndWait(input.c_str(), "rb"); FILE* fpSourceFile = OpenFileAndWait(input.c_str(), "rb");
if (!fpSourceFile) // Sourcefile existiert nicht sonst gibt es einen Fehler beim Kopierversuch! if (!fpSourceFile) // Sourcefile existiert nicht sonst gibt es einen Fehler beim Kopierversuch!
{ {
printf("File %s existiert nicht!\n", input.c_str()); ESP_LOGD(TAG, "File %s existiert nicht!", input.c_str());
return; return;
} }
@@ -291,7 +292,7 @@ void CopyFile(string input, string output)
// Close The Files // Close The Files
fclose(fpSourceFile); fclose(fpSourceFile);
fclose(fpTargetFile); fclose(fpTargetFile);
printf("File copied: %s to %s", input.c_str(), output.c_str()); ESP_LOGD(TAG, "File copied: %s to %s", input.c_str(), output.c_str());
} }
string getFileFullFileName(string filename) string getFileFullFileName(string filename)
@@ -301,7 +302,7 @@ string getFileFullFileName(string filename)
if (lastpos == string::npos) if (lastpos == string::npos)
return ""; return "";
// printf("Last position: %d\n", lastpos); // ESP_LOGD(TAG, "Last position: %d", lastpos);
string zw = filename.substr(lastpos + 1, filename.size() - lastpos); string zw = filename.substr(lastpos + 1, filename.size() - lastpos);
@@ -318,7 +319,7 @@ string getDirectory(string filename)
if (lastpos == string::npos) if (lastpos == string::npos)
return ""; return "";
// printf("Directory: %d\n", lastpos); // ESP_LOGD(TAG, "Directory: %d", lastpos);
string zw = filename.substr(0, lastpos - 1); string zw = filename.substr(0, lastpos - 1);
return zw; return zw;

View File

@@ -5,6 +5,9 @@
#define _USE_MATH_DEFINES #define _USE_MATH_DEFINES
#include <math.h> #include <math.h>
#include <algorithm> #include <algorithm>
#include <esp_log.h>
static const char* TAG = "c_align_and_cut_image";
//#define GET_MEMORY malloc //#define GET_MEMORY malloc
#define GET_MEMORY(X) heap_caps_malloc(X, MALLOC_CAP_SPIRAM) #define GET_MEMORY(X) heap_caps_malloc(X, MALLOC_CAP_SPIRAM)
@@ -43,14 +46,14 @@ bool CAlignAndCutImage::Align(RefInfo *_temp1, RefInfo *_temp2)
r0_x = _temp1->target_x; r0_x = _temp1->target_x;
r0_y = _temp1->target_y; r0_y = _temp1->target_y;
printf("Vor ft->FindTemplate(_temp1); %s\n", _temp1->image_file.c_str()); ESP_LOGD(TAG, "Vor ft->FindTemplate(_temp1); %s", _temp1->image_file.c_str());
isSimilar1 = ft->FindTemplate(_temp1); isSimilar1 = ft->FindTemplate(_temp1);
_temp1->width = ft->tpl_width; _temp1->width = ft->tpl_width;
_temp1->height = ft->tpl_height; _temp1->height = ft->tpl_height;
r1_x = _temp2->target_x; r1_x = _temp2->target_x;
r1_y = _temp2->target_y; r1_y = _temp2->target_y;
printf("Vor ft->FindTemplate(_temp2); %s\n", _temp2->image_file.c_str()); ESP_LOGD(TAG, "Vor ft->FindTemplate(_temp2); %s", _temp2->image_file.c_str());
isSimilar2 = ft->FindTemplate(_temp2); isSimilar2 = ft->FindTemplate(_temp2);
_temp2->width = ft->tpl_width; _temp2->width = ft->tpl_width;
_temp2->height = ft->tpl_height; _temp2->height = ft->tpl_height;
@@ -86,7 +89,7 @@ bool CAlignAndCutImage::Align(RefInfo *_temp1, RefInfo *_temp2)
CRotateImage rt(this, ImageTMP); CRotateImage rt(this, ImageTMP);
rt.Translate(dx, dy); rt.Translate(dx, dy);
rt.Rotate(d_winkel, _temp1->target_x, _temp1->target_y); rt.Rotate(d_winkel, _temp1->target_x, _temp1->target_y);
printf("Alignment: dx %d - dy %d - rot %f\n", dx, dy, d_winkel); ESP_LOGD(TAG, "Alignment: dx %d - dy %d - rot %f", dx, dy, d_winkel);
return (isSimilar1 && isSimilar2); return (isSimilar1 && isSimilar2);
} }
@@ -147,7 +150,7 @@ void CAlignAndCutImage::CutAndSave(int x1, int y1, int dx, int dy, CImageBasis *
if ((_target->height != dy) || (_target->width != dx) || (_target->channels != channels)) if ((_target->height != dy) || (_target->width != dx) || (_target->channels != channels))
{ {
printf("CAlignAndCutImage::CutAndSave - Image size does not match !!"); ESP_LOGD(TAG, "CAlignAndCutImage::CutAndSave - Image size does not match!");
return; return;
} }

View File

@@ -2,6 +2,10 @@
#include "ClassLogFile.h" #include "ClassLogFile.h"
#include <esp_log.h>
static const char* TAG = "c_find_template";
// #define DEBUG_DETAIL_ON // #define DEBUG_DETAIL_ON
@@ -9,7 +13,7 @@ bool CFindTemplate::FindTemplate(RefInfo *_ref)
{ {
uint8_t* rgb_template = stbi_load(_ref->image_file.c_str(), &tpl_width, &tpl_height, &tpl_bpp, channels); uint8_t* rgb_template = stbi_load(_ref->image_file.c_str(), &tpl_width, &tpl_height, &tpl_bpp, channels);
// printf("FindTemplate 01\n"); // ESP_LOGD(TAG, "FindTemplate 01");
int ow, ow_start, ow_stop; int ow, ow_start, ow_stop;
int oh, oh_start, oh_stop; int oh, oh_start, oh_stop;
@@ -45,7 +49,7 @@ bool CFindTemplate::FindTemplate(RefInfo *_ref)
int min, max; int min, max;
bool isSimilar = false; bool isSimilar = false;
// printf("FindTemplate 02\n"); // ESP_LOGD(TAG, "FindTemplate 02");
if ((_ref->alignment_algo == 2) && (_ref->fastalg_x > -1) && (_ref->fastalg_y > -1)) // für Testzwecke immer Berechnen if ((_ref->alignment_algo == 2) && (_ref->fastalg_x > -1) && (_ref->fastalg_y > -1)) // für Testzwecke immer Berechnen
{ {
@@ -57,7 +61,7 @@ bool CFindTemplate::FindTemplate(RefInfo *_ref)
#endif #endif
} }
// printf("FindTemplate 03\n"); // ESP_LOGD(TAG, "FindTemplate 03");
if (isSimilar) if (isSimilar)
@@ -70,7 +74,7 @@ bool CFindTemplate::FindTemplate(RefInfo *_ref)
return true; return true;
} }
// printf("FindTemplate 04\n"); // ESP_LOGD(TAG, "FindTemplate 04");
double aktSAD; double aktSAD;
@@ -78,7 +82,7 @@ bool CFindTemplate::FindTemplate(RefInfo *_ref)
RGBImageLock(); RGBImageLock();
// printf("FindTemplate 05\n"); // ESP_LOGD(TAG, "FindTemplate 05");
int xouter, youter, tpl_x, tpl_y, _ch; int xouter, youter, tpl_x, tpl_y, _ch;
int _anzchannels = channels; int _anzchannels = channels;
if (_ref->alignment_algo == 0) // 0 = "Default" (nur R-Kanal) if (_ref->alignment_algo == 0) // 0 = "Default" (nur R-Kanal)
@@ -106,14 +110,14 @@ bool CFindTemplate::FindTemplate(RefInfo *_ref)
} }
} }
// printf("FindTemplate 06\n"); // ESP_LOGD(TAG, "FindTemplate 06");
if (_ref->alignment_algo == 2) if (_ref->alignment_algo == 2)
CalculateSimularities(rgb_template, _ref->found_x, _ref->found_y, ow, oh, min, avg, max, SAD, _ref->fastalg_SAD, _ref->fastalg_SAD_criteria); CalculateSimularities(rgb_template, _ref->found_x, _ref->found_y, ow, oh, min, avg, max, SAD, _ref->fastalg_SAD, _ref->fastalg_SAD_criteria);
// printf("FindTemplate 07\n"); // ESP_LOGD(TAG, "FindTemplate 07");
_ref->fastalg_x = _ref->found_x; _ref->fastalg_x = _ref->found_x;
_ref->fastalg_y = _ref->found_y; _ref->fastalg_y = _ref->found_y;
@@ -132,7 +136,7 @@ bool CFindTemplate::FindTemplate(RefInfo *_ref)
RGBImageRelease(); RGBImageRelease();
stbi_image_free(rgb_template); stbi_image_free(rgb_template);
// printf("FindTemplate 08\n"); // ESP_LOGD(TAG, "FindTemplate 08");
return false; return false;
} }
@@ -173,7 +177,7 @@ bool CFindTemplate::CalculateSimularities(uint8_t* _rgb_tmpl, int _startx, int _
float _SADdif = abs(SAD - _SADold); float _SADdif = abs(SAD - _SADold);
printf("Anzahl %ld, avgDifSum %fd, avg %f, SAD_neu: %fd, _SAD_old: %f, _SAD_crit:%f\n", anz, avgDifSum, avg, SAD, _SADold, _SADdif); ESP_LOGD(TAG, "Anzahl %ld, avgDifSum %fd, avg %f, SAD_neu: %fd, _SAD_old: %f, _SAD_crit:%f", anz, avgDifSum, avg, SAD, _SADold, _SADdif);
if (_SADdif <= _SADcrit) if (_SADdif <= _SADcrit)
return true; return true;

View File

@@ -61,7 +61,7 @@ uint8_t * CImageBasis::RGBImageGet()
void writejpghelp(void *context, void *data, int size) void writejpghelp(void *context, void *data, int size)
{ {
// printf("Size all: %d, size %d\n", ((ImageData*)context)->size, size); // ESP_LOGD(TAG, "Size all: %d, size %d", ((ImageData*)context)->size, size);
ImageData* _zw = (ImageData*) context; ImageData* _zw = (ImageData*) context;
uint8_t *voidstart = _zw->data; uint8_t *voidstart = _zw->data;
uint8_t *datastart = (uint8_t*) data; uint8_t *datastart = (uint8_t*) data;
@@ -146,7 +146,7 @@ bool CImageBasis::CopyFromMemory(uint8_t* _source, int _size)
int gr = height * width * channels; int gr = height * width * channels;
if (gr != _size) // Größe passt nicht if (gr != _size) // Größe passt nicht
{ {
printf("Cannot copy image from memory - sizes do not match: should be %d, but is %d\n", _size, gr); ESP_LOGD(TAG, "Cannot copy image from memory - sizes do not match: should be %d, but is %d", _size, gr);
return false; return false;
} }
@@ -359,7 +359,7 @@ void CImageBasis::LoadFromMemory(stbi_uc *_buffer, int len)
stbi_image_free(rgb_image); stbi_image_free(rgb_image);
rgb_image = stbi_load_from_memory(_buffer, len, &width, &height, &channels, 3); rgb_image = stbi_load_from_memory(_buffer, len, &width, &height, &channels, 3);
bpp = channels; bpp = channels;
printf("Image loaded from memory: %d, %d, %d\n", width, height, channels); ESP_LOGD(TAG, "Image loaded from memory: %d, %d, %d", width, height, channels);
if ((width * height * channels) == 0) if ((width * height * channels) == 0)
{ {
ESP_LOGE(TAG, "Image with size 0 loaded --> reboot to be done! " ESP_LOGE(TAG, "Image with size 0 loaded --> reboot to be done! "
@@ -392,7 +392,7 @@ CImageBasis::CImageBasis(CImageBasis *_copyfrom, int _anzrepeat)
int anz = 1; int anz = 1;
while (!rgb_image && (anz < _anzrepeat)) while (!rgb_image && (anz < _anzrepeat))
{ {
printf("Create Image from Copy - Memory is full - try again: %d.\n", anz); ESP_LOGD(TAG, "Create Image from Copy - Memory is full - try again: %d", anz);
rgb_image = (unsigned char*) malloc(memsize); rgb_image = (unsigned char*) malloc(memsize);
anz++; anz++;
} }
@@ -400,8 +400,8 @@ CImageBasis::CImageBasis(CImageBasis *_copyfrom, int _anzrepeat)
if (!rgb_image) if (!rgb_image)
{ {
printf(getESPHeapInfo().c_str()); ESP_LOGD(TAG, "%s", getESPHeapInfo().c_str());
printf("\nNo more free memory!! Needed: %d %d %d %d\n", width, height, channels, memsize); ESP_LOGD(TAG, "No more free memory!! Needed: %d %d %d %d", width, height, channels, memsize);
RGBImageRelease(); RGBImageRelease();
return; return;
} }
@@ -424,8 +424,8 @@ CImageBasis::CImageBasis(int _width, int _height, int _channels)
rgb_image = (unsigned char*)GET_MEMORY(memsize); rgb_image = (unsigned char*)GET_MEMORY(memsize);
if (!rgb_image) if (!rgb_image)
{ {
printf(getESPHeapInfo().c_str()); ESP_LOGD(TAG, "%s", getESPHeapInfo().c_str());
printf("\nNo more free memory!! Needed: %d %d %d %d\n", width, height, channels, memsize); ESP_LOGD(TAG, "No more free memory!! Needed: %d %d %d %d", width, height, channels, memsize);
return; return;
} }
} }
@@ -438,21 +438,21 @@ CImageBasis::CImageBasis(std::string _image)
externalImage = false; externalImage = false;
filename = _image; filename = _image;
long zwld = esp_get_free_heap_size(); long zwld = esp_get_free_heap_size();
printf("freeheapsize before: %ld\n", zwld); ESP_LOGD(TAG, "freeheapsize before: %ld", zwld);
RGBImageLock(); RGBImageLock();
rgb_image = stbi_load(_image.c_str(), &width, &height, &bpp, channels); rgb_image = stbi_load(_image.c_str(), &width, &height, &bpp, channels);
RGBImageRelease(); RGBImageRelease();
zwld = esp_get_free_heap_size(); zwld = esp_get_free_heap_size();
printf("freeheapsize after : %ld\n", zwld); ESP_LOGD(TAG, "freeheapsize after : %ld", zwld);
std::string zw = "Image Load failed:" + _image + "\n"; std::string zw = "Image Load failed:" + _image;
if (rgb_image == NULL) if (rgb_image == NULL)
printf(zw.c_str()); ESP_LOGD(TAG, "%s", zw.c_str());
zw = "CImageBasis after load " + _image + "\n"; zw = "CImageBasis after load " + _image + "\n";
printf(zw.c_str()); ESP_LOGD(TAG, "%s", zw.c_str());
printf("w %d, h %d, b %d, c %d\n", width, height, bpp, channels); ESP_LOGD(TAG, "w %d, h %d, b %d, c %d", width, height, bpp, channels);
} }
@@ -543,7 +543,7 @@ void CImageBasis::Resize(int _new_dx, int _new_dy, CImageBasis *_target)
{ {
if ((_target->height != _new_dy) || (_target->width != _new_dx) || (_target->channels != channels)) if ((_target->height != _new_dy) || (_target->width != _new_dx) || (_target->channels != channels))
{ {
printf("CImageBasis::Resize - Target image size does not fit !!"); ESP_LOGD(TAG, "CImageBasis::Resize - Target image size does not fit!");
return; return;
} }

View File

@@ -280,13 +280,13 @@ void CRotateImage::RotateAntiAliasing(float _angle, int _centerx, int _centery)
void CRotateImage::Rotate(float _angle) void CRotateImage::Rotate(float _angle)
{ {
// printf("width %d, height %d\n", width, height); // ESP_LOGD(TAG, "width %d, height %d", width, height);
Rotate(_angle, width / 2, height / 2); Rotate(_angle, width / 2, height / 2);
} }
void CRotateImage::RotateAntiAliasing(float _angle) void CRotateImage::RotateAntiAliasing(float _angle)
{ {
// printf("width %d, height %d\n", width, height); // ESP_LOGD(TAG, "width %d, height %d", width, height);
RotateAntiAliasing(_angle, width / 2, height / 2); RotateAntiAliasing(_angle, width / 2, height / 2);
} }

View File

@@ -64,7 +64,7 @@ std::string ClassLogFile::getESPHeapInfo(){
void ClassLogFile::WriteToData(std::string _ReturnRawValue, std::string _ReturnValue, std::string _ReturnPreValue, std::string _ErrorMessageText, std::string _digital, std::string _analog) void ClassLogFile::WriteToData(std::string _ReturnRawValue, std::string _ReturnValue, std::string _ReturnPreValue, std::string _ErrorMessageText, std::string _digital, std::string _analog)
{ {
printf("Start WriteToData\n"); ESP_LOGD(TAG, "Start WriteToData\n");
time_t rawtime; time_t rawtime;
struct tm* timeinfo; struct tm* timeinfo;
char buffer[30]; char buffer[30];
@@ -82,7 +82,7 @@ void ClassLogFile::WriteToData(std::string _ReturnRawValue, std::string _ReturnV
return; return;
} }
printf("Datalogfile: %s\n", logpath.c_str()); ESP_LOGD(TAG, "Datalogfile: %s", logpath.c_str());
pFile = fopen(logpath.c_str(), "a+"); pFile = fopen(logpath.c_str(), "a+");
if (pFile!=NULL) { if (pFile!=NULL) {
@@ -130,7 +130,7 @@ void ClassLogFile::WriteToDedicatedFile(std::string _fn, std::string info, bool
// pFile = OpenFileAndWait(_fn.c_str(), "a"); // pFile = OpenFileAndWait(_fn.c_str(), "a");
pFile = fopen(_fn.c_str(), "a+"); pFile = fopen(_fn.c_str(), "a+");
// printf("Logfile opened: %s\n", _fn.c_str()); // ESP_LOGD(TAG, "Logfile opened: %s", _fn.c_str());
if (pFile!=NULL) { if (pFile!=NULL) {
if (_time) if (_time)
@@ -186,7 +186,7 @@ void ClassLogFile::WriteToFile(std::string info, bool _time)
std::string logpath = logroot + "/" + buffer; std::string logpath = logroot + "/" + buffer;
WriteToDedicatedFile(logpath, info, _time); WriteToDedicatedFile(logpath, info, _time);
printf((info + "\n").c_str()); ESP_LOGD(TAG, "%s", info.c_str());
} }
std::string ClassLogFile::GetCurrentFileName() std::string ClassLogFile::GetCurrentFileName()

View File

@@ -211,7 +211,7 @@ bool ChangeHostName(std::string fn, std::string _newhostname)
while ((line.size() > 0) || !(feof(pFile))) while ((line.size() > 0) || !(feof(pFile)))
{ {
printf("%s", line.c_str()); ESP_LOGD(TAG, "%s", line.c_str());
zerlegt = ZerlegeZeileWLAN(line, "="); zerlegt = ZerlegeZeileWLAN(line, "=");
zerlegt[0] = trim(zerlegt[0], " "); zerlegt[0] = trim(zerlegt[0], " ");
@@ -244,7 +244,7 @@ bool ChangeHostName(std::string fn, std::string _newhostname)
for (int i = 0; i < neuesfile.size(); ++i) for (int i = 0; i < neuesfile.size(); ++i)
{ {
printf(neuesfile[i].c_str()); ESP_LOGD(TAG, "%s", neuesfile[i].c_str());
fputs(neuesfile[i].c_str(), pFile); fputs(neuesfile[i].c_str(), pFile);
} }