jomjol 5 лет назад
Родитель
Сommit
d89438a15f

+ 11 - 3
README.md

@@ -27,14 +27,22 @@ A 3d-printable housing can be found here: https://www.thingiverse.com/thing:4571
 
 
 
-##### Rolling - (2020-09-27)
+##### Rolling - (2020-09-28)
 
-* based on v2.2.0 (2020-09-27)
+* Error Correction
 
+* based on v2.2.1 (2020-09-28)
+
+  
+  
+##### 2.2.1 Version Control  (2020-09-27)
+
+* Bug-Fixing (hostname in wlan.ini and error handling inside flow)
+  
   
 
 
-##### 2.2.0 Version Controll  (2020-09-27)
+##### 2.2.0 Version Control  (2020-09-27)
 
 * Integrated automated versioning system (menu: SYSTEM --> INFO)
 * Update Build-System to PlatformIO - Espressif 32 v2.0.0 (ESP-IDF 4.1)

+ 7 - 8
code/lib/connect_wlan/connect_wlan.cpp

@@ -143,7 +143,6 @@ void LoadWlanFromFile(std::string fn, std::string &_ssid, std::string &_passphra
 
     char zw[1024];
     fgets(zw, 1024, pFile);
-//    printf("%s", zw);
     line = std::string(zw);
 
     while ((line.size() > 0) || !(feof(pFile)))
@@ -151,21 +150,16 @@ void LoadWlanFromFile(std::string fn, std::string &_ssid, std::string &_passphra
 //        printf("%s", line.c_str());
         zerlegt = ZerlegeZeile(line, "=");
         zerlegt[0] = trim(zerlegt[0], " ");
-        zerlegt[1] = trim(zerlegt[1], " "); 
 
         if ((zerlegt.size() > 1) && (toUpper(zerlegt[0]) == "HOSTNAME")){
-            _hostname = zerlegt[1];
+            _hostname = trim(zerlegt[1]);
             if ((_hostname[0] == '"') && (_hostname[_hostname.length()-1] == '"')){
                 _hostname = _hostname.substr(1, _hostname.length()-2);
             }
-	    // Check if Hostname was empty in .ini if yes set to std_hostname
-	    if(_hostname.length() <= 0){
-      		_hostname = std_hostname;
-    	    }
         }
 
         if ((zerlegt.size() > 1) && (toUpper(zerlegt[0]) == "SSID")){
-            _ssid = zerlegt[1];
+            _ssid = trim(zerlegt[1]);
             if ((_ssid[0] == '"') && (_ssid[_ssid.length()-1] == '"')){
                 _ssid = _ssid.substr(1, _ssid.length()-2);
             }
@@ -189,6 +183,11 @@ void LoadWlanFromFile(std::string fn, std::string &_ssid, std::string &_passphra
     }
 
     fclose(pFile);
+
+    // Check if Hostname was empty in .ini if yes set to std_hostname
+    if(_hostname.length() <= 0){
+        _hostname = std_hostname;
+        }
 }
 
 

+ 2 - 0
code/lib/jomjol_flowcontroll/ClassFlowAnalog.cpp

@@ -108,6 +108,7 @@ bool ClassFlowAnalog::ReadParameter(FILE* pfile, string& aktparamgraph)
             neuroi->posy = std::stoi(zerlegt[2]);
             neuroi->deltax = std::stoi(zerlegt[3]);
             neuroi->deltay = std::stoi(zerlegt[4]);
+            neuroi->result = -1;
             ROI.push_back(neuroi);
         }
     }
@@ -175,6 +176,7 @@ bool ClassFlowAnalog::doAlignAndCut(string time)
         img_roi = new CImageBasis(input_roi);
         if (!img_roi->ImageOkay()){
             LogFile.WriteToFile("ClassFlowAnalog::doAlignAndCut ImageRoi not okay!");
+            delete caic;
             delete img_roi;
             return false;
         }

+ 0 - 294
code/lib/jomjol_flowcontroll/ClassFlowControll._c_pp

@@ -1,294 +0,0 @@
-#include "ClassFlowControll.h"
-
-#include "ClassLogFile.h"
-#include "time_sntp.h"
-#include "Helper.h"
-#include "server_ota.h"
-
-std::string ClassFlowControll::doSingleStep(std::string _stepname, std::string _host){
-    bool found = false;
-    std::string _classname = "";
-    std::string result = "";
-    if (_stepname.compare("[MakeImage]") == 0){
-        _classname = "ClassFlowMakeImage";
-    }
-    if (_stepname.compare("[Alignment]") == 0){
-        _classname = "ClassFlowAlignment";
-    }
-    if (_stepname.compare("[Digits]") == 0){
-        _classname = "ClassFlowDigit";
-    }
-    if (_stepname.compare("[Analog]") == 0){
-        _classname = "ClassFlowAnalog";
-    }
-//    std::string zw = "Classname: " + _classname + "\n";
-//    printf(zw.c_str());
-
-    for (int i = 0; i < FlowControll.size(); ++i)
-        if (FlowControll[i]->name().compare(_classname) == 0){
- //           printf(FlowControll[i]->name().c_str()); printf("\n");
-            FlowControll[i]->doFlow("");
-            result = FlowControll[i]->getHTMLSingleStep(_host);
-            found = true;
-        }
-
-    return result;
-}
-
-std::vector<HTMLInfo*> ClassFlowControll::GetAllDigital()
-{
-    for (int i = 0; i < FlowControll.size(); ++i)
-        if (FlowControll[i]->name().compare("ClassFlowDigit") == 0)
-            return ((ClassFlowDigit*) (FlowControll[i]))->GetHTMLInfo();
-
-    std::vector<HTMLInfo*> empty;
-    return empty;
-}
-
-std::vector<HTMLInfo*> ClassFlowControll::GetAllAnalog()
-{
-    for (int i = 0; i < FlowControll.size(); ++i)
-        if (FlowControll[i]->name().compare("ClassFlowAnalog") == 0)
-            return ((ClassFlowAnalog*) (FlowControll[i]))->GetHTMLInfo();
-
-    std::vector<HTMLInfo*> empty;
-    return empty;
-}
-
-
-void ClassFlowControll::SetInitialParameter(void)
-{
-    AutoStart = false;
-    AutoIntervall = 10;
-}
-
-bool ClassFlowControll::isAutoStart(long &_intervall)
-{
-    _intervall = AutoIntervall * 60 * 1000; // AutoIntervall: Minuten -> ms
-    return AutoStart;
-}
-
-ClassFlow* ClassFlowControll::CreateClassFlow(std::string _type)
-{
-    ClassFlow* cfc = NULL;
-
-    _type = trim(_type);
-
-    if (_type.compare("[MakeImage]") == 0)
-        cfc = new ClassFlowMakeImage(&FlowControll);
-    if (_type.compare("[Alignment]") == 0)
-        cfc = new ClassFlowAlignment(&FlowControll);
-    if (_type.compare("[Analog]") == 0)
-        cfc = new ClassFlowAnalog(&FlowControll);
-    if (_type.compare("[Digits]") == 0)
-        cfc = new ClassFlowDigit(&FlowControll);
-    if (_type.compare("[PostProcessing]") == 0)
-    {
-        cfc = new ClassFlowPostProcessing(&FlowControll); 
-        flowpostprocessing = (ClassFlowPostProcessing*) cfc;
-    }
-
-    if (cfc)                            // Wird nur angehangen, falls es nicht [AutoTimer] ist, denn dieses ist für FlowControll
-        FlowControll.push_back(cfc);
-
-    if (_type.compare("[AutoTimer]") == 0)
-        cfc = this;   
-
-    if (_type.compare("[Debug]") == 0)
-        cfc = this;           
-
-    return cfc;
-}
-
-void ClassFlowControll::InitFlow(std::string config)
-{
-    string line;
-
-    flowpostprocessing = NULL;
-
-    ClassFlow* cfc;
-    FILE* pFile;
-    config = FormatFileName(config);
-    pFile = fopen(config.c_str(), "r");
-
-    line = "";
-
-    char zw[1024];
-    if (pFile != NULL)
-    {
-        fgets(zw, 1024, pFile);
-        printf("%s", zw);
-        line = std::string(zw);
-    }
-
-    while ((line.size() > 0) && !(feof(pFile)))
-    {
-        cfc = CreateClassFlow(line);
-        if (cfc)
-        {
-            cfc->ReadParameter(pFile, line);
-        }
-        else
-        {
-            fgets(zw, 1024, pFile);
-            printf("%s", zw);
-            line = std::string(zw);
-        }
-    }
-
-    fclose(pFile);
-
-}
-
-std::string ClassFlowControll::getActStatus(){
-    return aktstatus;
-}
-
-bool ClassFlowControll::doFlow(string time)
-{
-    bool result = true;
-    std::string zw_time;
-    int repeat = 0;
-
-    for (int i = 0; i < FlowControll.size(); ++i)
-    {
-        zw_time = gettimestring("%Y%m%d-%H%M%S");
-        aktstatus = zw_time + ": " + FlowControll[i]->name();
-        string zw = "FlowControll.doFlow - " + FlowControll[i]->name();
-        LogFile.WriteToFile(zw);
-        if (!FlowControll[i]->doFlow(time)){
-            repeat++;
-            LogFile.WriteToFile("Fehler im vorheriger Schritt - wird zum " + to_string(repeat) + ". Mal wiederholt");
-            i = -1;    // Soll wieder bei i = 0 anfangen ==> komplett von vorne !!!
-            result = false;
-            if (repeat > 5) {
-                LogFile.WriteToFile("Wiederholung 5x nicht erfolgreich --> reboot");
-                doReboot();
-                // Schritt wurde 5x wiederholt --> reboot
-            }
-        }
-        else
-        {
-            result = true;
-        }
-    }
-    zw_time = gettimestring("%Y%m%d-%H%M%S");    
-    aktstatus = zw_time + ": Flow is done";
-    return result;
-}
-
-string ClassFlowControll::getReadout(bool _rawvalue = false, bool _noerror = false)
-{
-    if (flowpostprocessing)
-        return flowpostprocessing->getReadoutParam(_rawvalue, _noerror);
-
-    string zw = "";
-    string result = "";
-
-    for (int i = 0; i < FlowControll.size(); ++i)
-    {
-        zw = FlowControll[i]->getReadout();
-        if (zw.length() > 0)
-        {
-            if (result.length() == 0)
-                result = zw;
-            else
-                result = result + "\t" + zw;
-        }
-    }
-
-    return result;
-}
-
-string ClassFlowControll::GetPrevalue()	
-{
-    if (flowpostprocessing)
-    {
-        return flowpostprocessing->GetPreValue();   
-    }
-
-    return std::string();    
-}
-
-std::string ClassFlowControll::UpdatePrevalue(std::string _newvalue)
-{
-    float zw;
-    char* p;
-
-    _newvalue = trim(_newvalue);
-//    printf("Input UpdatePreValue: %s\n", _newvalue.c_str());
-
-    if (_newvalue.compare("0.0") == 0)
-    {
-        zw = 0;
-    }
-    else
-    {
-        zw = strtof(_newvalue.c_str(), &p);
-        if (zw == 0)
-            return "- Error in String to Value Conversion!!! Must be of format value=123.456";
-    }
-    
-
-    if (flowpostprocessing)
-    {
-        flowpostprocessing->SavePreValue(zw);
-        return to_string(zw);    
-    }
-
-    return std::string();
-}
-
-bool ClassFlowControll::ReadParameter(FILE* pfile, string& aktparamgraph)
-{
-    std::vector<string> zerlegt;
-
-    aktparamgraph = trim(aktparamgraph);
-
-    if (aktparamgraph.size() == 0)
-        if (!this->GetNextParagraph(pfile, aktparamgraph)){
-            return false;
-        }
-
-//    if ((aktparamgraph.compare("[Autotimer]") != 0) && (aktparamgraph.compare("[Debug]") != 0))      // Paragraph passt nich zu MakeImage
-    if (aktparamgraph.compare("[Autotimer]") != 0)      // Paragraph passt nich zu MakeImage
-        return false;
-
-//    if ((toUpper(aktparamgraph) != "[AUTOTIMER]") && (toUpper(aktparamgraph) != ("[DEBUG]")))      // Paragraph passt nich zu MakeImage
-//        return false;
-
-    while (this->getNextLine(pfile, &aktparamgraph) && !this->isNewParagraph(aktparamgraph))
-    {
-        zerlegt = this->ZerlegeZeile(aktparamgraph);
-        if ((toUpper(zerlegt[0]) == "AUTOSTART") && (zerlegt.size() > 1))
-        {
-            if (toUpper(zerlegt[1]) == "TRUE")
-            {
-                AutoStart = true;
-            }
-        }
-
-        if ((toUpper(zerlegt[0]) == "INTERVALL") && (zerlegt.size() > 1))
-        {
-            AutoIntervall = std::stof(zerlegt[1]);
-        }
-
-/*
-        if ((toUpper(zerlegt[0]) == "LOGFILE") && (zerlegt.size() > 1))
-        {
-            if (toUpper(zerlegt[1]) == "TRUE")
-            {
-                LogFile.SwitchOnOff(true);
-                printf("TurnLogFile On\n");
-            }
-            if (toUpper(zerlegt[1]) == "FALSE")
-            {
-                LogFile.SwitchOnOff(false);
-                printf("TurnLogFile Off\n");
-            }            
-        }
-*/
-    }
-    return true;
-}
-

+ 1 - 1
code/lib/jomjol_flowcontroll/ClassFlowControll.cpp

@@ -157,7 +157,7 @@ bool ClassFlowControll::doFlow(string time)
         if (!FlowControll[i]->doFlow(time)){
             repeat++;
             LogFile.WriteToFile("Fehler im vorheriger Schritt - wird zum " + to_string(repeat) + ". Mal wiederholt");
-            i = i-2;    // vorheriger Schritt muss wiederholt werden (vermutlich Bilder aufnehmen)
+            i = -1;    // vorheriger Schritt muss wiederholt werden (vermutlich Bilder aufnehmen)
             result = false;
             if (repeat > 5) {
                 LogFile.WriteToFile("Wiederholung 5x nicht erfolgreich --> reboot");

+ 3 - 1
code/lib/jomjol_flowcontroll/ClassFlowDigit.cpp

@@ -86,6 +86,7 @@ bool ClassFlowDigit::ReadParameter(FILE* pfile, string& aktparamgraph)
             neuroi->posy = std::stoi(zerlegt[2]);
             neuroi->deltax = std::stoi(zerlegt[3]);
             neuroi->deltay = std::stoi(zerlegt[4]);
+            neuroi->resultklasse = -1;
             ROI.push_back(neuroi);
         }
     }
@@ -152,7 +153,8 @@ bool ClassFlowDigit::doAlignAndCut(string time)
     if (input_roi.length() > 0){
         img_roi = new CImageBasis(input_roi);
         if (!img_roi->ImageOkay()){
-            LogFile.WriteToFile("ClassFlowAnalog::doAlignAndCut ImageRoi not okay!");
+            LogFile.WriteToFile("ClassFlowDigit::doAlignAndCut ImageRoi not okay!");
+            delete caic;
             delete img_roi;
             return false;
         }

+ 1 - 1
code/src/server_tflite.cpp

@@ -468,7 +468,7 @@ void task_autodoFlow(void *pvParameter)
         LogFile.WriteToFile("task_autodoFlow - round done");
         //CPU Temp
         float cputmp = temperatureRead();
-        LogFile.WriteToFile("CPU Temperature: %.2f", cputmp); 
+//        LogFile.WriteToFile("CPU Temperature: %.2f", cputmp); 
         printf("CPU Temperature: %.2f\n", cputmp);
         fr_delta_ms = (esp_timer_get_time() - fr_start) / 1000;
         const TickType_t xDelay = (auto_intervall - fr_delta_ms)  / portTICK_PERIOD_MS;

+ 2 - 2
code/src/version.cpp

@@ -1,4 +1,4 @@
-const char* GIT_REV="5a98b3d";
+const char* GIT_REV="cefe125";
 const char* GIT_TAG="";
 const char* GIT_BRANCH="rolling";
-const char* BUILD_TIME="2020-09-27 08:09";
+const char* BUILD_TIME="2020-09-28 19:32";

+ 1 - 1
code/src/version.h

@@ -8,7 +8,7 @@ extern "C"
     extern const char* BUILD_TIME;
 }
 
-const char* GIT_BASE_BRANCH = "master - v2.1.0 - 2020-09-25";
+const char* GIT_BASE_BRANCH = "master - v2.1.1 - 2020-09-28";
 
 
 const char* git_base_branch(void)

+ 2 - 2
code/version.cpp

@@ -1,4 +1,4 @@
-const char* GIT_REV="5a98b3d";
+const char* GIT_REV="cefe125";
 const char* GIT_TAG="";
 const char* GIT_BRANCH="rolling";
-const char* BUILD_TIME="2020-09-27 08:09";
+const char* BUILD_TIME="2020-09-28 19:32";

BIN
firmware/bootloader.bin


BIN
firmware/firmware.bin