From d71e8320c75414db726654b7292cc571896471ca Mon Sep 17 00:00:00 2001 From: jomjol <30766535+jomjol@users.noreply.github.com> Date: Sat, 20 Mar 2021 09:47:50 +0100 Subject: [PATCH] Update to v6.4.0 --- Changelog.md | 126 ++++++++++++++++++++++++++++- README.md | 129 +++--------------------------- code/main/version.cpp | 4 +- code/sdkconfig | 16 +--- code/test/README | 11 --- code/version.cpp | 4 +- firmware/html.zip | Bin 171402 -> 171498 bytes sd-card/config/ana0700s1lq.tflite | Bin 0 -> 59952 bytes sd-card/config/config.ini | 2 +- sd-card/html/edit_analog.html | 10 ++- sd-card/html/edit_digits.html | 4 +- sd-card/html/gethost.js | 2 +- sd-card/html/version.txt | 2 +- 13 files changed, 158 insertions(+), 152 deletions(-) delete mode 100644 code/test/README create mode 100644 sd-card/config/ana0700s1lq.tflite diff --git a/Changelog.md b/Changelog.md index 7d2b3c9d..bf580b89 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,6 +1,130 @@ # Versions +##### 5.0.0 Setup Modus - (2020-12-06) + +* Implementation of initial setup modus for fresh installation + +* Code restructuring (full compatibility between pure ESP-IDF and Platformio w/ espressif) + + + +##### 4.1.1 Configuration editor - (2020-12-02) + +* Bug fixing: internal improvement of file handling (reduce not responding) + + +##### 4.1.0 Configuration editor - (2020-11-30) + +* Implementation of configuration editor (including basic and expert mode) + +* Adjustable time zone to adjust to local time setting (incl. daylight saving time) + +* MQTT: additional topic for error reporting + +* standardized access to current logfile via `http://IP-ADRESS/logfileact` + +* Update digital CNN to v7.2.0, analog CNN to 6.3.0 + +* Bug fixing: truncation error, CheckDigitConsistency & PreValue implementation + + + +##### 4.0.0 Tflite Core - (2020-11-15) + +* Implementation of rolling log-files + +* Update Tflite-Core to master@20201108 (v2.4) + +* Bug-fixing for reducing reboots + + + +##### 3.1.0 MQTT-Client - (2020-10-26) + +* Update digital CNN to v6.5.0 and HTML (Info to hostname, IP, ssid) + +* New implementation of "checkDigitConsistency" also for digits +* MQTT-Adapter: user and password for sign in MQTT-Broker + +##### 3.0.0 MQTT-Client (2020-10-14) + +* Implementation of MQTT Client +* Improved Version Control +* bug-fixing + + + +##### 2.2.1 Version Control (2020-09-27) + +* Bug-Fixing (hostname in wlan.ini and error handling inside flow) + + +##### 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) + + +##### 2.1.0 Decimal Shift, Chrome & Edge (2020-09-25) + +* Implementation of Decimal Shift + +* Update default CNN for digits to v6.4.0 + +* Improvement HTML + +* Support for Chrome and Edge + +* Reduce logging to minimum - extended logging on demand + +* Implementation of hostname in wlan.ini (`hostname = "HOSTNAME")` + +* Bug fixing, code corrections + + +##### 2.0.0 Layout update (2020-09-12) + + * Update to **new and modern layout** + * Support for Chrome improved + * Improved robustness: improved error handling in auto flow reduces spontaneous reboots + * File server: Option for "DELETE ALL" + * WLan: support of spaces in SSID and password + * Reference Image: Option for mirror image, option for image update on the fly + * additional parameter in `wasserzaehler.html?noerror=true` to suppress an potential error message + * bug fixing + + + +##### 1.1.3 (2020-09-09) + +* **Bug in configuration of analog ROIs corrected** - correction in v.1.0.2 did not work properly +* Improved update page for the web server (`/html` can be updated via a zip-file, which is provided in `/firmware/html.zip`) +* Improved Chrome support + +##### 1.1.0 (2020-09-06) + +* Implementation of "delete complete directory" + **Attention: beside the `firmware.bin`, also the content of `/html` needs to be updated!** + + + +##### 1.0.2 (2020-09-06) + +* Bug in configuration of analog ROIs corrected +* minor bug correction + +##### 1.0.1 (2020-09-05) + +* preValue.ini Bug corrected +* minor bug correction + +##### 1.0.0 (2020-09-04) + +* **First usable version** - compatible to previous project (https://github.com/jomjol/water-meter-system-complete) +* NEW: + * no docker container for CNN calculation necessary + * web based configuration editor on board + ##### 0.1.0 (2020-08-07) * Initial Version - diff --git a/README.md b/README.md index bd14c114..5d9e4e73 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,10 @@ If you would like to support the developer with a cup of coffee you can do that +##### 6.4.0 Image Processing in Memory - (2021-03-20) + +* Additional alignment marks for settings the ROIs (analog and digit) + ##### 6.3.1 Image Processing in Memory - (2021-03-16) * NEW: 6.3.1: bug fixing in initial edit reference image and `config.ini` (Spelling error in `InitialRotate`) @@ -91,136 +95,27 @@ If you would like to support the developer with a cup of coffee you can do that * Bug fixing: edit digits, handling PreValue, html-bugs - + + + +## History ##### 5.0.0 Setup Modus - (2020-12-06) -* Implementation of initial setup modus for fresh installation - -* Code restructuring (full compatibility between pure ESP-IDF and Platformio w/ espressif) - - - ##### 4.1.1 Configuration editor - (2020-12-02) -* Bug fixing: internal improvement of file handling (reduce not responding) - - -##### 4.1.0 Configuration editor - (2020-11-30) - -* Implementation of configuration editor (including basic and expert mode) - -* Adjustable time zone to adjust to local time setting (incl. daylight saving time) - -* MQTT: additional topic for error reporting - -* standardized access to current logfile via `http://IP-ADRESS/logfileact` - -* Update digital CNN to v7.2.0, analog CNN to 6.3.0 - -* Bug fixing: truncation error, CheckDigitConsistency & PreValue implementation - - - ##### 4.0.0 Tflite Core - (2020-11-15) -* Implementation of rolling log-files - -* Update Tflite-Core to master@20201108 (v2.4) - -* Bug-fixing for reducing reboots - - - ##### 3.1.0 MQTT-Client - (2020-10-26) -* Update digital CNN to v6.5.0 and HTML (Info to hostname, IP, ssid) - -* New implementation of "checkDigitConsistency" also for digits -* MQTT-Adapter: user and password for sign in MQTT-Broker - -##### 3.0.0 MQTT-Client (2020-10-14) - -* Implementation of MQTT Client -* Improved Version Control -* bug-fixing +##### 2.2.1 Version Control - (2020-09-27) - -##### 2.2.1 Version Control (2020-09-27) - -* Bug-Fixing (hostname in wlan.ini and error handling inside flow) - +##### 2.1.0 Decimal Shift, Chrome & Edge - (2020-09-25) -##### 2.2.0 Version Control (2020-09-27) +##### 2.0.0 Layout update - (2020-09-12) -* Integrated automated versioning system (menu: SYSTEM --> INFO) -* Update Build-System to PlatformIO - Espressif 32 v2.0.0 (ESP-IDF 4.1) - - -##### 2.1.0 Decimal Shift, Chrome & Edge (2020-09-25) - -* Implementation of Decimal Shift - -* Update default CNN for digits to v6.4.0 - -* Improvement HTML - -* Support for Chrome and Edge - -* Reduce logging to minimum - extended logging on demand - -* Implementation of hostname in wlan.ini (`hostname = "HOSTNAME")` - -* Bug fixing, code corrections - - -##### 2.0.0 Layout update (2020-09-12) - - * Update to **new and modern layout** - * Support for Chrome improved - * Improved robustness: improved error handling in auto flow reduces spontaneous reboots - * File server: Option for "DELETE ALL" - * WLan: support of spaces in SSID and password - * Reference Image: Option for mirror image, option for image update on the fly - * additional parameter in `wasserzaehler.html?noerror=true` to suppress an potential error message - * bug fixing - - - -##### 1.1.3 (2020-09-09) - -* **Bug in configuration of analog ROIs corrected** - correction in v.1.0.2 did not work properly -* Improved update page for the web server (`/html` can be updated via a zip-file, which is provided in `/firmware/html.zip`) -* Improved Chrome support - -##### 1.1.0 (2020-09-06) - -* Implementation of "delete complete directory" - **Attention: beside the `firmware.bin`, also the content of `/html` needs to be updated!** - - - -##### 1.0.2 (2020-09-06) - -* Bug in configuration of analog ROIs corrected -* minor bug correction - -##### 1.0.1 (2020-09-05) - -* preValue.ini Bug corrected -* minor bug correction - -##### 1.0.0 (2020-09-04) - -* **First usable version** - compatible to previous project (https://github.com/jomjol/water-meter-system-complete) -* NEW: - * no docker container for CNN calculation necessary - * web based configuration editor on board - -##### 0.1.0 (2020-08-07) - -* Initial Version +##### 1.1.3 Initial Version - (2020-09-09) #### [Full Changelog](Changelog.md) diff --git a/code/main/version.cpp b/code/main/version.cpp index bc7288e4..fb45468b 100644 --- a/code/main/version.cpp +++ b/code/main/version.cpp @@ -1,4 +1,4 @@ -const char* GIT_REV="60701bc"; +const char* GIT_REV="3b3d924"; const char* GIT_TAG=""; const char* GIT_BRANCH="master"; -const char* BUILD_TIME="2021-03-16 21:11"; \ No newline at end of file +const char* BUILD_TIME="2021-03-17 22:46"; \ No newline at end of file diff --git a/code/sdkconfig b/code/sdkconfig index 8e20c251..7028733c 100644 --- a/code/sdkconfig +++ b/code/sdkconfig @@ -165,8 +165,6 @@ CONFIG_APPTRACE_LOCK_ENABLE=y # # CONFIG_BT_ENABLED is not set CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=0 -CONFIG_BTDM_CTRL_PCM_ROLE_EFF=0 -CONFIG_BTDM_CTRL_PCM_POLAR_EFF=0 CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0 CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=0 CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0 @@ -241,7 +239,6 @@ CONFIG_ESP_TLS_USING_MBEDTLS=y # # ESP32-specific # -CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y CONFIG_ESP32_REV_MIN_0=y # CONFIG_ESP32_REV_MIN_1 is not set # CONFIG_ESP32_REV_MIN_2 is not set @@ -660,10 +657,8 @@ CONFIG_LWIP_SO_REUSE=y CONFIG_LWIP_SO_REUSE_RXTOALL=y # CONFIG_LWIP_SO_RCVBUF is not set # CONFIG_LWIP_NETBUF_RECVINFO is not set -CONFIG_LWIP_IP4_FRAG=y -CONFIG_LWIP_IP6_FRAG=y -# CONFIG_LWIP_IP4_REASSEMBLY is not set -# CONFIG_LWIP_IP6_REASSEMBLY is not set +CONFIG_LWIP_IP_FRAG=y +# CONFIG_LWIP_IP_REASSEMBLY is not set # CONFIG_LWIP_STATS is not set # CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set CONFIG_LWIP_ESP_GRATUITOUS_ARP=y @@ -687,10 +682,8 @@ CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 # # TCP # -CONFIG_LWIP_TCP_ISN_HOOK=y CONFIG_LWIP_MAX_ACTIVE_TCP=16 CONFIG_LWIP_MAX_LISTENING_TCP=16 -CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y CONFIG_LWIP_TCP_MAXRTX=12 CONFIG_LWIP_TCP_SYNMAXRTX=6 CONFIG_LWIP_TCP_MSS=1440 @@ -705,7 +698,6 @@ CONFIG_LWIP_TCP_QUEUE_OOSEQ=y CONFIG_LWIP_TCP_OVERSIZE_MSS=y # CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set -CONFIG_LWIP_TCP_RTO_TIME=1500 # end of TCP # @@ -721,8 +713,6 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF # CONFIG_LWIP_PPP_SUPPORT is not set -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 # # ICMP @@ -1006,8 +996,6 @@ CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 # CONFIG_WPA_MBEDTLS_CRYPTO=y # CONFIG_WPA_TLS_V12 is not set -# CONFIG_WPA_WPS_WARS is not set -# CONFIG_WPA_DEBUG_PRINT is not set # end of Supplicant # diff --git a/code/test/README b/code/test/README deleted file mode 100644 index b94d0890..00000000 --- a/code/test/README +++ /dev/null @@ -1,11 +0,0 @@ - -This directory is intended for PlatformIO Unit Testing and project tests. - -Unit Testing is a software testing method by which individual units of -source code, sets of one or more MCU program modules together with associated -control data, usage procedures, and operating procedures, are tested to -determine whether they are fit for use. Unit testing finds problems early -in the development cycle. - -More information about PlatformIO Unit Testing: -- https://docs.platformio.org/page/plus/unit-testing.html diff --git a/code/version.cpp b/code/version.cpp index d473078c..fb45468b 100644 --- a/code/version.cpp +++ b/code/version.cpp @@ -1,4 +1,4 @@ -const char* GIT_REV="5f0f180"; +const char* GIT_REV="3b3d924"; const char* GIT_TAG=""; const char* GIT_BRANCH="master"; -const char* BUILD_TIME="2021-03-14 12:56"; \ No newline at end of file +const char* BUILD_TIME="2021-03-17 22:46"; \ No newline at end of file diff --git a/firmware/html.zip b/firmware/html.zip index d569e952e7a2d4244ddd29ba36cdcb9d0a94695f..571419e48556793ab9db33318257072a3722d21a 100644 GIT binary patch delta 7916 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 delta 7817 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 N#EOEI4*ECtzW^>Xf*b$< diff --git a/sd-card/config/ana0700s1lq.tflite b/sd-card/config/ana0700s1lq.tflite new file mode 100644 index 0000000000000000000000000000000000000000..531c1a2d585e0f82bc397c7dee53894a7ea825c4 GIT binary patch literal 59952 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 literal 0 HcmV?d00001 diff --git a/sd-card/config/config.ini b/sd-card/config/config.ini index 9864faa5..9c2b9850 100644 --- a/sd-card/config/config.ini +++ b/sd-card/config/config.ini @@ -26,7 +26,7 @@ digit2 355 120 37 67 digit3 404 120 37 67 [Analog] -Model = /config/ana0630s2.tflite +Model = /config/ana0700s1lq.tflite ;LogImageLocation = /log/analog ;LogfileRetentionInDays = 3 ModelInputSize = 32 32 diff --git a/sd-card/html/edit_analog.html b/sd-card/html/edit_analog.html index 080d89d6..d627bdc4 100644 --- a/sd-card/html/edit_analog.html +++ b/sd-card/html/edit_analog.html @@ -363,7 +363,15 @@ function ParseIni(_basepath) { var y0 = parseInt(rect.startY) - parseInt(lw/2); var dx = parseInt(rect.w) + parseInt(lw); var dy = parseInt(rect.h) + parseInt(lw); - context.strokeRect(x0, y0, dx, dy); + context.strokeRect(x0, y0, dx, dy); + context.lineWidth = 1; + context.beginPath(); + context.arc(x0+dx/2, y0+dy/2, dx/2, 0, 2 * Math.PI); + context.moveTo(x0+dx/2, y0); + context.lineTo(x0+dx/2, y0+dy); + context.moveTo(x0, y0+dy/2); + context.lineTo(x0+dx, y0+dy/2); + context.stroke(); ROIInfo[aktindex]["x"] = rect.startX; ROIInfo[aktindex]["y"] = rect.startY; ROIInfo[aktindex]["dx"] = rect.w; diff --git a/sd-card/html/edit_digits.html b/sd-card/html/edit_digits.html index 1ea6c861..647850ed 100644 --- a/sd-card/html/edit_digits.html +++ b/sd-card/html/edit_digits.html @@ -354,7 +354,9 @@ function draw() { var y0 = parseInt(rect.startY) - parseInt(lw/2); var dx = parseInt(rect.w) + parseInt(lw); var dy = parseInt(rect.h) + parseInt(lw); - context.strokeRect(x0, y0, dx, dy); + context.strokeRect(x0, y0, dx, dy); + context.lineWidth = 1; + context.strokeRect(x0+dx*0.2, y0+dy*0.2, dx*0.6, dy*0.6); ROIInfo[aktindex]["x"] = rect.startX; ROIInfo[aktindex]["y"] = rect.startY; ROIInfo[aktindex]["dx"] = rect.w; diff --git a/sd-card/html/gethost.js b/sd-card/html/gethost.js index a3e80ee6..40a7c87a 100644 --- a/sd-card/html/gethost.js +++ b/sd-card/html/gethost.js @@ -9,7 +9,7 @@ function getbasepath(){ { // host = "http://192.168.2.118"; // jomjol interner test // host = "http://192.168.178.26"; // jomjol interner test - host = "http://192.168.178.26"; // jomjol interner Real + host = "http://192.168.178.22"; // jomjol interner Real // host = "."; // jomjol interner localhost } diff --git a/sd-card/html/version.txt b/sd-card/html/version.txt index dc0208ab..19b860c1 100644 --- a/sd-card/html/version.txt +++ b/sd-card/html/version.txt @@ -1 +1 @@ -6.3.1 +6.4.0