jomjol 4 лет назад
Родитель
Сommit
76a0518d52

+ 27 - 4
code/components/jomjol_flowcontroll/ClassFlowPostProcessing.cpp

@@ -257,11 +257,22 @@ void ClassFlowPostProcessing::handleDecimalSeparator(string _decsep, string _val
 
     for (int j = 0; j < NUMBERS.size(); ++j)
     {
+        int _zwdc = 0;
+
+        try
+        {
+            _zwdc = stoi(_value);
+        }
+        catch(const std::exception& e)
+        {
+            printf("ERROR - Decimalshift is not a number: %s\n", _value.c_str());
+        }
+        
         if (_digit == "default")                        // erstmal auf default setzen (falls sonst nichts gesetzt)
-            NUMBERS[j]->DecimalShift = stoi(_value);
+            NUMBERS[j]->DecimalShift = _zwdc;
 
         if (NUMBERS[j]->name == _digit)
-            NUMBERS[j]->DecimalShift = stoi(_value);
+            NUMBERS[j]->DecimalShift = _zwdc;
 
         NUMBERS[j]->Nachkomma = NUMBERS[j]->AnzahlAnalog - NUMBERS[j]->DecimalShift;
     }
@@ -279,16 +290,28 @@ void ClassFlowPostProcessing::handleMaxRateValue(string _decsep, string _value)
 
     for (int j = 0; j < NUMBERS.size(); ++j)
     {
+        float _zwdc = 1;
+
+        try
+        {
+            _zwdc = stoi(_value);
+        }
+        catch(const std::exception& e)
+        {
+            printf("ERROR - MaxRateValue is not a number: %s\n", _value.c_str());
+        }
+
+
         if (_digit == "default")                        // erstmal auf default setzen (falls sonst nichts gesetzt)
         {
             NUMBERS[j]->useMaxRateValue = true;
-            NUMBERS[j]->MaxRateValue = stof(_value);
+            NUMBERS[j]->MaxRateValue = _zwdc;
         }
 
         if (NUMBERS[j]->name == _digit)
         {
             NUMBERS[j]->useMaxRateValue = true;
-            NUMBERS[j]->MaxRateValue = stof(_value);
+            NUMBERS[j]->MaxRateValue = _zwdc;
         }
     }
 }

+ 2 - 2
code/main/version.cpp

@@ -1,4 +1,4 @@
-const char* GIT_REV="a7ced40";
+const char* GIT_REV="a688a69";
 const char* GIT_TAG="";
 const char* GIT_BRANCH="rolling";
-const char* BUILD_TIME="2021-07-11 14:48";
+const char* BUILD_TIME="2021-07-11 23:41";

+ 4 - 2
code/sdkconfig

@@ -138,7 +138,8 @@ CONFIG_COMPILER_OPTIMIZATION_SIZE=y
 CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
 # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
 # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
-# CONFIG_COMPILER_CXX_EXCEPTIONS is not set
+CONFIG_COMPILER_CXX_EXCEPTIONS=y
+CONFIG_COMPILER_CXX_EXCEPTIONS_EMG_POOL_SIZE=0
 # CONFIG_COMPILER_CXX_RTTI is not set
 CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
 # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set
@@ -1049,7 +1050,8 @@ CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y
 CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
 # CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
 # CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
-# CONFIG_CXX_EXCEPTIONS is not set
+CONFIG_CXX_EXCEPTIONS=y
+CONFIG_CXX_EXCEPTIONS_EMG_POOL_SIZE=0
 CONFIG_STACK_CHECK_NONE=y
 # CONFIG_STACK_CHECK_NORM is not set
 # CONFIG_STACK_CHECK_STRONG is not set

+ 2 - 172
code/sdkconfig.old

@@ -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
@@ -206,12 +204,6 @@ CONFIG_SPI_MASTER_ISR_IN_IRAM=y
 CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
 # end of SPI configuration
 
-#
-# CAN configuration
-#
-# CONFIG_CAN_ISR_IN_IRAM is not set
-# end of CAN configuration
-
 #
 # UART configuration
 #
@@ -247,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
@@ -665,10 +656,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
@@ -692,10 +681,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
@@ -710,7 +697,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
 
 #
@@ -726,8 +712,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
@@ -921,7 +905,6 @@ CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
 CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
 CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
 CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
-# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set
 
 #
 # Auto-detect flash chips
@@ -929,8 +912,6 @@ CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
 CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
 CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
 # end of Auto-detect flash chips
-
-CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y
 # end of SPI Flash driver
 
 #
@@ -1014,8 +995,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
 
 #
@@ -1040,152 +1019,3 @@ CONFIG_CAMERA_CORE0=y
 #
 # CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set
 # end of Compatibility options
-
-# Deprecated options for backward compatibility
-CONFIG_TOOLPREFIX="xtensa-esp32-elf-"
-# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
-CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
-# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
-CONFIG_LOG_BOOTLOADER_LEVEL=3
-# CONFIG_APP_ROLLBACK_ENABLE is not set
-# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
-# CONFIG_FLASHMODE_QIO is not set
-# CONFIG_FLASHMODE_QOUT is not set
-CONFIG_FLASHMODE_DIO=y
-# CONFIG_FLASHMODE_DOUT is not set
-# CONFIG_MONITOR_BAUD_9600B is not set
-# CONFIG_MONITOR_BAUD_57600B is not set
-CONFIG_MONITOR_BAUD_115200B=y
-# CONFIG_MONITOR_BAUD_230400B is not set
-# CONFIG_MONITOR_BAUD_921600B is not set
-# CONFIG_MONITOR_BAUD_2MB is not set
-# CONFIG_MONITOR_BAUD_OTHER is not set
-CONFIG_MONITOR_BAUD_OTHER_VAL=115200
-CONFIG_MONITOR_BAUD=115200
-# CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set
-CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y
-CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
-# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
-# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
-# CONFIG_CXX_EXCEPTIONS is not set
-CONFIG_STACK_CHECK_NONE=y
-# CONFIG_STACK_CHECK_NORM is not set
-# CONFIG_STACK_CHECK_STRONG is not set
-# CONFIG_STACK_CHECK_ALL is not set
-# CONFIG_WARN_WRITE_STRINGS is not set
-# CONFIG_DISABLE_GCC8_WARNINGS is not set
-# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set
-CONFIG_ESP32_APPTRACE_DEST_NONE=y
-CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
-CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=0
-CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=0
-CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0
-CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0
-CONFIG_ADC2_DISABLE_DAC=y
-CONFIG_SPIRAM_SUPPORT=y
-# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
-CONFIG_TRACEMEM_RESERVE_DRAM=0x0
-# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
-CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
-CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
-# CONFIG_ULP_COPROC_ENABLED is not set
-CONFIG_ULP_COPROC_RESERVE_MEM=0
-CONFIG_BROWNOUT_DET=y
-CONFIG_BROWNOUT_DET_LVL_SEL_0=y
-# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set
-CONFIG_BROWNOUT_DET_LVL=0
-CONFIG_REDUCE_PHY_TX_POWER=y
-CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
-# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set
-# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set
-# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set
-# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set
-# CONFIG_NO_BLOBS is not set
-# CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
-CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
-CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
-CONFIG_MAIN_TASK_STACK_SIZE=3584
-CONFIG_IPC_TASK_STACK_SIZE=1024
-CONFIG_TIMER_TASK_STACK_SIZE=3584
-CONFIG_CONSOLE_UART_DEFAULT=y
-# CONFIG_CONSOLE_UART_CUSTOM is not set
-# CONFIG_CONSOLE_UART_NONE is not set
-CONFIG_CONSOLE_UART_NUM=0
-CONFIG_CONSOLE_UART_BAUDRATE=115200
-CONFIG_INT_WDT=y
-CONFIG_INT_WDT_TIMEOUT_MS=300
-CONFIG_INT_WDT_CHECK_CPU1=y
-CONFIG_TASK_WDT=y
-# CONFIG_TASK_WDT_PANIC is not set
-CONFIG_TASK_WDT_TIMEOUT_S=3
-CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
-CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
-# CONFIG_EVENT_LOOP_PROFILING is not set
-CONFIG_POST_EVENTS_FROM_ISR=y
-CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
-CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150
-CONFIG_MB_MASTER_DELAY_MS_CONVERT=200
-CONFIG_MB_QUEUE_LENGTH=20
-CONFIG_MB_SERIAL_TASK_STACK_SIZE=2048
-CONFIG_MB_SERIAL_BUF_SIZE=256
-CONFIG_MB_SERIAL_TASK_PRIO=10
-# CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT is not set
-CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20
-CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
-CONFIG_MB_CONTROLLER_STACK_SIZE=4096
-CONFIG_MB_EVENT_QUEUE_TIMEOUT=20
-CONFIG_MB_TIMER_PORT_ENABLED=y
-CONFIG_MB_TIMER_GROUP=0
-CONFIG_MB_TIMER_INDEX=0
-CONFIG_SUPPORT_STATIC_ALLOCATION=y
-# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
-CONFIG_TIMER_TASK_PRIORITY=1
-CONFIG_TIMER_TASK_STACK_DEPTH=2048
-CONFIG_TIMER_QUEUE_LENGTH=10
-# CONFIG_L2_TO_L3_COPY is not set
-# CONFIG_USE_ONLY_LWIP_SELECT is not set
-CONFIG_ESP_GRATUITOUS_ARP=y
-CONFIG_GARP_TMR_INTERVAL=60
-CONFIG_TCPIP_RECVMBOX_SIZE=32
-CONFIG_TCP_MAXRTX=12
-CONFIG_TCP_SYNMAXRTX=6
-CONFIG_TCP_MSS=1440
-CONFIG_TCP_MSL=60000
-CONFIG_TCP_SND_BUF_DEFAULT=5744
-CONFIG_TCP_WND_DEFAULT=5744
-CONFIG_TCP_RECVMBOX_SIZE=6
-CONFIG_TCP_QUEUE_OOSEQ=y
-# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
-CONFIG_TCP_OVERSIZE_MSS=y
-# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set
-# CONFIG_TCP_OVERSIZE_DISABLE is not set
-CONFIG_UDP_RECVMBOX_SIZE=6
-CONFIG_TCPIP_TASK_STACK_SIZE=3072
-CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
-# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
-# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
-CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
-# CONFIG_PPP_SUPPORT is not set
-CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
-CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
-CONFIG_ESP32_PTHREAD_STACK_MIN=768
-CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y
-# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set
-# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set
-CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
-CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
-CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
-# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set
-# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
-# CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT is not set
-CONFIG_SUPPORT_TERMIOS=y
-# End of deprecated options

+ 2 - 2
code/version.cpp

@@ -1,4 +1,4 @@
-const char* GIT_REV="a7ced40";
+const char* GIT_REV="a688a69";
 const char* GIT_TAG="";
 const char* GIT_BRANCH="rolling";
-const char* BUILD_TIME="2021-07-11 14:48";
+const char* BUILD_TIME="2021-07-11 23:41";

BIN
firmware/bootloader.bin


BIN
firmware/firmware.bin


BIN
firmware/html.zip


+ 11 - 11
sd-card/config/config.ini

@@ -16,7 +16,7 @@ SearchFieldX = 20
 SearchFieldY = 20
 AlignmentAlgo = Default
 ;FlipImageSize = false
-/config/ref0.jpg 104 271
+/config/ref0.jpg 103 271
 /config/ref1.jpg 442 142
 
 [Digits]
@@ -24,9 +24,9 @@ Model = /config/dig1040s1q.tflite
 ;LogImageLocation = /log/digit
 ;LogfileRetentionInDays = 3
 ModelInputSize = 20 32
-main.digit1 292 120 37 67
-main.digit2 340 120 37 67
-main.digit3 389 120 37 67
+main.digit1 294 126 30 54
+main.digit2 343 126 30 54
+main.digit3 391 126 30 54
 
 [Analog]
 Model = /config/ana0700s1lq.tflite
@@ -34,10 +34,10 @@ Model = /config/ana0700s1lq.tflite
 ;LogfileRetentionInDays = 3
 ModelInputSize = 32 32
 ExtendedResolution = true
-main.analog1 430 230 92 92
-main.analog2 376 331 92 92
-main.analog3 279 372 92 92
-main.analog4 150 327 92 92
+main.analog1 432 230 92 92
+main.analog2 379 332 92 92
+main.analog3 283 374 92 92
+main.analog4 155 328 92 92
 
 [PostProcessing]
 main.DecimalShift = 0
@@ -57,7 +57,7 @@ CheckDigitIncreaseConsistency = true
 
 ;[GPIO]
 ;MainTopicMQTT = wasserzaehler/GPIO
-;IO0 = input disabled 10 false false  
+;IO0 = input disabled 10 false false 
 ;IO1 = input disabled 10 false false 
 ;IO3 = input disabled 10 false false 
 ;IO4 = built-in-led disabled 10 false false 
@@ -73,8 +73,8 @@ Logfile = false
 LogfileRetentionInDays = 3
 
 [System]
-TimeZone = CET-1CEST
+TimeZone = CET-1CEST,M3.5.0,M10.5.0/3
 ;TimeServer = undefined
 ;AutoAdjustSummertime = false
 ;Hostname = undefined
-SetupMode = true
+SetupMode = true

+ 4 - 0
sd-card/html/edit_reference.html

@@ -208,7 +208,11 @@ table {
                 param["Alignment"]["InitialRotate"].value1 = document.getElementById("prerotateangle").value;
 
                 if ((param["Alignment"]["InitialMirror"].found == true) && (document.getElementById("mirror").checked))
+                {
                     param["Alignment"]["InitialMirror"].value1 = "true";
+                    param["Alignment"]["InitialMirror"]["found"] = true;
+                    param["Alignment"]["InitialMirror"]["enabled"] = true;
+                }
                 else
                     param["Alignment"]["InitialMirror"].value1 = "false";
 

+ 2 - 2
sd-card/html/gethost.js

@@ -9,8 +9,8 @@ function getbasepath(){
     {
 //        host = "http://192.168.2.219";          // jomjol interner test
 //        host = "http://192.168.178.46";          // jomjol interner test
-//        host = "http://192.168.178.22";          // jomjol interner Real
-        host = "http://192.168.43.191";
+        host = "http://192.168.178.46";          // jomjol interner Real
+//        host = "http://192.168.43.191";
 //        host = ".";                           // jomjol interner localhost   
 
     }

+ 1 - 1
sd-card/html/readconfigcommon.js

@@ -44,7 +44,7 @@ function createReader(file) {
 
 
 
-function ZerlegeZeile(input, delimiter = " =,\t\r")
+function ZerlegeZeile(input, delimiter = " =\t\r")
      {
           var Output = Array(0);
 //          delimiter = " =,\t";

+ 27 - 20
sd-card/html/readconfigparam.js

@@ -70,11 +70,11 @@ function ParseConfig() {
      category[catname]["enabled"] = false;
      category[catname]["found"] = false;
      param[catname] = new Object();
-     ParamAddValue(param, catname, "DecimalShift", 1);
+     ParamAddValue(param, catname, "DecimalShift", 1, true);
      ParamAddValue(param, catname, "PreValueUse");
      ParamAddValue(param, catname, "PreValueAgeStartup");
      ParamAddValue(param, catname, "AllowNegativeRates");
-     ParamAddValue(param, catname, "MaxRateValue", 1);
+     ParamAddValue(param, catname, "MaxRateValue", 1, true);
      ParamAddValue(param, catname, "ErrorMessage");
      ParamAddValue(param, catname, "CheckDigitIncreaseConsistency");     
 
@@ -84,7 +84,7 @@ function ParseConfig() {
      category[catname]["found"] = false;
      param[catname] = new Object();
      ParamAddValue(param, catname, "Uri");
-     ParamAddValue(param, catname, "MainTopic", 1, [/^([a-zA-Z0-9_-]+\/){0,10}[a-zA-Z0-9_-]+$/]);
+     ParamAddValue(param, catname, "MainTopic", 1, false, [/^([a-zA-Z0-9_-]+\/){0,10}[a-zA-Z0-9_-]+$/]);
      ParamAddValue(param, catname, "ClientID");
      ParamAddValue(param, catname, "user");
      ParamAddValue(param, catname, "password");
@@ -94,13 +94,13 @@ function ParseConfig() {
      category[catname]["enabled"] = false;
      category[catname]["found"] = false;
      param[catname] = new Object();
-     ParamAddValue(param, catname, "MainTopicMQTT", 1, [/^([a-zA-Z0-9_-]+\/){0,10}[a-zA-Z0-9_-]+$/]);
-     ParamAddValue(param, catname, "IO0", 6, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
-     ParamAddValue(param, catname, "IO1", 6, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
-     ParamAddValue(param, catname, "IO3", 6, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
-     ParamAddValue(param, catname, "IO4", 6, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
-     ParamAddValue(param, catname, "IO12", 6, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
-     ParamAddValue(param, catname, "IO13", 6, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
+     ParamAddValue(param, catname, "MainTopicMQTT", 1, false, [/^([a-zA-Z0-9_-]+\/){0,10}[a-zA-Z0-9_-]+$/]);
+     ParamAddValue(param, catname, "IO0", 6, false, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
+     ParamAddValue(param, catname, "IO1", 6, false, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
+     ParamAddValue(param, catname, "IO3", 6, false, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
+     ParamAddValue(param, catname, "IO4", 6, false, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
+     ParamAddValue(param, catname, "IO12", 6, false, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
+     ParamAddValue(param, catname, "IO13", 6, false, [null, null, /^[0-9]*$/, null, null, /^[a-zA-Z0-9_-]*$/]);
 
      var catname = "AutoTimer";
      category[catname] = new Object(); 
@@ -149,12 +149,13 @@ function ParseConfig() {
      }
 }
 
-function ParamAddValue(param, _cat, _param, _anzParam = 1, _checkRegExList = null){
+function ParamAddValue(param, _cat, _param, _anzParam = 1, _isNUMBER = false, _checkRegExList = null){
      param[_cat][_param] = new Object(); 
      param[_cat][_param]["found"] = false;
      param[_cat][_param]["enabled"] = false;
      param[_cat][_param]["line"] = -1; 
      param[_cat][_param]["anzParam"] = _anzParam;
+     param[_cat][_param]["Numbers"] = _isNUMBER;
      param[_cat][_param].checkRegExList = _checkRegExList;
 };
 
@@ -201,7 +202,15 @@ function ParamExtractValue(_param, _linesplit, _catname, _paramname, _aktline, _
 
 function ParamExtractValueAll(_param, _linesplit, _catname, _aktline, _iscom){
      for (var paramname in _param[_catname]) {
-          if (_linesplit[0].toUpperCase() == paramname.toUpperCase())
+          _AktROI = "default";
+          _AktPara = _linesplit[0];
+          _pospunkt = _AktPara.indexOf (".");
+          if (_pospunkt > -1)
+          {
+               _AktROI = _AktPara.substring(0, _pospunkt);
+               _AktPara = _AktPara.substring(_pospunkt+1);
+          }
+          if (_AktPara.toUpperCase() == paramname.toUpperCase())
           {
                while (_linesplit.length <= _param[_catname][paramname]["anzParam"]) {
                     _linesplit.push("");
@@ -222,13 +231,9 @@ function ParamExtractValueAll(_param, _linesplit, _catname, _aktline, _iscom){
                          }
                     if (abc["name"] == "default")
                     {
-                         _param[_catname][paramname]["found"] = true;
-                         _param[_catname][paramname]["enabled"] = !_iscom;
-                         _param[_catname][paramname]["line"] = _aktline;
-                         for (var j = 1; j <= _param[_catname][paramname]["anzParam"]; ++j) {
-                              _param[_catname][paramname]["value"+j] = _linesplit[j];
-                              }
-                         for (_num in NUMBERS)         // wert mit Default belegen
+                    for (_num in NUMBERS)         // wert mit Default belegen
+                         {
+                              if (NUMBERS[_num][_catname][paramname]["found"] == false)
                               {
                                    NUMBERS[_num][_catname][paramname]["found"] = true;
                                    NUMBERS[_num][_catname][paramname]["enabled"] = !_iscom;
@@ -236,7 +241,9 @@ function ParamExtractValueAll(_param, _linesplit, _catname, _aktline, _iscom){
                                    for (var j = 1; j <= _param[_catname][paramname]["anzParam"]; ++j) {
                                         NUMBERS[_num][_catname][paramname]["value"+j] = _linesplit[j];
                                         }
-                                   }
+
+                              }
+                         }
                     }
                }
                else