Ver código fonte

Rolling 20211002

jomjol 4 anos atrás
pai
commit
af16785bbf

+ 4 - 0
README.md

@@ -47,6 +47,10 @@ In other cases you can contact the developer via email: <img src="https://raw.gi
 
 
 
+##### Rolling (2021-10-02)
+
+* Bug fix: neural network output
+
 ##### 8.4.0 - Multi Meter Support (2021-09-25)
 
 * License change (remove MIT license, remark see below)

+ 4 - 1
code/components/jomjol_flowcontroll/ClassFlowCNNGeneral.cpp

@@ -61,6 +61,7 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
             prev = ZeigerEval(GENERAL[_analog]->ROI[i]->result_float, prev);
             result = std::to_string(prev) + result;
         }
+        return result;
     }
 
     if (CNNType == Digital)
@@ -72,6 +73,7 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
             else
                 result = result + std::to_string(GENERAL[_analog]->ROI[i]->result_klasse);
         }
+        return result;
     }
 
     if (CNNType == DigitalHyprid)
@@ -116,6 +118,7 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
                 result = "N" + result;
             }
         }
+        return result;
     }
 
     return result;
@@ -540,7 +543,7 @@ bool ClassFlowCNNGeneral::doNeuralNetwork(string time)
                         if (debugdetailgeneral) LogFile.WriteToFile("Nach Invoke");
 
                         _num = tflite->GetOutClassification(0, 10);
-                        _nachkomma = tflite->GetOutClassification(11, 22);
+                        _nachkomma = tflite->GetOutClassification(11, 21);
 
 
                         string _zwres = "Nach Invoke - Nummer: " + to_string(_num) + " Nachkomma: " + to_string(_nachkomma);

+ 8 - 7
code/components/jomjol_flowcontroll/ClassFlowPostProcessing.cpp

@@ -89,7 +89,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
                 if (NUMBERS[j]->name == name)
                 {
                     NUMBERS[j]->PreValue = stof(zwvalue.c_str());
-                    NUMBERS[j]->ReturnPreValue = RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma);
+                    NUMBERS[j]->ReturnPreValue = RundeOutput(NUMBERS[j]->PreValue, NUMBERS[j]->Nachkomma + 1);      // SIcherheitshalber 1 Stelle mehr, da ggf. Exgtended Resolution an ist (wird erst beim ersten Durchlauf gesetzt)
 
                     time_t tStart;
                     int yy, month, dd, hh, mm, ss;
@@ -123,7 +123,7 @@ bool ClassFlowPostProcessing::LoadPreValue(void)
 
                         if (NUMBERS[j]->digit_roi || NUMBERS[j]->analog_roi)
                         {
-                            NUMBERS[j]->ReturnValue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma);
+                            NUMBERS[j]->ReturnValue = RundeOutput(NUMBERS[j]->Value, NUMBERS[j]->Nachkomma + 1);  // SIcherheitshalber 1 Stelle mehr, da ggf. Exgtended Resolution an ist (wird erst beim ersten Durchlauf gesetzt)
                             NUMBERS[j]->ReturnValueNoError = NUMBERS[j]->ReturnValue;
                         }
                     }
@@ -595,13 +595,14 @@ bool ClassFlowPostProcessing::doFlow(string zwtime)
 
         if (NUMBERS[j]->digit_roi)
         {
-            if (NUMBERS[j]->analog_roi)
+            if (NUMBERS[j]->analog_roi) 
                 NUMBERS[j]->ReturnRawValue = flowDigit->getReadout(j, false);
             else
                 NUMBERS[j]->ReturnRawValue = flowDigit->getReadout(j, NUMBERS[j]->isExtendedResolution);        // Extended Resolution nur falls es keine analogen Ziffern gibt
         }
         if (NUMBERS[j]->digit_roi && NUMBERS[j]->analog_roi)
             NUMBERS[j]->ReturnRawValue = NUMBERS[j]->ReturnRawValue + ".";
+
         if (NUMBERS[j]->analog_roi)
             NUMBERS[j]->ReturnRawValue = NUMBERS[j]->ReturnRawValue + flowAnalog->getReadout(j, NUMBERS[j]->isExtendedResolution); 
 
@@ -822,14 +823,14 @@ float ClassFlowPostProcessing::checkDigitConsistency(float input, int _decilamsh
     while (pot <= pot_max)
     {
         zw = input / pow(10, pot-1);
-        aktdigit_before = ((int) zw) % 10;
+        aktdigit_before = ((int) zw + 10) % 10;
         zw = _preValue / pow(10, pot-1);
-        olddigit_before = ((int) zw) % 10;
+        olddigit_before = ((int) zw + 10) % 10;
 
         zw = input / pow(10, pot);
-        aktdigit = ((int) zw) % 10;
+        aktdigit = ((int) zw + 10) % 10;
         zw = _preValue / pow(10, pot);
-        olddigit = ((int) zw) % 10;
+        olddigit = ((int) zw + 10) % 10;
 
         no_nulldurchgang = (olddigit_before <= aktdigit_before);
 

+ 3 - 3
code/components/jomjol_tfliteclass/CTfLiteClass.cpp

@@ -44,12 +44,12 @@ int CTfLiteClass::GetOutClassification(int _von, int _bis)
   //printf("\n number output neurons: %d\n\n", numeroutput);
 
   if (_bis == -1)
-    _bis = numeroutput;
+    _bis = numeroutput -1;
 
   if (_von == -1)
     _von = 0;
 
-  if (_bis > numeroutput)
+  if (_bis >= numeroutput)
   {
     printf("ANZAHL OUTPUT NEURONS passt nicht zu geforderter Classifizierung!");
     return -1;
@@ -57,7 +57,7 @@ int CTfLiteClass::GetOutClassification(int _von, int _bis)
 
   zw_max = output2->data.f[_von];
   zw_class = _von;
-  for (int i = _von+1; i <= _bis; ++i)
+  for (int i = _von + 1; i <= _bis; ++i)
   {
     zw = output2->data.f[i];
     if (zw > zw_max)

+ 4 - 4
code/main/version.cpp

@@ -1,4 +1,4 @@
-const char* GIT_REV="147d974";
-const char* GIT_TAG="";
-const char* GIT_BRANCH="master";
-const char* BUILD_TIME="2021-09-25 18:55";
+const char* GIT_REV="18f6e83";
+const char* GIT_TAG="v8.4.0";
+const char* GIT_BRANCH="rolling";
+const char* BUILD_TIME="2021-10-02 14:29";

+ 4 - 4
code/version.cpp

@@ -1,4 +1,4 @@
-const char* GIT_REV="147d974";
-const char* GIT_TAG="";
-const char* GIT_BRANCH="master";
-const char* BUILD_TIME="2021-09-25 18:55";
+const char* GIT_REV="18f6e83";
+const char* GIT_TAG="v8.4.0";
+const char* GIT_BRANCH="rolling";
+const char* BUILD_TIME="2021-10-02 14:29";

BIN
firmware/bootloader.bin


BIN
firmware/firmware.bin


BIN
firmware/html.zip


+ 1 - 1
sd-card/html/edit_explain_6.html

@@ -62,7 +62,7 @@ p {font-size: 1em;}
             } 
             ParseConfig();	
             param = getConfigParameters();
-            param["System"]["SetupMode"]["enabled"] = false;
+            param["System"]["SetupMode"]["enabled"] = true;
             param["System"]["SetupMode"]["value1"] = "false";
 
             WriteConfigININew();

+ 0 - 4
sd-card/html/readconfigparam.js

@@ -31,7 +31,6 @@ function ParseConfig() {
      ParamAddValue(param, catname, "ImageQuality");
      ParamAddValue(param, catname, "ImageSize");     
      ParamAddValue(param, catname, "FixedExposure");     
-     ParamAddValue(param, catname, "UseGPIOControlledIllumination");
 
      var catname = "Alignment";
      category[catname] = new Object(); 
@@ -54,7 +53,6 @@ function ParseConfig() {
      ParamAddValue(param, catname, "LogImageLocation");
      ParamAddValue(param, catname, "LogfileRetentionInDays");
      ParamAddValue(param, catname, "ModelInputSize", 2);     
-//     ParamAddValue(param, catname, "ExtendedResolution");
 
      var catname = "Analog";
      category[catname] = new Object(); 
@@ -65,7 +63,6 @@ function ParseConfig() {
      ParamAddValue(param, catname, "LogImageLocation");
      ParamAddValue(param, catname, "LogfileRetentionInDays");
      ParamAddValue(param, catname, "ModelInputSize", 2);
-//     ParamAddValue(param, catname, "ExtendedResolution");
 
      var catname = "PostProcessing";
      category[catname] = new Object(); 
@@ -81,7 +78,6 @@ function ParseConfig() {
      ParamAddValue(param, catname, "IgnoreLeadingNaN", 1, true);
      ParamAddValue(param, catname, "ErrorMessage");
      ParamAddValue(param, catname, "CheckDigitIncreaseConsistency");     
-//     ParamAddValue(param, catname, "IgnoreLeadingNaN");     
 
      var catname = "MQTT";
      category[catname] = new Object(); 

+ 1 - 1
sd-card/html/version.txt

@@ -1 +1 @@
-10.1.0
+10.2.0