Explorar el Código

Merge branch 'jomjol:master' into master

Frank Haverland hace 3 años
padre
commit
82cb966863

BIN
.DS_Store


+ 1 - 0
.gitignore

@@ -17,3 +17,4 @@ compile_commands.json
 CTestTestfile.cmake
 _deps
 code/edgeAI.code-workspace
+.DS_Store

+ 11 - 1
FeatureRequest.md

@@ -11,6 +11,15 @@
 
 ____
 
+#### #29 Add favicon and use the hostname for the website
+
+* https://github.com/jomjol/AI-on-the-edge-device/issues/927
+
+#### #28 Improved error handling for ROIs
+
+* In case a ROI is out of the image, there is no error message, but a non sense image is used
+* Implement a error message for wrong configuratioin of ROI
+
 #### #27 Use Homie Spec for Mqtt binding
 
 * Use the standardized Home Protocol for the Mqtt binding 
@@ -55,7 +64,8 @@ ____
 #### #20 Deep sleep and push mode
 
 * Let the device be normally in deep sleep state, and wake it up periodically to collect data and push it via MQTT or HTTP post.
-
+* Support ESP-NOW to reduce the overhead of connecting to wifi and mqtt 
+* the above should enable battery powered applications
   
 
 #### #19 Extended log informations

+ 4 - 0
README.md

@@ -40,6 +40,10 @@ In other cases you can contact the developer via email: <img src="https://raw.gi
 
 ------
 
+##### 11.1.0 - Intermediate Digits
+
+- Updated postprocessing algorithm (fix from @haverland)
+
 ##### 11.0.1 - Intermediate Digits
 
 - **NEW v11.0.1**: Bug Fix InfluxDB configuration (only update of html.zip necessary)

+ 12 - 3
code/components/jomjol_flowcontroll/ClassFlowCNNGeneral.cpp

@@ -106,8 +106,10 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
             if (GENERAL[_analog]->ROI[i]->result_float >= 0)
             {
                 prev = ZeigerEvalHybrid(GENERAL[_analog]->ROI[i]->result_float, GENERAL[_analog]->ROI[i+1]->result_float, prev);
+                if (debugdetailgeneral) LogFile.WriteToFile("ClassFlowCNNGeneral::getReadout#ZeigerEvalHybrid()= " + std::to_string(prev));
                 result = std::to_string(prev) + result;
-
+                if (debugdetailgeneral) LogFile.WriteToFile("ClassFlowCNNGeneral::getReadout#result= " + result);
+                
             }
             else
             {
@@ -171,6 +173,8 @@ string ClassFlowCNNGeneral::getReadout(int _analog = 0, bool _extendedResolution
 
 int ClassFlowCNNGeneral::ZeigerEvalHybrid(float zahl, float zahl_vorgaenger, int eval_vorgaenger)
 {
+    if (debugdetailgeneral) LogFile.WriteToFile("ClassFlowCNNGeneral::ZeigerEvalHybrid( " + std::to_string(zahl) + ", " + std::to_string(zahl_vorgaenger) + ", " + std::to_string(eval_vorgaenger) + ")");
+                
     int ergebnis_nachkomma = ((int) floor(zahl * 10)) % 10;
     int ergebnis_vorkomma = ((int) floor(zahl) + 10) % 10;
 
@@ -183,10 +187,15 @@ int ClassFlowCNNGeneral::ZeigerEvalHybrid(float zahl, float zahl_vorgaenger, int
             return ((int) trunc(zahl) + 10) % 10;
     }
 
-    if ((zahl_vorgaenger >= 0.5 ) && (zahl_vorgaenger < 9.5))
+    // 9.0, da bei getReadout() prev als int übergeben wird (9 statt 9.5)
+    // tritt bei der ersten ziffer von digit auf, wenn analog davor (2. Aufruf von getReadout)
+    if ((zahl_vorgaenger >= 0.5 ) && (zahl_vorgaenger < 9.0))
     {
         // kein Ziffernwechsel, da Vorkomma weit genug weg ist (0+/-0.5) --> zahl wird gerundet
-        return ((int) round(zahl) + 10) % 10;
+        if ((ergebnis_nachkomma <= 2) || (ergebnis_nachkomma >= 8))     // Band um die Ziffer --> Runden, da Ziffer im Rahmen Ungenauigkeit erreicht
+            return ((int) round(zahl) + 10) % 10;
+        else
+            return ((int) trunc(zahl) + 10) % 10;
     }  
     else
     {

+ 2 - 2
code/main/version.cpp

@@ -1,4 +1,4 @@
-const char* GIT_REV="bfe8d3b";
+const char* GIT_REV="ea69b1b";
 const char* GIT_TAG="";
 const char* GIT_BRANCH="master";
-const char* BUILD_TIME="2022-08-13 14:22";
+const char* BUILD_TIME="2022-08-21 17:46";

+ 1 - 1
code/main/version.h

@@ -13,7 +13,7 @@ extern "C"
 #include "Helper.h"
 #include <fstream>
 
-const char* GIT_BASE_BRANCH = "master - v11.0.0 - 2022-08-13";
+const char* GIT_BASE_BRANCH = "master - v11.1.0 - 2022-08-21";
 
 
 const char* git_base_branch(void)

+ 1 - 0
code/platformio.ini

@@ -15,6 +15,7 @@ src_dir = main
 
 [env:esp32cam]
 platform = espressif32@4.4.0
+;platform = espressif32@5.1.0
 ;platform = espressif32
 board = esp32cam
 framework = espidf

+ 13 - 3
code/test/components/jomjol-flowcontroll/test_cnnflowcontroll.cpp

@@ -65,8 +65,8 @@ void test_ZeigerEvalHybrid() {
     // the 5.8 and no previous should round up to 6
     TEST_ASSERT_EQUAL(6, undertest.ZeigerEvalHybrid(5.8, 0, -1));
 
-    // the 5.7 with previous and the previous between 0.3-0.7 should round up to 6
-    TEST_ASSERT_EQUAL(6, undertest.ZeigerEvalHybrid(5.7, 0.7, 1));
+    // the 5.7 with previous and the previous between 0.3-0.5 should round up to 6
+    TEST_ASSERT_EQUAL(6, undertest.ZeigerEvalHybrid(5.7, 0.4, 1));
 
     // the 5.3 with previous and the previous between 0.3-0.7 should round down to 5
     TEST_ASSERT_EQUAL(5, undertest.ZeigerEvalHybrid(5.3, 0.7, 1));
@@ -85,7 +85,7 @@ void test_ZeigerEvalHybrid() {
 
     // the 4.5 (digital100) is not above 5  and the previous digit (analog) not over Zero (9.6)
     TEST_ASSERT_EQUAL(4, undertest.ZeigerEvalHybrid(4.5, 9.6, 9));    
-    // the 4.4 (digital100) is not above 5  and the previous digit (analog) not over Zero (9.5)
+    // the 4.5 (digital100) is not above 5  and the previous digit (analog) not over Zero (9.5)
     TEST_ASSERT_EQUAL(4, undertest.ZeigerEvalHybrid(4.5, 9.5, 9));    
 
     // 59.96889 - Pre: 58.94888
@@ -93,6 +93,16 @@ void test_ZeigerEvalHybrid() {
     // the 4.4 (digital100) is not above 5  and the previous digit (analog) not over Zero (9.5)
     TEST_ASSERT_EQUAL(8, undertest.ZeigerEvalHybrid(8.6, 9.8, 9));    
 
+    // pre = 9.9 (0.0 raw)
+    // zahl = 1.8
+    TEST_ASSERT_EQUAL(1, undertest.ZeigerEvalHybrid(1.8, 9.0, 9));    
+ 
+    // if a digit have an early transition and the pointer is < 9.0 
+    // prev (pointer) = 6.2, but on digital readout = 6.0 (prev is int parameter)
+    // zahl = 4.6
+    TEST_ASSERT_EQUAL(4, undertest.ZeigerEvalHybrid(4.6, 6.0, 6));    
+ 
+    
     // issue #879 vorgaenger is -1, zahl = 6.7
     //TEST_ASSERT_EQUAL(7, undertest.ZeigerEvalHybrid(6.7, -1.0, -1));    
 

+ 2 - 2
code/version.cpp

@@ -1,4 +1,4 @@
-const char* GIT_REV="bfe8d3b";
+const char* GIT_REV="ea69b1b";
 const char* GIT_TAG="";
 const char* GIT_BRANCH="master";
-const char* BUILD_TIME="2022-08-13 14:22";
+const char* BUILD_TIME="2022-08-21 17:46";

BIN
firmware/.DS_Store


BIN
firmware/bootloader.bin


BIN
firmware/firmware.bin


BIN
sd-card/.DS_Store