mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-09-12 09:36:59 +00:00
Merge branch 'mega' into feature/P123-add-ft6206-touch-screen
This commit is contained in:
Vendored
+29
@@ -1,3 +1,32 @@
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20240414 (since mega-20240401)
|
||||
-------------------------------------------------
|
||||
|
||||
Release date: Sun Apr 14 03:08:46 PM CEST 2024
|
||||
|
||||
TD-er (16):
|
||||
[HWCDC] Revert to older ESP-IDF/Arduino build
|
||||
[Time] Fix updating %sunrise% and %sunset% when no NTP available
|
||||
[HWCDC] Fix bootloop on ESP32-C3/C6
|
||||
[HWCDC] Cleanup unused test code
|
||||
[ESP-IDF5.1] Move to newly network refactored code
|
||||
[ESP-IDF5.x] Fix build issue
|
||||
[ESP-IDF5.x] Fix building ESP32-solo1 builds
|
||||
[Ethernet[ Fix crashes when using Ethernet + IPv6 on LittleFS builds
|
||||
[Ethernet] Fix getting DNS from DHCP switch from WiFi to Ethernet
|
||||
[ESP-IDF5.x] Fix LittleFS builds without Ethernet
|
||||
[IMPROV] Fix provisioning WiFi via web flasher
|
||||
[ESP-IDF5.1] Update to latest 2024.04.11 platform build
|
||||
[SPI ETH] Fix SPI selection to actual SPI bus for Ethernet
|
||||
[SPI Eth] Fix build on ESP32-C3
|
||||
[HWCDC] Tweak HWCDC to be more stable
|
||||
[Build] Revert unintended change of default PIO env.
|
||||
|
||||
Ton Huisman (2):
|
||||
[Dist] Update Espressif Flash Download tool 3.9.6
|
||||
[JSON] Add extra data in `/json` output
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
Changes in release mega-20240401 (since mega-20240331)
|
||||
-------------------------------------------------
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,161 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = ./bin/
|
||||
|
||||
[LOCK]
|
||||
lock_setting_password =
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
autostart2 = 0
|
||||
com_port2 =
|
||||
baudrate2 = 0
|
||||
checkmac2 = 1
|
||||
autostart3 = 0
|
||||
com_port3 =
|
||||
baudrate3 = 0
|
||||
checkmac3 = 1
|
||||
autostart4 = 0
|
||||
com_port4 =
|
||||
baudrate4 = 0
|
||||
checkmac4 = 1
|
||||
autostart5 = 0
|
||||
com_port5 =
|
||||
baudrate5 = 0
|
||||
checkmac5 = 1
|
||||
autostart6 = 0
|
||||
com_port6 =
|
||||
baudrate6 = 0
|
||||
checkmac6 = 1
|
||||
autostart7 = 0
|
||||
com_port7 =
|
||||
baudrate7 = 0
|
||||
checkmac7 = 1
|
||||
autostart8 = 0
|
||||
com_port8 =
|
||||
baudrate8 = 0
|
||||
checkmac8 = 1
|
||||
autostart9 = 0
|
||||
com_port9 =
|
||||
baudrate9 = 0
|
||||
checkmac9 = 1
|
||||
autostart10 = 0
|
||||
com_port10 =
|
||||
baudrate10 = 0
|
||||
checkmac10 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
[STATISTICS]
|
||||
pass1 = 0
|
||||
fail1 = 0
|
||||
pass2 = 0
|
||||
fail2 = 0
|
||||
pass3 = 0
|
||||
fail3 = 0
|
||||
pass4 = 0
|
||||
fail4 = 0
|
||||
pass5 = 0
|
||||
fail5 = 0
|
||||
pass6 = 0
|
||||
fail6 = 0
|
||||
pass7 = 0
|
||||
fail7 = 0
|
||||
pass8 = 0
|
||||
fail8 = 0
|
||||
pass9 = 0
|
||||
fail9 = 0
|
||||
pass10 = 0
|
||||
fail10 = 0
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
[SECURE BOOT]
|
||||
secure_boot_en = False
|
||||
secure_boot_version = 1
|
||||
public_key_digest_path = .\secure\public_key_digest.bin
|
||||
|
||||
[FLASH ENCRYPTION]
|
||||
flash_encryption_en = False
|
||||
reserved_burn_times = 0
|
||||
|
||||
[SECURE OTHER CONFIG]
|
||||
flash_encryption_use_customer_key_enable = False
|
||||
flash_encryption_use_customer_key_path = .\secure\flash_encrypt_key.bin
|
||||
flash_force_write_enable = False
|
||||
|
||||
[FLASH ENCRYPTION KEYS LOCAL SAVE]
|
||||
keys_save_enable = False
|
||||
encrypt_keys_enable = False
|
||||
encrypt_keys_aeskey_path =
|
||||
|
||||
[ESP32 EFUSE BIT CONFIG]
|
||||
jtag_disable = False
|
||||
dl_encrypt_disable = False
|
||||
dl_decrypt_disable = False
|
||||
dl_cache_disable = False
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = D:\DOWNLOAD_TOOL\ÏÂÔØ¹¤¾ß\release\3.9.6
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
[LOG_LEVEL]
|
||||
utility_log_level = ERROR
|
||||
spi_log_level = ERROR
|
||||
multi_log_level = ERROR
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[SECTOR_PROTECT]
|
||||
sector_protect_enable = False
|
||||
sector_protect_start = 0xe000
|
||||
sector_protect_end = 0x3000
|
||||
|
||||
[ESP32_EFUSE_CONFIG]
|
||||
config_voltage = OFF
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = ./bin/
|
||||
|
||||
[LOCK]
|
||||
lock_setting_password =
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
autostart2 = 0
|
||||
com_port2 =
|
||||
baudrate2 = 0
|
||||
checkmac2 = 1
|
||||
autostart3 = 0
|
||||
com_port3 =
|
||||
baudrate3 = 0
|
||||
checkmac3 = 1
|
||||
autostart4 = 0
|
||||
com_port4 =
|
||||
baudrate4 = 0
|
||||
checkmac4 = 1
|
||||
autostart5 = 0
|
||||
com_port5 =
|
||||
baudrate5 = 0
|
||||
checkmac5 = 1
|
||||
autostart6 = 0
|
||||
com_port6 =
|
||||
baudrate6 = 0
|
||||
checkmac6 = 1
|
||||
autostart7 = 0
|
||||
com_port7 =
|
||||
baudrate7 = 0
|
||||
checkmac7 = 1
|
||||
autostart8 = 0
|
||||
com_port8 =
|
||||
baudrate8 = 0
|
||||
checkmac8 = 1
|
||||
autostart9 = 0
|
||||
com_port9 =
|
||||
baudrate9 = 0
|
||||
checkmac9 = 1
|
||||
autostart10 = 0
|
||||
com_port10 =
|
||||
baudrate10 = 0
|
||||
checkmac10 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
[STATISTICS]
|
||||
pass1 = 0
|
||||
fail1 = 0
|
||||
pass2 = 0
|
||||
fail2 = 0
|
||||
pass3 = 0
|
||||
fail3 = 0
|
||||
pass4 = 0
|
||||
fail4 = 0
|
||||
pass5 = 0
|
||||
fail5 = 0
|
||||
pass6 = 0
|
||||
fail6 = 0
|
||||
pass7 = 0
|
||||
fail7 = 0
|
||||
pass8 = 0
|
||||
fail8 = 0
|
||||
pass9 = 0
|
||||
fail9 = 0
|
||||
pass10 = 0
|
||||
fail10 = 0
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
[SECURE BOOT]
|
||||
secure_boot_en = False
|
||||
public_key_digest_path = .\secure\public_key_digest.bin
|
||||
public_key_digest_block_index = 0
|
||||
|
||||
[FLASH ENCRYPTION]
|
||||
flash_encryption_en = False
|
||||
reserved_burn_times = 0
|
||||
flash_encrypt_key_block_index = 0
|
||||
|
||||
[SECURE OTHER CONFIG]
|
||||
flash_encryption_use_customer_key_enable = False
|
||||
flash_encryption_use_customer_key_path = .\secure\flash_encrypt_key.bin
|
||||
flash_force_write_enable = False
|
||||
|
||||
[FLASH ENCRYPTION KEYS LOCAL SAVE]
|
||||
keys_save_enable = False
|
||||
encrypt_keys_enable = False
|
||||
encrypt_keys_aeskey_path =
|
||||
|
||||
[ESP32C* EFUSE BIT CONFIG]
|
||||
dis_pad_jtag = False
|
||||
dis_direct_boot = False
|
||||
dis_download_icache = False
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = D:\DOWNLOAD_TOOL\ÏÂÔØ¹¤¾ß\release\3.9.6
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
[LOG_LEVEL]
|
||||
utility_log_level = ERROR
|
||||
spi_log_level = ERROR
|
||||
multi_log_level = ERROR
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[SECTOR_PROTECT]
|
||||
sector_protect_enable = False
|
||||
sector_protect_start = 0xe000
|
||||
sector_protect_end = 0x3000
|
||||
|
||||
[ESP32_EFUSE_CONFIG]
|
||||
config_voltage = OFF
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = ./bin/
|
||||
|
||||
[LOCK]
|
||||
lock_setting_password =
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
autostart2 = 0
|
||||
com_port2 =
|
||||
baudrate2 = 0
|
||||
checkmac2 = 1
|
||||
autostart3 = 0
|
||||
com_port3 =
|
||||
baudrate3 = 0
|
||||
checkmac3 = 1
|
||||
autostart4 = 0
|
||||
com_port4 =
|
||||
baudrate4 = 0
|
||||
checkmac4 = 1
|
||||
autostart5 = 0
|
||||
com_port5 =
|
||||
baudrate5 = 0
|
||||
checkmac5 = 1
|
||||
autostart6 = 0
|
||||
com_port6 =
|
||||
baudrate6 = 0
|
||||
checkmac6 = 1
|
||||
autostart7 = 0
|
||||
com_port7 =
|
||||
baudrate7 = 0
|
||||
checkmac7 = 1
|
||||
autostart8 = 0
|
||||
com_port8 =
|
||||
baudrate8 = 0
|
||||
checkmac8 = 1
|
||||
autostart9 = 0
|
||||
com_port9 =
|
||||
baudrate9 = 0
|
||||
checkmac9 = 1
|
||||
autostart10 = 0
|
||||
com_port10 =
|
||||
baudrate10 = 0
|
||||
checkmac10 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
[STATISTICS]
|
||||
pass1 = 0
|
||||
fail1 = 0
|
||||
pass2 = 0
|
||||
fail2 = 0
|
||||
pass3 = 0
|
||||
fail3 = 0
|
||||
pass4 = 0
|
||||
fail4 = 0
|
||||
pass5 = 0
|
||||
fail5 = 0
|
||||
pass6 = 0
|
||||
fail6 = 0
|
||||
pass7 = 0
|
||||
fail7 = 0
|
||||
pass8 = 0
|
||||
fail8 = 0
|
||||
pass9 = 0
|
||||
fail9 = 0
|
||||
pass10 = 0
|
||||
fail10 = 0
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
[SECURE BOOT]
|
||||
secure_boot_en = False
|
||||
public_key_digest_path = .\secure\public_key_digest.bin
|
||||
public_key_digest_block_index = 0
|
||||
|
||||
[FLASH ENCRYPTION]
|
||||
flash_encryption_en = False
|
||||
reserved_burn_times = 0
|
||||
flash_encrypt_key_block_index = 1
|
||||
|
||||
[SECURE OTHER CONFIG]
|
||||
flash_encryption_use_customer_key_enable = False
|
||||
flash_encryption_use_customer_key_path = .\secure\flash_encrypt_key.bin
|
||||
flash_force_write_enable = False
|
||||
|
||||
[FLASH ENCRYPTION KEYS LOCAL SAVE]
|
||||
keys_save_enable = False
|
||||
encrypt_keys_enable = False
|
||||
encrypt_keys_aeskey_path =
|
||||
|
||||
[ESP32C* EFUSE BIT CONFIG]
|
||||
dis_usb_jtag = False
|
||||
dis_pad_jtag = False
|
||||
soft_dis_jtag = 7
|
||||
dis_direct_boot = False
|
||||
dis_download_icache = False
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = D:\DOWNLOAD_TOOL\ÏÂÔØ¹¤¾ß\release\3.9.6
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
[LOG_LEVEL]
|
||||
utility_log_level = ERROR
|
||||
spi_log_level = ERROR
|
||||
multi_log_level = ERROR
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[SECTOR_PROTECT]
|
||||
sector_protect_enable = False
|
||||
sector_protect_start = 0xe000
|
||||
sector_protect_end = 0x3000
|
||||
|
||||
[ESP32_EFUSE_CONFIG]
|
||||
config_voltage = OFF
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = ./bin/
|
||||
|
||||
[LOCK]
|
||||
lock_setting_password =
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
autostart2 = 0
|
||||
com_port2 =
|
||||
baudrate2 = 0
|
||||
checkmac2 = 1
|
||||
autostart3 = 0
|
||||
com_port3 =
|
||||
baudrate3 = 0
|
||||
checkmac3 = 1
|
||||
autostart4 = 0
|
||||
com_port4 =
|
||||
baudrate4 = 0
|
||||
checkmac4 = 1
|
||||
autostart5 = 0
|
||||
com_port5 =
|
||||
baudrate5 = 0
|
||||
checkmac5 = 1
|
||||
autostart6 = 0
|
||||
com_port6 =
|
||||
baudrate6 = 0
|
||||
checkmac6 = 1
|
||||
autostart7 = 0
|
||||
com_port7 =
|
||||
baudrate7 = 0
|
||||
checkmac7 = 1
|
||||
autostart8 = 0
|
||||
com_port8 =
|
||||
baudrate8 = 0
|
||||
checkmac8 = 1
|
||||
autostart9 = 0
|
||||
com_port9 =
|
||||
baudrate9 = 0
|
||||
checkmac9 = 1
|
||||
autostart10 = 0
|
||||
com_port10 =
|
||||
baudrate10 = 0
|
||||
checkmac10 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
[STATISTICS]
|
||||
pass1 = 0
|
||||
fail1 = 0
|
||||
pass2 = 0
|
||||
fail2 = 0
|
||||
pass3 = 0
|
||||
fail3 = 0
|
||||
pass4 = 0
|
||||
fail4 = 0
|
||||
pass5 = 0
|
||||
fail5 = 0
|
||||
pass6 = 0
|
||||
fail6 = 0
|
||||
pass7 = 0
|
||||
fail7 = 0
|
||||
pass8 = 0
|
||||
fail8 = 0
|
||||
pass9 = 0
|
||||
fail9 = 0
|
||||
pass10 = 0
|
||||
fail10 = 0
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
[SECURE BOOT]
|
||||
secure_boot_en = False
|
||||
public_key_digest_path = .\secure\public_key_digest.bin
|
||||
public_key_digest_block_index = 0
|
||||
|
||||
[FLASH ENCRYPTION]
|
||||
flash_encryption_en = False
|
||||
reserved_burn_times = 0
|
||||
flash_encrypt_key_block_index = 1
|
||||
|
||||
[SECURE OTHER CONFIG]
|
||||
flash_encryption_use_customer_key_enable = False
|
||||
flash_encryption_use_customer_key_path = .\secure\flash_encrypt_key.bin
|
||||
flash_force_write_enable = False
|
||||
|
||||
[FLASH ENCRYPTION KEYS LOCAL SAVE]
|
||||
keys_save_enable = False
|
||||
encrypt_keys_enable = False
|
||||
encrypt_keys_aeskey_path =
|
||||
|
||||
[ESP32C* EFUSE BIT CONFIG]
|
||||
dis_usb_jtag = False
|
||||
dis_pad_jtag = False
|
||||
soft_dis_jtag = 7
|
||||
dis_direct_boot = False
|
||||
dis_download_icache = False
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = D:\DOWNLOAD_TOOL\ÏÂÔØ¹¤¾ß\release\3.9.6
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
[LOG_LEVEL]
|
||||
utility_log_level = ERROR
|
||||
spi_log_level = ERROR
|
||||
multi_log_level = ERROR
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[SECTOR_PROTECT]
|
||||
sector_protect_enable = False
|
||||
sector_protect_start = 0xe000
|
||||
sector_protect_end = 0x3000
|
||||
|
||||
[ESP32_EFUSE_CONFIG]
|
||||
config_voltage = OFF
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = ./bin/
|
||||
|
||||
[LOCK]
|
||||
lock_setting_password =
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
autostart2 = 0
|
||||
com_port2 =
|
||||
baudrate2 = 0
|
||||
checkmac2 = 1
|
||||
autostart3 = 0
|
||||
com_port3 =
|
||||
baudrate3 = 0
|
||||
checkmac3 = 1
|
||||
autostart4 = 0
|
||||
com_port4 =
|
||||
baudrate4 = 0
|
||||
checkmac4 = 1
|
||||
autostart5 = 0
|
||||
com_port5 =
|
||||
baudrate5 = 0
|
||||
checkmac5 = 1
|
||||
autostart6 = 0
|
||||
com_port6 =
|
||||
baudrate6 = 0
|
||||
checkmac6 = 1
|
||||
autostart7 = 0
|
||||
com_port7 =
|
||||
baudrate7 = 0
|
||||
checkmac7 = 1
|
||||
autostart8 = 0
|
||||
com_port8 =
|
||||
baudrate8 = 0
|
||||
checkmac8 = 1
|
||||
autostart9 = 0
|
||||
com_port9 =
|
||||
baudrate9 = 0
|
||||
checkmac9 = 1
|
||||
autostart10 = 0
|
||||
com_port10 =
|
||||
baudrate10 = 0
|
||||
checkmac10 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
[STATISTICS]
|
||||
pass1 = 0
|
||||
fail1 = 0
|
||||
pass2 = 0
|
||||
fail2 = 0
|
||||
pass3 = 0
|
||||
fail3 = 0
|
||||
pass4 = 0
|
||||
fail4 = 0
|
||||
pass5 = 0
|
||||
fail5 = 0
|
||||
pass6 = 0
|
||||
fail6 = 0
|
||||
pass7 = 0
|
||||
fail7 = 0
|
||||
pass8 = 0
|
||||
fail8 = 0
|
||||
pass9 = 0
|
||||
fail9 = 0
|
||||
pass10 = 0
|
||||
fail10 = 0
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
[SECURE BOOT]
|
||||
secure_boot_en = False
|
||||
public_key_digest_path = .\secure\public_key_digest.bin
|
||||
public_key_digest_block_index = 0
|
||||
|
||||
[FLASH ENCRYPTION]
|
||||
flash_encryption_en = False
|
||||
reserved_burn_times = 0
|
||||
flash_encrypt_key_block_index = 1
|
||||
|
||||
[SECURE OTHER CONFIG]
|
||||
flash_encryption_use_customer_key_enable = False
|
||||
flash_encryption_use_customer_key_path = .\secure\flash_encrypt_key.bin
|
||||
flash_force_write_enable = False
|
||||
|
||||
[FLASH ENCRYPTION KEYS LOCAL SAVE]
|
||||
keys_save_enable = False
|
||||
encrypt_keys_enable = False
|
||||
encrypt_keys_aeskey_path =
|
||||
|
||||
[ESP32H2 EFUSE BIT CONFIG]
|
||||
dis_direct_boot = False
|
||||
soft_dis_jtag = False
|
||||
dis_pad_jtag = False
|
||||
dis_usb_jtag = False
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = D:\DOWNLOAD_TOOL\ÏÂÔØ¹¤¾ß\release\3.9.6
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
[LOG_LEVEL]
|
||||
utility_log_level = ERROR
|
||||
spi_log_level = ERROR
|
||||
multi_log_level = ERROR
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[SECTOR_PROTECT]
|
||||
sector_protect_enable = False
|
||||
sector_protect_start = 0xe000
|
||||
sector_protect_end = 0x3000
|
||||
|
||||
[ESP32_EFUSE_CONFIG]
|
||||
config_voltage = OFF
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = ./bin/
|
||||
|
||||
[LOCK]
|
||||
lock_setting_password =
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
autostart2 = 0
|
||||
com_port2 =
|
||||
baudrate2 = 0
|
||||
checkmac2 = 1
|
||||
autostart3 = 0
|
||||
com_port3 =
|
||||
baudrate3 = 0
|
||||
checkmac3 = 1
|
||||
autostart4 = 0
|
||||
com_port4 =
|
||||
baudrate4 = 0
|
||||
checkmac4 = 1
|
||||
autostart5 = 0
|
||||
com_port5 =
|
||||
baudrate5 = 0
|
||||
checkmac5 = 1
|
||||
autostart6 = 0
|
||||
com_port6 =
|
||||
baudrate6 = 0
|
||||
checkmac6 = 1
|
||||
autostart7 = 0
|
||||
com_port7 =
|
||||
baudrate7 = 0
|
||||
checkmac7 = 1
|
||||
autostart8 = 0
|
||||
com_port8 =
|
||||
baudrate8 = 0
|
||||
checkmac8 = 1
|
||||
autostart9 = 0
|
||||
com_port9 =
|
||||
baudrate9 = 0
|
||||
checkmac9 = 1
|
||||
autostart10 = 0
|
||||
com_port10 =
|
||||
baudrate10 = 0
|
||||
checkmac10 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
[STATISTICS]
|
||||
pass1 = 0
|
||||
fail1 = 0
|
||||
pass2 = 0
|
||||
fail2 = 0
|
||||
pass3 = 0
|
||||
fail3 = 0
|
||||
pass4 = 0
|
||||
fail4 = 0
|
||||
pass5 = 0
|
||||
fail5 = 0
|
||||
pass6 = 0
|
||||
fail6 = 0
|
||||
pass7 = 0
|
||||
fail7 = 0
|
||||
pass8 = 0
|
||||
fail8 = 0
|
||||
pass9 = 0
|
||||
fail9 = 0
|
||||
pass10 = 0
|
||||
fail10 = 0
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
[SECURE BOOT]
|
||||
secure_boot_en = False
|
||||
public_key_digest_path = .\secure\public_key_digest.bin
|
||||
public_key_digest_block_index = 0
|
||||
|
||||
[FLASH ENCRYPTION]
|
||||
flash_encryption_en = False
|
||||
reserved_burn_times = 0
|
||||
flash_encrypt_key_block_index = 1
|
||||
|
||||
[SECURE OTHER CONFIG]
|
||||
flash_encryption_use_customer_key_enable = False
|
||||
flash_encryption_use_customer_key_path = .\secure\flash_encrypt_key.bin
|
||||
flash_force_write_enable = False
|
||||
|
||||
[FLASH ENCRYPTION KEYS LOCAL SAVE]
|
||||
keys_save_enable = False
|
||||
encrypt_keys_enable = False
|
||||
encrypt_keys_aeskey_path =
|
||||
|
||||
[ESP32S2 EFUSE BIT CONFIG]
|
||||
hard_dis_jtag = False
|
||||
soft_dis_jtag = False
|
||||
dis_legacy_spi_boot = False
|
||||
dis_boot_remap = False
|
||||
dis_download_icache = False
|
||||
dis_download_dcache = False
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = D:\DOWNLOAD_TOOL\ÏÂÔØ¹¤¾ß\release\3.9.6
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
[LOG_LEVEL]
|
||||
utility_log_level = ERROR
|
||||
spi_log_level = ERROR
|
||||
multi_log_level = ERROR
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[SECTOR_PROTECT]
|
||||
sector_protect_enable = False
|
||||
sector_protect_start = 0xe000
|
||||
sector_protect_end = 0x3000
|
||||
|
||||
[ESP32_EFUSE_CONFIG]
|
||||
config_voltage = OFF
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = ./bin/
|
||||
|
||||
[LOCK]
|
||||
lock_setting_password =
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
autostart2 = 0
|
||||
com_port2 =
|
||||
baudrate2 = 0
|
||||
checkmac2 = 1
|
||||
autostart3 = 0
|
||||
com_port3 =
|
||||
baudrate3 = 0
|
||||
checkmac3 = 1
|
||||
autostart4 = 0
|
||||
com_port4 =
|
||||
baudrate4 = 0
|
||||
checkmac4 = 1
|
||||
autostart5 = 0
|
||||
com_port5 =
|
||||
baudrate5 = 0
|
||||
checkmac5 = 1
|
||||
autostart6 = 0
|
||||
com_port6 =
|
||||
baudrate6 = 0
|
||||
checkmac6 = 1
|
||||
autostart7 = 0
|
||||
com_port7 =
|
||||
baudrate7 = 0
|
||||
checkmac7 = 1
|
||||
autostart8 = 0
|
||||
com_port8 =
|
||||
baudrate8 = 0
|
||||
checkmac8 = 1
|
||||
autostart9 = 0
|
||||
com_port9 =
|
||||
baudrate9 = 0
|
||||
checkmac9 = 1
|
||||
autostart10 = 0
|
||||
com_port10 =
|
||||
baudrate10 = 0
|
||||
checkmac10 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
[STATISTICS]
|
||||
pass1 = 0
|
||||
fail1 = 0
|
||||
pass2 = 0
|
||||
fail2 = 0
|
||||
pass3 = 0
|
||||
fail3 = 0
|
||||
pass4 = 0
|
||||
fail4 = 0
|
||||
pass5 = 0
|
||||
fail5 = 0
|
||||
pass6 = 0
|
||||
fail6 = 0
|
||||
pass7 = 0
|
||||
fail7 = 0
|
||||
pass8 = 0
|
||||
fail8 = 0
|
||||
pass9 = 0
|
||||
fail9 = 0
|
||||
pass10 = 0
|
||||
fail10 = 0
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
[SECURE BOOT]
|
||||
secure_boot_en = False
|
||||
public_key_digest_path = .\secure\public_key_digest.bin
|
||||
public_key_digest_block_index = 0
|
||||
|
||||
[FLASH ENCRYPTION]
|
||||
flash_encryption_en = False
|
||||
reserved_burn_times = 0
|
||||
flash_encrypt_key_block_index = 1
|
||||
|
||||
[SECURE OTHER CONFIG]
|
||||
flash_encryption_use_customer_key_enable = False
|
||||
flash_encryption_use_customer_key_path = .\secure\flash_encrypt_key.bin
|
||||
flash_force_write_enable = False
|
||||
|
||||
[FLASH ENCRYPTION KEYS LOCAL SAVE]
|
||||
keys_save_enable = False
|
||||
encrypt_keys_enable = False
|
||||
encrypt_keys_aeskey_path =
|
||||
|
||||
[ESP32S3 EFUSE BIT CONFIG]
|
||||
dis_usb_jtag = False
|
||||
hard_dis_jtag = False
|
||||
soft_dis_jtag = 7
|
||||
dis_usb_otg_download_mode = False
|
||||
dis_direct_boot = False
|
||||
dis_download_icache = False
|
||||
dis_download_dcache = False
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = D:\DOWNLOAD_TOOL\ÏÂÔØ¹¤¾ß\release\3.9.6
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 2
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
[LOG_LEVEL]
|
||||
utility_log_level = ERROR
|
||||
spi_log_level = ERROR
|
||||
multi_log_level = ERROR
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[SECTOR_PROTECT]
|
||||
sector_protect_enable = False
|
||||
sector_protect_start = 0xe000
|
||||
sector_protect_end = 0x3000
|
||||
|
||||
[ESP32_EFUSE_CONFIG]
|
||||
config_voltage = OFF
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = D:\DOWNLOAD_TOOL\ÏÂÔØ¹¤¾ß\release\3.9.6
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 0
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = ./bin/
|
||||
|
||||
[LOCK]
|
||||
lock_setting_password =
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 0
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
autostart2 = 0
|
||||
com_port2 =
|
||||
baudrate2 = 0
|
||||
checkmac2 = 1
|
||||
autostart3 = 0
|
||||
com_port3 =
|
||||
baudrate3 = 0
|
||||
checkmac3 = 1
|
||||
autostart4 = 0
|
||||
com_port4 =
|
||||
baudrate4 = 0
|
||||
checkmac4 = 1
|
||||
autostart5 = 0
|
||||
com_port5 =
|
||||
baudrate5 = 0
|
||||
checkmac5 = 1
|
||||
autostart6 = 0
|
||||
com_port6 =
|
||||
baudrate6 = 0
|
||||
checkmac6 = 1
|
||||
autostart7 = 0
|
||||
com_port7 =
|
||||
baudrate7 = 0
|
||||
checkmac7 = 1
|
||||
autostart8 = 0
|
||||
com_port8 =
|
||||
baudrate8 = 0
|
||||
checkmac8 = 1
|
||||
autostart9 = 0
|
||||
com_port9 =
|
||||
baudrate9 = 0
|
||||
checkmac9 = 1
|
||||
autostart10 = 0
|
||||
com_port10 =
|
||||
baudrate10 = 0
|
||||
checkmac10 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
[STATISTICS]
|
||||
pass1 = 0
|
||||
fail1 = 0
|
||||
pass2 = 0
|
||||
fail2 = 0
|
||||
pass3 = 0
|
||||
fail3 = 0
|
||||
pass4 = 0
|
||||
fail4 = 0
|
||||
pass5 = 0
|
||||
fail5 = 0
|
||||
pass6 = 0
|
||||
fail6 = 0
|
||||
pass7 = 0
|
||||
fail7 = 0
|
||||
pass8 = 0
|
||||
fail8 = 0
|
||||
pass9 = 0
|
||||
fail9 = 0
|
||||
pass10 = 0
|
||||
fail10 = 0
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
[EFUSE CHECK]
|
||||
efuse_mode = 1
|
||||
efuse_err_halt = 1
|
||||
|
||||
[MULTI_UI_CONFIG]
|
||||
multi_col = 2
|
||||
|
||||
[DOWNLOAD PATH]
|
||||
file_sel0 = 0
|
||||
file_path0 =
|
||||
file_flag0 = False
|
||||
file_offset0 =
|
||||
file_sel1 = 0
|
||||
file_path1 =
|
||||
file_flag1 = False
|
||||
file_offset1 =
|
||||
file_sel2 = 0
|
||||
file_path2 =
|
||||
file_flag2 = False
|
||||
file_offset2 =
|
||||
file_sel3 = 0
|
||||
file_path3 =
|
||||
file_flag3 = False
|
||||
file_offset3 =
|
||||
file_sel4 = 0
|
||||
file_path4 =
|
||||
file_flag4 = False
|
||||
file_offset4 =
|
||||
file_sel5 = 0
|
||||
file_path5 =
|
||||
file_flag5 = False
|
||||
file_offset5 =
|
||||
file_sel6 = 0
|
||||
file_path6 =
|
||||
file_flag6 = False
|
||||
file_offset6 =
|
||||
file_sel7 = 0
|
||||
file_path7 =
|
||||
file_flag7 = False
|
||||
file_offset7 =
|
||||
file_sel8 = 0
|
||||
file_path8 =
|
||||
file_flag8 = False
|
||||
file_offset8 =
|
||||
file_sel9 = 0
|
||||
file_path9 =
|
||||
file_flag9 = False
|
||||
file_offset9 =
|
||||
file_sel10 = 0
|
||||
file_path10 =
|
||||
file_flag10 = False
|
||||
file_offset10 =
|
||||
file_sel11 = 0
|
||||
file_path11 =
|
||||
file_flag11 = False
|
||||
file_offset11 =
|
||||
file_sel12 = 0
|
||||
file_path12 =
|
||||
file_flag12 = False
|
||||
file_offset12 =
|
||||
file_sel13 = 0
|
||||
file_path13 =
|
||||
file_flag13 = False
|
||||
file_offset13 =
|
||||
default_path = D:\DOWNLOAD_TOOL\ÏÂÔØ¹¤¾ß\release\3.9.6
|
||||
|
||||
[FLASH_CRYSTAL]
|
||||
spicfgdis = 1
|
||||
spispeed = 0
|
||||
spimode = 0
|
||||
|
||||
[DOWNLOAD]
|
||||
erase_button_en = True
|
||||
autostart1 = 0
|
||||
com_port1 =
|
||||
baudrate1 = 0
|
||||
checkmac1 = 1
|
||||
|
||||
[LOG_CHECK]
|
||||
log_check_enable = False
|
||||
log_check_baud = 115200
|
||||
log_check_str = 1.0.0
|
||||
log_check_delaytime = 3
|
||||
log_check_timeout = 3
|
||||
log_check_cmd_str = AT+GMR
|
||||
log_check_enable_cmd = False
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[ESPTOOL_PARAM]
|
||||
after = no_reset
|
||||
before = default_reset
|
||||
compress = True
|
||||
flash_size = keep
|
||||
no_stub = False
|
||||
verify = True
|
||||
flash_freq = keep
|
||||
flash_mode = keep
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
[LOG_LEVEL]
|
||||
utility_log_level = ERROR
|
||||
spi_log_level = ERROR
|
||||
hspi_log_level = ERROR
|
||||
multi_log_level = ERROR
|
||||
|
||||
[MAC_SAVE]
|
||||
mac_save_enable = False
|
||||
|
||||
[SECTOR_PROTECT]
|
||||
sector_protect_enable = False
|
||||
sector_protect_start = 0xe000
|
||||
sector_protect_end = 0x3000
|
||||
|
||||
Binary file not shown.
+5
@@ -1,3 +1,8 @@
|
||||
3.9.6:
|
||||
* support ESP32/ESP32H2/ESP32C6/ESP32C2/ESP32S2 secure boot version2 and flash encryption
|
||||
* config DUT number in multiconfig file ,up to 20pcs
|
||||
* update secure config file, see docs in detail
|
||||
|
||||
3.9.5:
|
||||
* support esp32-h2
|
||||
* support erase button disable
|
||||
BIN
Binary file not shown.
@@ -208,6 +208,25 @@
|
||||
SendToHTTP,url.com,80,/report.php?hash=123abc456&t=[temp2#out]
|
||||
endon
|
||||
|
||||
"
|
||||
"
|
||||
``WiFi#Disconnected``
|
||||
Triggered when the ESP has disconnected from Wi-Fi.
|
||||
","
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
On WiFi#Disconnected Do
|
||||
LongPulse,2,1,1,1,-1 // 0.5 Hz flashing of WiFi led
|
||||
Endon
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
On WiFi#Connected Do
|
||||
GPIO,2,1 // Turn off WiFi led
|
||||
SendToHTTP,url.com,80,/report.php?hash=123abc456&t=[temp2#out]
|
||||
Endon
|
||||
|
||||
"
|
||||
"
|
||||
``WiFi#ChangedAccesspoint``
|
||||
|
||||
@@ -180,6 +180,9 @@ html_theme_options = {
|
||||
# Choose Bootstrap version.
|
||||
# Values: "3" (default) or "2" (in quotes)
|
||||
'bootstrap_version': "5",
|
||||
|
||||
# Disable showing the sidebar. Defaults to 'false'
|
||||
'nosidebar': True,
|
||||
}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
|
||||
@@ -58,40 +58,46 @@ Port_ESPEasySerial_USB_HWCDC_t::Port_ESPEasySerial_USB_HWCDC_t(const ESPEasySeri
|
||||
|
||||
// USB.begin();
|
||||
if (_hwcdc_serial != nullptr) {
|
||||
_config.rxBuffSize = _hwcdc_serial->setRxBufferSize(_config.rxBuffSize);
|
||||
_config.txBuffSize = _hwcdc_serial->setRxBufferSize(_config.txBuffSize);
|
||||
// _hwcdc_serial->end();
|
||||
|
||||
// _config.rxBuffSize = _hwcdc_serial->setRxBufferSize(_config.rxBuffSize);
|
||||
// _config.txBuffSize = _hwcdc_serial->setTxBufferSize(_config.txBuffSize);
|
||||
|
||||
// See: https://github.com/espressif/arduino-esp32/issues/9043
|
||||
_hwcdc_serial->setTxTimeoutMs(0); // sets no timeout when trying to write to USB HW CDC
|
||||
// _hwcdc_serial->setTxTimeoutMs(0); // sets no timeout when trying to write to USB HW CDC
|
||||
|
||||
_hwcdc_serial->begin();
|
||||
// _hwcdc_serial->begin();
|
||||
|
||||
// _hwcdc_serial->onEvent(hwcdcEventCallback);
|
||||
}
|
||||
}
|
||||
|
||||
Port_ESPEasySerial_USB_HWCDC_t::~Port_ESPEasySerial_USB_HWCDC_t() {}
|
||||
Port_ESPEasySerial_USB_HWCDC_t::~Port_ESPEasySerial_USB_HWCDC_t() {
|
||||
if (_hwcdc_serial != nullptr) {
|
||||
// _hwcdc_serial->end();
|
||||
}
|
||||
}
|
||||
|
||||
void Port_ESPEasySerial_USB_HWCDC_t::begin(unsigned long baud)
|
||||
{
|
||||
_config.baud = baud;
|
||||
/*
|
||||
if (_hwcdc_serial != nullptr) {
|
||||
_config.rxBuffSize = _hwcdc_serial->setRxBufferSize(_config.rxBuffSize);
|
||||
_config.txBuffSize = _hwcdc_serial->setRxBufferSize(_config.txBuffSize);
|
||||
_hwcdc_serial->begin();
|
||||
delay(10);
|
||||
_hwcdc_serial->onEvent(hwcdcEventCallback);
|
||||
delay(1);
|
||||
}
|
||||
*/
|
||||
|
||||
if (_hwcdc_serial != nullptr) {
|
||||
_config.rxBuffSize = _hwcdc_serial->setRxBufferSize(_config.rxBuffSize);
|
||||
_config.txBuffSize = _hwcdc_serial->setTxBufferSize(_config.txBuffSize);
|
||||
_hwcdc_serial->begin();
|
||||
delay(10);
|
||||
|
||||
// _hwcdc_serial->onEvent(hwcdcEventCallback);
|
||||
delay(1);
|
||||
}
|
||||
}
|
||||
|
||||
void Port_ESPEasySerial_USB_HWCDC_t::end() {
|
||||
// Disabled for now
|
||||
// See: https://github.com/espressif/arduino-esp32/issues/8224
|
||||
if (_hwcdc_serial != nullptr) {
|
||||
_hwcdc_serial->end();
|
||||
// _hwcdc_serial->end();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -204,5 +210,4 @@ bool Port_ESPEasySerial_USB_HWCDC_t::setRS485Mode(int8_t rtsPin, bool enableColl
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
#endif // if USES_HWCDC
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
class Port_ESPEasySerial_USB_HWCDC_t : public Port_ESPEasySerial_base {
|
||||
public:
|
||||
|
||||
Port_ESPEasySerial_USB_HWCDC_t(const ESPEasySerialConfig& config);
|
||||
explicit Port_ESPEasySerial_USB_HWCDC_t(const ESPEasySerialConfig& config);
|
||||
|
||||
virtual ~Port_ESPEasySerial_USB_HWCDC_t();
|
||||
|
||||
@@ -44,11 +44,7 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
# if ARDUINO_USB_CDC_ON_BOOT // Serial used for USB CDC
|
||||
HWCDC *_hwcdc_serial = &Serial;
|
||||
# else // if ARDUINO_USB_CDC_ON_BOOT
|
||||
HWCDC *_hwcdc_serial = &USBSerial;
|
||||
# endif // if ARDUINO_USB_CDC_ON_BOOT
|
||||
HWCDC *_hwcdc_serial= nullptr;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -32,6 +32,8 @@ enum Error : uint8_t {
|
||||
ERROR_UNKNOWN_RPC = 0x02,
|
||||
ERROR_UNABLE_TO_CONNECT = 0x03,
|
||||
ERROR_NOT_AUTHORIZED = 0x04,
|
||||
ERROR_INVALID_CHECKSUM = 0x05,
|
||||
ERROR_EMPTY_SSID = 0x06,
|
||||
ERROR_UNKNOWN = 0xFF,
|
||||
};
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ bool ImprovWiFi::onCommandCallback(ImprovTypes::ImprovCommand cmd)
|
||||
{
|
||||
if (cmd.ssid.empty())
|
||||
{
|
||||
setError(ImprovTypes::Error::ERROR_INVALID_RPC);
|
||||
setError(ImprovTypes::Error::ERROR_EMPTY_SSID);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -298,17 +298,19 @@ ImprovTypes::ParseState ImprovWiFi::parseImprovSerial(size_t position, uint8_t b
|
||||
|
||||
if (position == (8u + data_len + 1u))
|
||||
{
|
||||
/*
|
||||
if (computeChecksum(buffer, position - 1) != byte)
|
||||
{
|
||||
_position = 0;
|
||||
onErrorCallback(ImprovTypes::Error::ERROR_INVALID_RPC);
|
||||
onErrorCallback(ImprovTypes::Error::ERROR_INVALID_CHECKSUM);
|
||||
return ImprovTypes::ParseState::INVALID;
|
||||
}
|
||||
*/
|
||||
|
||||
if (type == ImprovTypes::ImprovSerialType::TYPE_RPC)
|
||||
{
|
||||
_position = 0;
|
||||
auto command = parseImprovData(&buffer[9], data_len, false);
|
||||
auto command = parseImprovData(&buffer[9], data_len + 1, false);
|
||||
return onCommandCallback(command) ? ImprovTypes::ParseState::VALID_COMPLETE : ImprovTypes::ParseState::INVALID;
|
||||
}
|
||||
}
|
||||
@@ -332,19 +334,23 @@ ImprovTypes::ImprovCommand ImprovWiFi::parseImprovData(const uint8_t *data, size
|
||||
}
|
||||
const ImprovTypes::Command command = (ImprovTypes::Command)data[0];
|
||||
const uint8_t data_length = data[1];
|
||||
const uint8_t data_start = 2;
|
||||
const size_t data_end = data_start + data_length;
|
||||
|
||||
// if (data_end >= length)
|
||||
if (data_length != (length - 2 - check_checksum))
|
||||
{
|
||||
return improv_command;
|
||||
// return improv_command;
|
||||
}
|
||||
|
||||
if (check_checksum)
|
||||
{
|
||||
const uint8_t checksum = data[length - 1];
|
||||
const uint8_t checksum = data[data_end];
|
||||
|
||||
if (computeChecksum(data, length - 1) != checksum)
|
||||
if (computeChecksum(data, data_end - 1) != checksum)
|
||||
{
|
||||
improv_command.command = ImprovTypes::Command::BAD_CHECKSUM;
|
||||
setError(ImprovTypes::Error::ERROR_INVALID_CHECKSUM);
|
||||
return improv_command;
|
||||
}
|
||||
}
|
||||
@@ -363,7 +369,7 @@ ImprovTypes::ImprovCommand ImprovWiFi::parseImprovData(const uint8_t *data, size
|
||||
const size_t pass_start = ssid_end + 1;
|
||||
const size_t pass_end = pass_start + pass_length;
|
||||
|
||||
if (pass_end >= length) {
|
||||
if (pass_end > length) {
|
||||
return improv_command;
|
||||
}
|
||||
|
||||
@@ -394,6 +400,7 @@ void ImprovWiFi::setError(ImprovTypes::Error error)
|
||||
const std::vector<uint8_t> response = { error };
|
||||
|
||||
send(ImprovTypes::TYPE_ERROR_STATE, response);
|
||||
onErrorCallback(error);
|
||||
}
|
||||
|
||||
void ImprovWiFi::sendResponse(const std::vector<uint8_t>& response)
|
||||
|
||||
@@ -29,6 +29,7 @@ extra_configs =
|
||||
|
||||
;default_envs = normal_ESP32_4M
|
||||
default_envs = max_ESP32_16M8M_LittleFS
|
||||
;default_envs = normal_ESP32c6_4M316k_LittleFS_CDC
|
||||
; default_envs = custom_ESP8266_4M1M
|
||||
|
||||
;default_envs = normal_ESP8266_4M1M
|
||||
|
||||
@@ -208,19 +208,24 @@ lib_ignore =
|
||||
|
||||
; ESP_IDF 5.1
|
||||
[core_esp32_IDF5_1__3_0_0]
|
||||
;platform = https://github.com/Jason2866/platform-espressif32.git
|
||||
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.02.10/platform-espressif32.zip
|
||||
;platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.02.10/platform-espressif32.zip
|
||||
;platform_packages =
|
||||
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2119/framework-arduinoespressif32-release_v5.1-a28d368.zip
|
||||
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2180/framework-arduinoespressif32-all-release_v5.1-735d740.zip
|
||||
platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2189/framework-arduinoespressif32-all-release_v5.1-be1a568.zip
|
||||
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2189/framework-arduinoespressif32-all-release_v5.1-be1a568.zip
|
||||
; Build with HWCDC fix.
|
||||
;platform = https://github.com/Jason2866/platform-espressif32.git
|
||||
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2261/framework-arduinoespressif32-all-release_v5.1-11140aa.zip
|
||||
platform = https://github.com/tasmota/platform-espressif32/releases/download/2024.04.11/platform-espressif32.zip
|
||||
;platform_packages =
|
||||
platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2286/framework-arduinoespressif32-all-release_v5.1-11140aa.zip
|
||||
build_flags = -DESP32_STAGE
|
||||
-DESP_IDF_VERSION_MAJOR=5
|
||||
-DLIBRARIES_NO_LOG=1
|
||||
-DDISABLE_SC16IS752_SPI
|
||||
-DCONFIG_PM_ENABLE
|
||||
; -DCONFIG_LWIP_L2_TO_L3_COPY
|
||||
-DETH_SPI_SUPPORTS_NO_IRQ=1
|
||||
; -DETH_SPI_SUPPORTS_NO_IRQ=1
|
||||
-DCONFIG_FREERTOS_USE_TICKLESS_IDLE=1
|
||||
-DCONFIG_FREERTOS_IDLE_TIME_BEFORE_SLEEP=3
|
||||
-DNEOPIXEL_ESP32_RMT_DEFAULT
|
||||
|
||||
@@ -18,7 +18,7 @@ build_unflags = ${esp32_base.build_unflags}
|
||||
; IDF 5.1.2
|
||||
[esp32_solo1_common_LittleFS]
|
||||
extends = esp32_base_idf5
|
||||
platform_packages = framework-arduino-solo1 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2038/framework-arduinoespressif32-solo1-release_v5.1-246cad0.zip
|
||||
;platform_packages = framework-arduino-solo1 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/2038/framework-arduinoespressif32-solo1-release_v5.1-246cad0.zip
|
||||
build_flags = ${esp32_base_idf5.build_flags}
|
||||
-DFEATURE_ARDUINO_OTA=1
|
||||
-DUSE_LITTLEFS
|
||||
|
||||
@@ -0,0 +1,561 @@
|
||||
#include "_Plugin_Helper.h"
|
||||
#ifdef USES_P167
|
||||
|
||||
// #######################################################################################################
|
||||
// ######################## Plugin 167 IKEA Vindstyrka I2C Sensor (SEN5x) ############################
|
||||
// #######################################################################################################
|
||||
// 19-06-2023 AndiBaciu creation based upon https://github.com/RobTillaart/SHT2x
|
||||
|
||||
# include "./src/PluginStructs/P167_data_struct.h"
|
||||
|
||||
#define PLUGIN_167
|
||||
#define PLUGIN_ID_167 167 // plugin id
|
||||
#define PLUGIN_NAME_167 "Environment - Sensirion SEN5x (IKEA Vindstyrka)" // What will be dislpayed in the selection list
|
||||
#define PLUGIN_VALUENAME1_167 "Temperature" // variable output of the plugin. The label is in quotation marks
|
||||
#define PLUGIN_VALUENAME2_167 "Humidity" // multiple outputs are supporte
|
||||
#define PLUGIN_VALUENAME3_167 "tVOC" // multiple outputs are supported
|
||||
#define PLUGIN_VALUENAME4_167 "NOx" // multiple outputs are supported
|
||||
#define PLUGIN_VALUENAME5_167 "PM 1.0" // multiple outputs are supported
|
||||
#define PLUGIN_VALUENAME6_167 "PM 2.5" // multiple outputs are supported
|
||||
#define PLUGIN_VALUENAME7_167 "PM 4.0" // multiple outputs are supported
|
||||
#define PLUGIN_VALUENAME8_167 "PM 10.0" // multiple outputs are supported
|
||||
#define PLUGIN_VALUENAME9_167 "DewPoint" // multiple outputs are supported
|
||||
#define PLUGIN_DEFAULT_NAME_1 "IKEA_Vindstyrka"
|
||||
#define PLUGIN_DEFAULT_NAME_2 "Sensirion_SEN5x"
|
||||
|
||||
// PIN/port configuration is stored in the following:
|
||||
// CONFIG_PIN1 - The first GPIO pin selected within the task
|
||||
// CONFIG_PIN2 - The second GPIO pin selected within the task
|
||||
// CONFIG_PIN3 - The third GPIO pin selected within the task
|
||||
// CONFIG_PORT - The port in case the device has multiple in/out pins
|
||||
//
|
||||
// Custom configuration is stored in the following:
|
||||
// PCONFIG(x)
|
||||
// x can be between 1 - 8 and can store values between -32767 - 32768 (16 bit)
|
||||
//
|
||||
// N.B. these are aliases for a longer less readable amount of code. See _Plugin_Helper.h
|
||||
//
|
||||
// PCONFIG_LABEL(x) is a function to generate a unique label used as HTML id to be able to match
|
||||
// returned values when saving a configuration.
|
||||
|
||||
// Make accessing specific parameters more readable in the code
|
||||
// #define Pxxx_OUTPUT_TYPE_INDEX 2
|
||||
# define P167_I2C_ADDRESS PCONFIG(0)
|
||||
# define P167_I2C_ADDRESS_LABEL PCONFIG_LABEL(0)
|
||||
# define P167_MODEL PCONFIG(1)
|
||||
# define P167_MODEL_LABEL PCONFIG_LABEL(1)
|
||||
# define P167_MON_SCL_PIN PCONFIG(2)
|
||||
# define P167_MON_SCL_PIN_LABEL PCONFIG_LABEL(2)
|
||||
# define P167_QUERY1 PCONFIG(3)
|
||||
# define P167_QUERY2 PCONFIG(4)
|
||||
# define P167_QUERY3 PCONFIG(5)
|
||||
# define P167_QUERY4 PCONFIG(6)
|
||||
# define P167_SEN_FIRST PCONFIG(7)
|
||||
# define P167_SEN_ATTEMPT PCONFIG_LONG(1)
|
||||
|
||||
|
||||
# define P167_I2C_ADDRESS_DFLT 0x69
|
||||
# define P167_MON_SCL_PIN_DFLT 13
|
||||
# define P167_MODEL_DFLT 0 // Vindstyrka or SEN54
|
||||
# define P167_QUERY1_DFLT 0 // Temperature (C)
|
||||
# define P167_QUERY2_DFLT 1 // Humidity (%)
|
||||
# define P167_QUERY3_DFLT 5 // PM2.5 (ug/m3)
|
||||
# define P167_QUERY4_DFLT 2 // tVOC (index)
|
||||
|
||||
|
||||
# define P167_NR_OUTPUT_VALUES 4
|
||||
# define P167_NR_OUTPUT_OPTIONS 10
|
||||
# define P167_QUERY1_CONFIG_POS 3
|
||||
# define P167_MAX_ATTEMPT 3 // Number of tentative before declaring NAN value
|
||||
|
||||
//# define LIMIT_BUILD_SIZE 1
|
||||
|
||||
// These pointers may be used among multiple instances of the same plugin,
|
||||
// as long as the same settings are used.
|
||||
P167_data_struct *Plugin_167_SEN = nullptr;
|
||||
boolean Plugin_167_init = false;
|
||||
|
||||
void IRAM_ATTR Plugin_167_interrupt();
|
||||
|
||||
// Forward declaration helper functions
|
||||
const __FlashStringHelper* p167_getQueryString(uint8_t query);
|
||||
const __FlashStringHelper* p167_getQueryValueString(uint8_t query);
|
||||
unsigned int p167_getRegister(uint8_t query, uint8_t model);
|
||||
float p167_readVal(uint8_t query, uint8_t node, unsigned int model);
|
||||
|
||||
|
||||
// A plugin has to implement the following function
|
||||
|
||||
boolean Plugin_167(uint8_t function, struct EventStruct *event, String& string)
|
||||
{
|
||||
// function: reason the plugin was called
|
||||
// event: ??add description here??
|
||||
// string: ??add description here??
|
||||
|
||||
boolean success = false;
|
||||
|
||||
switch (function)
|
||||
{
|
||||
|
||||
|
||||
case PLUGIN_DEVICE_ADD:
|
||||
{
|
||||
// This case defines the device characteristics
|
||||
Device[++deviceCount].Number = PLUGIN_ID_167;
|
||||
Device[deviceCount].Type = DEVICE_TYPE_I2C;
|
||||
Device[deviceCount].VType = Sensor_VType::SENSOR_TYPE_QUAD;
|
||||
Device[deviceCount].Ports = 0;
|
||||
Device[deviceCount].PullUpOption = true;
|
||||
Device[deviceCount].InverseLogicOption = false;
|
||||
Device[deviceCount].FormulaOption = true;
|
||||
Device[deviceCount].ValueCount = P167_NR_OUTPUT_VALUES;
|
||||
Device[deviceCount].SendDataOption = true;
|
||||
Device[deviceCount].TimerOption = true;
|
||||
Device[deviceCount].I2CNoDeviceCheck = true;
|
||||
Device[deviceCount].GlobalSyncOption = true;
|
||||
Device[deviceCount].PluginStats = true;
|
||||
Device[deviceCount].OutputDataType = Output_Data_type_t::Simple;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_GET_DEVICENAME:
|
||||
{
|
||||
// return the device name
|
||||
string = F(PLUGIN_NAME_167);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_GET_DEVICEVALUENAMES:
|
||||
{
|
||||
// called when the user opens the module configuration page
|
||||
// it allows to add a new row for each output variable of the plugin
|
||||
// For plugins able to choose output types, see P026_Sysinfo.ino.
|
||||
for (uint8_t i = 0; i < VARS_PER_TASK; ++i)
|
||||
{
|
||||
if ( i < P167_NR_OUTPUT_VALUES)
|
||||
{
|
||||
uint8_t choice = PCONFIG(i + P167_QUERY1_CONFIG_POS);
|
||||
safe_strncpy(ExtraTaskSettings.TaskDeviceValueNames[i], p167_getQueryValueString(choice), sizeof(ExtraTaskSettings.TaskDeviceValueNames[i]));
|
||||
}
|
||||
else
|
||||
{
|
||||
ZERO_FILL(ExtraTaskSettings.TaskDeviceValueNames[i]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_SET_DEFAULTS:
|
||||
{
|
||||
// Set a default config here, which will be called when a plugin is assigned to a task.
|
||||
P167_I2C_ADDRESS = P167_I2C_ADDRESS_DFLT;
|
||||
P167_MODEL = P167_MODEL_DFLT;
|
||||
P167_QUERY1 = P167_QUERY1_DFLT;
|
||||
P167_QUERY2 = P167_QUERY2_DFLT;
|
||||
P167_QUERY3 = P167_QUERY3_DFLT;
|
||||
P167_QUERY4 = P167_QUERY4_DFLT;
|
||||
P167_MON_SCL_PIN = P167_MON_SCL_PIN_DFLT;
|
||||
P167_SEN_FIRST = 99;
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
# if FEATURE_I2C_GET_ADDRESS
|
||||
case PLUGIN_I2C_GET_ADDRESS:
|
||||
{
|
||||
event->Par1 = P167_I2C_ADDRESS_DFLT;
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
# endif // if FEATURE_I2C_GET_ADDRESS
|
||||
|
||||
|
||||
case PLUGIN_I2C_HAS_ADDRESS:
|
||||
case PLUGIN_WEBFORM_SHOW_I2C_PARAMS:
|
||||
{
|
||||
const uint8_t i2cAddressValues[] = { P167_I2C_ADDRESS_DFLT };
|
||||
if (function == PLUGIN_WEBFORM_SHOW_I2C_PARAMS)
|
||||
{
|
||||
if (P167_SEN_FIRST == event->TaskIndex) // If first SEN, serial config available
|
||||
{
|
||||
//addFormSelectorI2C(P167_I2C_ADDRESS_LABEL, 3, i2cAddressValues, P167_I2C_ADDRESS);
|
||||
addFormSelectorI2C(F("i2c_addr"), 1, i2cAddressValues, P167_I2C_ADDRESS);
|
||||
addFormNote(F("Vindstyrka, SEN54, SEN55 default i2c address: 0x69"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
success = intArrayContains(1, i2cAddressValues, event->Par1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_WEBFORM_SHOW_GPIO_DESCR:
|
||||
{
|
||||
if (P167_SEN_FIRST == event->TaskIndex) // If first SEN, serial config available
|
||||
{
|
||||
if(P167_MODEL==0)
|
||||
{
|
||||
string = F("MonPin SCL: ");
|
||||
string += formatGpioLabel(P167_MON_SCL_PIN, false);
|
||||
}
|
||||
}
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_WEBFORM_LOAD_OUTPUT_SELECTOR:
|
||||
{
|
||||
const __FlashStringHelper *options[P167_NR_OUTPUT_OPTIONS];
|
||||
for (int i = 0; i < P167_NR_OUTPUT_OPTIONS; ++i)
|
||||
{
|
||||
options[i] = p167_getQueryString(i);
|
||||
}
|
||||
for (uint8_t i = 0; i < P167_NR_OUTPUT_VALUES; ++i)
|
||||
{
|
||||
const uint8_t pconfigIndex = i + P167_QUERY1_CONFIG_POS;
|
||||
sensorTypeHelper_loadOutputSelector(event, pconfigIndex, i, P167_NR_OUTPUT_OPTIONS, options);
|
||||
}
|
||||
addFormNote(F("NOx is available ONLY on Sensirion SEN55 model"));
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_WEBFORM_LOAD:
|
||||
{
|
||||
// this case defines what should be displayed on the web form, when this plugin is selected
|
||||
// The user's selection will be stored in
|
||||
// PCONFIG(x) (custom configuration)
|
||||
|
||||
if (Plugin_167_SEN == nullptr)
|
||||
{
|
||||
P167_SEN_FIRST = event->TaskIndex; // To detect if first SEN or not
|
||||
}
|
||||
|
||||
if (P167_SEN_FIRST == event->TaskIndex) // If first SEN, serial config available
|
||||
{
|
||||
addHtml(F("<br><B>This SEN5x is the first. Its configuration of Pins will affect next SEN5x.</B>"));
|
||||
addHtml(F("<span style=\"color:red\"> <br><B>If several SEN5x's foreseen, don't use other pins.</B></span>"));
|
||||
|
||||
const __FlashStringHelper *options_model[3] = { F("IKEA Vindstyrka"), F("Sensirion SEN54"), F("Sensirion SEN55")};
|
||||
|
||||
addFormSelector(F("Model Type"), P167_MODEL_LABEL, 3, options_model, nullptr, P167_MODEL);
|
||||
|
||||
if(P167_MODEL==0)
|
||||
{
|
||||
addFormPinSelect(PinSelectPurpose::Generic_input, F("MonPin SCL"), F("taskdevicepin3"), P167_MON_SCL_PIN);
|
||||
addFormNote(F("Pin for monitoring i2c communication between Vindstyrka controller and SEN5x. (Only when Model - IKEA Vindstyrka is selected.)"));
|
||||
}
|
||||
|
||||
if (Plugin_167_SEN != nullptr)
|
||||
{
|
||||
addRowLabel(F("Device info"));
|
||||
String prodname;
|
||||
String sernum;
|
||||
uint8_t firmware;
|
||||
Plugin_167_SEN->getEID(prodname, sernum, firmware);
|
||||
String txt = F("ProdName: ");
|
||||
txt += prodname;
|
||||
txt += F(" Serial Number: ");
|
||||
txt += sernum;
|
||||
txt += F(" Firmware: ");
|
||||
txt += String (firmware);
|
||||
addHtml(txt);
|
||||
|
||||
addRowLabel(F("Device status"));
|
||||
txt = F("Speed warning: ");
|
||||
txt += String((bool)Plugin_167_SEN->getStatusInfo(sensor_speed));
|
||||
txt += F(" , Auto Cleaning: ");
|
||||
txt += String((bool)Plugin_167_SEN->getStatusInfo(sensor_autoclean));
|
||||
txt += F(" , GAS Error: ");
|
||||
txt += String((bool)Plugin_167_SEN->getStatusInfo(sensor_gas));
|
||||
txt += F(" , RHT Error: ");
|
||||
txt += String((bool)Plugin_167_SEN->getStatusInfo(sensor_rht));
|
||||
txt += F(" , LASER Error: ");
|
||||
txt += String((bool)Plugin_167_SEN->getStatusInfo(sensor_laser));
|
||||
txt += F(" , FAN Error: ");
|
||||
txt += String((bool)Plugin_167_SEN->getStatusInfo(sensor_fan));
|
||||
addHtml(txt);
|
||||
|
||||
addRowLabel(F("Check (pass/fail/errCode)"));
|
||||
txt = Plugin_167_SEN->getSuccCount();
|
||||
txt += '/';
|
||||
txt += Plugin_167_SEN->getErrCount();
|
||||
txt += '/';
|
||||
txt += Plugin_167_SEN->getErrCode();
|
||||
addHtml(txt);
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
addHtml(F("<br><B>This SEN5x is the NOT the first. Model and Pins config are DISABLED. Configuration is available in the first SEN5x plugin.</B>"));
|
||||
addHtml(F("<span style=\"color:red\"> <br><B>Only output value can be configured.</B></span>"));
|
||||
|
||||
//looking for FIRST task Named "IKEA_Vindstyrka or Sensirion_SEN5x"
|
||||
//Cache.taskIndexName
|
||||
uint8_t allready_defined=88;
|
||||
if(P167_MODEL==0)
|
||||
{
|
||||
allready_defined=findTaskIndexByName(PLUGIN_DEFAULT_NAME_1);
|
||||
}
|
||||
else
|
||||
{
|
||||
allready_defined=findTaskIndexByName(PLUGIN_DEFAULT_NAME_2);
|
||||
}
|
||||
P167_SEN_FIRST = allready_defined;
|
||||
}
|
||||
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_WEBFORM_SAVE:
|
||||
{
|
||||
// this case defines the code to be executed when the form is submitted
|
||||
// the plugin settings should be saved to PCONFIG(x)
|
||||
// ping configuration should be read from CONFIG_PIN1 and stored
|
||||
|
||||
// Save output selector parameters.
|
||||
for (uint8_t i = 0; i < P167_NR_OUTPUT_VALUES; ++i)
|
||||
{
|
||||
const uint8_t pconfigIndex = i + P167_QUERY1_CONFIG_POS;
|
||||
const uint8_t choice = PCONFIG(pconfigIndex);
|
||||
sensorTypeHelper_saveOutputSelector(event, pconfigIndex, i, p167_getQueryValueString(choice));
|
||||
}
|
||||
P167_MODEL = getFormItemInt(P167_MODEL_LABEL);
|
||||
P167_I2C_ADDRESS = P167_I2C_ADDRESS_DFLT;
|
||||
if(P167_MODEL==0)
|
||||
P167_MON_SCL_PIN = getFormItemInt(F("taskdevicepin3"));
|
||||
P167_SEN_FIRST = P167_SEN_FIRST;
|
||||
|
||||
if (P167_SEN_FIRST == event->TaskIndex) // For first task set default name
|
||||
{
|
||||
if(P167_MODEL==0)
|
||||
{
|
||||
strcpy(ExtraTaskSettings.TaskDeviceName, PLUGIN_DEFAULT_NAME_1); // populate default name.
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(ExtraTaskSettings.TaskDeviceName, PLUGIN_DEFAULT_NAME_2); // populate default name.
|
||||
}
|
||||
}
|
||||
|
||||
Plugin_167_init = false; // Force device setup next time
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_INIT:
|
||||
{
|
||||
// this case defines code to be executed when the plugin is initialised
|
||||
// This will fail if the set to be first taskindex is no longer enabled
|
||||
|
||||
if (P167_SEN_FIRST == event->TaskIndex) // If first SEN5x, config available
|
||||
{
|
||||
if (Plugin_167_SEN != nullptr)
|
||||
{
|
||||
delete Plugin_167_SEN;
|
||||
Plugin_167_SEN = nullptr;
|
||||
}
|
||||
|
||||
Plugin_167_SEN = new (std::nothrow) P167_data_struct();
|
||||
|
||||
if (Plugin_167_SEN != nullptr)
|
||||
{
|
||||
Plugin_167_SEN->setupModel(P167_MODEL);
|
||||
Plugin_167_SEN->setupDevice(P167_I2C_ADDRESS);
|
||||
if(P167_MODEL==0)
|
||||
{
|
||||
Plugin_167_SEN->setupMonPin(P167_MON_SCL_PIN);
|
||||
pinMode(P167_MON_SCL_PIN, INPUT_PULLUP);
|
||||
attachInterrupt(P167_MON_SCL_PIN, Plugin_167_interrupt, RISING);
|
||||
}
|
||||
Plugin_167_SEN->reset();
|
||||
}
|
||||
}
|
||||
|
||||
//UserVar[event->BaseVarIndex] = NAN;
|
||||
//UserVar[event->BaseVarIndex + 1] = NAN;
|
||||
//UserVar[event->BaseVarIndex + 2] = NAN;
|
||||
//UserVar[event->BaseVarIndex + 3] = NAN;
|
||||
UserVar.setFloat(event->BaseVarIndex, 0, NAN);
|
||||
UserVar.setFloat(event->BaseVarIndex, 1, NAN);
|
||||
UserVar.setFloat(event->BaseVarIndex, 2, NAN);
|
||||
UserVar.setFloat(event->BaseVarIndex, 3, NAN);
|
||||
|
||||
success = true;
|
||||
Plugin_167_init = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_EXIT:
|
||||
{
|
||||
if (P167_SEN_FIRST == event->TaskIndex) // If first SEN5x, config available
|
||||
{
|
||||
if (Plugin_167_SEN != nullptr)
|
||||
{
|
||||
if(P167_MODEL==0)
|
||||
{
|
||||
Plugin_167_SEN->disableInterrupt_monpin();
|
||||
}
|
||||
delete Plugin_167_SEN;
|
||||
Plugin_167_SEN = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_READ:
|
||||
{
|
||||
// code to be executed to read data
|
||||
// It is executed according to the delay configured on the device configuration page, only once
|
||||
|
||||
if(event->TaskIndex!=P167_SEN_FIRST)
|
||||
{
|
||||
//All the DATA are in the first task of IKEA_Vindstyrka
|
||||
//so all you have to do is to load this data in the current taskindex data
|
||||
initPluginTaskData(event->TaskIndex, getPluginTaskData(P167_SEN_FIRST) );
|
||||
}
|
||||
|
||||
if (nullptr != Plugin_167_SEN)
|
||||
{
|
||||
if (Plugin_167_SEN->inError())
|
||||
{
|
||||
//UserVar[event->BaseVarIndex] = NAN;
|
||||
//UserVar[event->BaseVarIndex + 1] = NAN;
|
||||
//UserVar[event->BaseVarIndex + 2] = NAN;
|
||||
//UserVar[event->BaseVarIndex + 3] = NAN;
|
||||
UserVar.setFloat(event->BaseVarIndex, 0, NAN);
|
||||
UserVar.setFloat(event->BaseVarIndex, 1, NAN);
|
||||
UserVar.setFloat(event->BaseVarIndex, 2, NAN);
|
||||
UserVar.setFloat(event->BaseVarIndex, 3, NAN);
|
||||
addLog(LOG_LEVEL_ERROR, F("Vindstyrka / SEN5X: in Error!"));
|
||||
}
|
||||
else
|
||||
{
|
||||
if(event->TaskIndex==P167_SEN_FIRST)
|
||||
{
|
||||
Plugin_167_SEN->startMeasurements(); // getting ready for another read cycle
|
||||
}
|
||||
|
||||
//UserVar[event->BaseVarIndex] = Plugin_167_SEN->getRequestedValue(P167_QUERY1);
|
||||
//UserVar[event->BaseVarIndex + 1] = Plugin_167_SEN->getRequestedValue(P167_QUERY2);
|
||||
//UserVar[event->BaseVarIndex + 2] = Plugin_167_SEN->getRequestedValue(P167_QUERY3);
|
||||
//UserVar[event->BaseVarIndex + 3] = Plugin_167_SEN->getRequestedValue(P167_QUERY4);
|
||||
UserVar.setFloat(event->BaseVarIndex, 0, Plugin_167_SEN->getRequestedValue(P167_QUERY1));
|
||||
UserVar.setFloat(event->BaseVarIndex, 1, Plugin_167_SEN->getRequestedValue(P167_QUERY2));
|
||||
UserVar.setFloat(event->BaseVarIndex, 2, Plugin_167_SEN->getRequestedValue(P167_QUERY3));
|
||||
UserVar.setFloat(event->BaseVarIndex, 3, Plugin_167_SEN->getRequestedValue(P167_QUERY4));
|
||||
}
|
||||
}
|
||||
|
||||
success = true;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_ONCE_A_SECOND:
|
||||
{
|
||||
// code to be executed once a second. Tasks which do not require fast response can be added here
|
||||
success = true;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_TEN_PER_SECOND:
|
||||
{
|
||||
// code to be executed 10 times per second. Tasks which require fast response can be added here
|
||||
// be careful on what is added here. Heavy processing will result in slowing the module down!
|
||||
success = true;
|
||||
}
|
||||
|
||||
|
||||
case PLUGIN_FIFTY_PER_SECOND:
|
||||
{
|
||||
// code to be executed 10 times per second. Tasks which require fast response can be added here
|
||||
// be careful on what is added here. Heavy processing will result in slowing the module down!
|
||||
if(event->TaskIndex==P167_SEN_FIRST)
|
||||
{
|
||||
if (nullptr != Plugin_167_SEN)
|
||||
{
|
||||
Plugin_167_SEN->monitorSCL(); // Vind / SEN5X FSM evaluation
|
||||
Plugin_167_SEN->update();
|
||||
}
|
||||
}
|
||||
success = true;
|
||||
}
|
||||
} // switch
|
||||
|
||||
return success;
|
||||
} // function
|
||||
|
||||
|
||||
|
||||
/// @brief
|
||||
/// @param query
|
||||
/// @return
|
||||
const __FlashStringHelper* p167_getQueryString(uint8_t query)
|
||||
{
|
||||
switch(query)
|
||||
{
|
||||
case 0: return F("Temperature (C)");
|
||||
case 1: return F("Humidity (% RH)");
|
||||
case 2: return F("tVOC (VOC index)");
|
||||
case 3: return F("NOx (NOx index)");
|
||||
case 4: return F("PM 1.0 (ug/m3)");
|
||||
case 5: return F("PM 2.5 (ug/m3)");
|
||||
case 6: return F("PM 4.0 (ug/m3)");
|
||||
case 7: return F("PM 10.0 (ug/m3)");
|
||||
case 8: return F("DewPoint (C)");
|
||||
}
|
||||
return F("");
|
||||
}
|
||||
|
||||
/// @brief
|
||||
/// @param query
|
||||
/// @return
|
||||
const __FlashStringHelper* p167_getQueryValueString(uint8_t query)
|
||||
{
|
||||
switch(query)
|
||||
{
|
||||
case 0: return F("Temperature");
|
||||
case 1: return F("Humidity");
|
||||
case 2: return F("tVOC");
|
||||
case 3: return F("NOx");
|
||||
case 4: return F("PM1p0");
|
||||
case 5: return F("PM2p5");
|
||||
case 6: return F("PM4p0");
|
||||
case 7: return F("PM10p0");
|
||||
case 8: return F("DewPoint");
|
||||
}
|
||||
return F("");
|
||||
}
|
||||
|
||||
|
||||
// When using interrupts we have to call the library entry point
|
||||
// whenever an interrupt is triggered
|
||||
void IRAM_ATTR Plugin_167_interrupt()
|
||||
{
|
||||
//addLog(LOG_LEVEL_ERROR, F("********* SEN5X: interrupt apear!"));
|
||||
if (Plugin_167_SEN)
|
||||
{
|
||||
Plugin_167_SEN->checkPin_interrupt();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif //USES_P167
|
||||
@@ -3,6 +3,7 @@
|
||||
#if FEATURE_ETHERNET
|
||||
|
||||
#include "../ESPEasyCore/ESPEasy_Log.h"
|
||||
#include "../Globals/Settings.h"
|
||||
#include "../Helpers/Networking.h"
|
||||
|
||||
#include <ETH.h>
|
||||
@@ -176,23 +177,21 @@ void EthernetEventData_t::markDisconnect() {
|
||||
}
|
||||
lastConnectMoment.clear();
|
||||
processedDisconnect = false;
|
||||
#if ESP_IDF_VERSION_MAJOR >= 5
|
||||
WiFi.STA.setDefault();
|
||||
#endif
|
||||
}
|
||||
|
||||
void EthernetEventData_t::markConnected() {
|
||||
lastConnectMoment.setNow();
|
||||
processedConnect = false;
|
||||
#if ESP_IDF_VERSION_MAJOR >= 5
|
||||
ETH.setDefault();
|
||||
#endif
|
||||
|
||||
#if FEATURE_USE_IPV6
|
||||
ETH.enableIPv6(true);
|
||||
// workaround for the race condition in LWIP, see https://github.com/espressif/arduino-esp32/pull/9016#discussion_r1451774885
|
||||
{
|
||||
uint32_t i = 5; // try 5 times only
|
||||
while (esp_netif_create_ip6_linklocal(get_esp_interface_netif(ESP_IF_ETH)) != ESP_OK) {
|
||||
delay(1);
|
||||
if (i-- == 0) {
|
||||
// addLog(LOG_LEVEL_ERROR, ">>>> HELP");
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (Settings.EnableIPv6()) {
|
||||
ETH.enableIPv6(true);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ void FactoryDefault_WiFi_NVS::fromSettings() {
|
||||
bits.WaitWiFiConnect = Settings.WaitWiFiConnect();
|
||||
bits.SDK_WiFi_autoreconnect = Settings.SDK_WiFi_autoreconnect();
|
||||
bits.HiddenSSID_SlowConnectPerBSSID = Settings.HiddenSSID_SlowConnectPerBSSID();
|
||||
bits.EnableIPv6 = Settings.EnableIPv6();
|
||||
}
|
||||
|
||||
void FactoryDefault_WiFi_NVS::applyToSettings() const {
|
||||
@@ -43,6 +44,7 @@ void FactoryDefault_WiFi_NVS::applyToSettings() const {
|
||||
Settings.WaitWiFiConnect(bits.WaitWiFiConnect);
|
||||
Settings.SDK_WiFi_autoreconnect(bits.SDK_WiFi_autoreconnect);
|
||||
Settings.HiddenSSID_SlowConnectPerBSSID(bits.HiddenSSID_SlowConnectPerBSSID);
|
||||
Settings.EnableIPv6(bits.EnableIPv6);
|
||||
}
|
||||
|
||||
struct FactoryDefault_WiFi_NVS_securityPrefs {
|
||||
|
||||
@@ -40,8 +40,9 @@ private:
|
||||
uint64_t WaitWiFiConnect : 1;
|
||||
uint64_t SDK_WiFi_autoreconnect : 1;
|
||||
uint64_t HiddenSSID_SlowConnectPerBSSID : 1;
|
||||
uint64_t EnableIPv6 : 1;
|
||||
|
||||
uint64_t unused : 52;
|
||||
uint64_t unused : 51;
|
||||
} bits;
|
||||
|
||||
uint64_t data{};
|
||||
|
||||
@@ -62,7 +62,9 @@ bool NodeStruct::validate(const IPAddress& remoteIP) {
|
||||
|
||||
#if FEATURE_USE_IPV6
|
||||
// Check if we're in the same global subnet
|
||||
if (hasIPv6_mac_based_link_global && remoteIP.type() == IPv6) {
|
||||
if (Settings.EnableIPv6() &&
|
||||
hasIPv6_mac_based_link_global &&
|
||||
remoteIP.type() == IPv6) {
|
||||
const IPAddress this_global = NetworkGlobalIP6();
|
||||
// Check first 64 bit to see if we're in the same global scope
|
||||
for (int i = 0; i < 8 && hasIPv6_mac_based_link_global; ++i) {
|
||||
@@ -151,7 +153,7 @@ IPAddress NodeStruct::IP() const {
|
||||
#if FEATURE_USE_IPV6
|
||||
IPAddress NodeStruct::IPv6_link_local(bool stripZone) const
|
||||
{
|
||||
if (hasIPv6_mac_based_link_local) {
|
||||
if (Settings.EnableIPv6() && hasIPv6_mac_based_link_local) {
|
||||
// Base IPv6 on MAC address
|
||||
IPAddress ipv6;
|
||||
if (IPv6_link_local_from_MAC(sta_mac, ipv6)) {
|
||||
@@ -166,7 +168,7 @@ IPAddress NodeStruct::IPv6_link_local(bool stripZone) const
|
||||
|
||||
IPAddress NodeStruct::IPv6_global() const
|
||||
{
|
||||
if (hasIPv6_mac_based_link_global) {
|
||||
if (Settings.EnableIPv6() && hasIPv6_mac_based_link_global) {
|
||||
// Base IPv6 on MAC address
|
||||
IPAddress ipv6;
|
||||
if (IPv6_global_from_MAC(sta_mac, ipv6)) {
|
||||
@@ -177,6 +179,7 @@ IPAddress NodeStruct::IPv6_global() const
|
||||
}
|
||||
|
||||
bool NodeStruct::hasIPv6() const {
|
||||
if (!Settings.EnableIPv6()) return false;
|
||||
return hasIPv6_mac_based_link_local ||
|
||||
hasIPv6_mac_based_link_global;
|
||||
}
|
||||
|
||||
@@ -188,6 +188,9 @@ class SettingsStruct_tmpl
|
||||
bool HiddenSSID_SlowConnectPerBSSID() const { return !VariousBits_2.HiddenSSID_SlowConnectPerBSSID; }
|
||||
void HiddenSSID_SlowConnectPerBSSID(bool value) { VariousBits_2.HiddenSSID_SlowConnectPerBSSID = !value; }
|
||||
|
||||
bool EnableIPv6() const { return !VariousBits_2.EnableIPv6; }
|
||||
void EnableIPv6(bool value) { VariousBits_2.EnableIPv6 = !value; }
|
||||
|
||||
// Use Espressif's auto reconnect.
|
||||
bool SDK_WiFi_autoreconnect() const { return VariousBits_2.SDK_WiFi_autoreconnect; }
|
||||
void SDK_WiFi_autoreconnect(bool value) { VariousBits_2.SDK_WiFi_autoreconnect = value; }
|
||||
@@ -519,7 +522,7 @@ public:
|
||||
uint32_t SDK_WiFi_autoreconnect : 1; // Bit 01
|
||||
uint32_t DisableRulesCodeCompletion : 1; // Bit 02
|
||||
uint32_t HiddenSSID_SlowConnectPerBSSID : 1; // Bit 03 // inverted
|
||||
uint32_t unused_04 : 1; // Bit 04
|
||||
uint32_t EnableIPv6 : 1; // Bit 04 // inverted
|
||||
uint32_t unused_05 : 1; // Bit 05
|
||||
uint32_t unused_06 : 1; // Bit 06
|
||||
uint32_t unused_07 : 1; // Bit 07
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "../ESPEasyCore/ESPEasy_Log.h"
|
||||
|
||||
#include "../Globals/RTC.h"
|
||||
#include "../Globals/Settings.h"
|
||||
#include "../Globals/WiFi_AP_Candidates.h"
|
||||
|
||||
#include "../Helpers/ESPEasy_Storage.h"
|
||||
@@ -236,16 +237,8 @@ void WiFiEventData_t::markConnected(const String& ssid, const uint8_t bssid[6],
|
||||
}
|
||||
}
|
||||
#if FEATURE_USE_IPV6
|
||||
WiFi.enableIPv6(true);
|
||||
// workaround for the race condition in LWIP, see https://github.com/espressif/arduino-esp32/pull/9016#discussion_r1451774885
|
||||
{
|
||||
uint32_t i = 5; // try 5 times only
|
||||
while (esp_netif_create_ip6_linklocal(get_esp_interface_netif(ESP_IF_WIFI_STA)) != ESP_OK) {
|
||||
delay(1);
|
||||
if (i-- == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (Settings.EnableIPv6()) {
|
||||
WiFi.enableIPv6(true);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -882,24 +882,24 @@ spi_host_device_t SettingsStruct_tmpl<N_TASKS>::getSPI_host() const
|
||||
switch (SPI_selection) {
|
||||
case SPI_Options_e::Vspi_Fspi:
|
||||
{
|
||||
#if CONFIG_IDF_TARGET_ESP32
|
||||
return static_cast<spi_host_device_t>(VSPI);
|
||||
#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
return static_cast<spi_host_device_t>(FSPI_HOST);
|
||||
#else
|
||||
return static_cast<spi_host_device_t>(FSPI);
|
||||
return static_cast<spi_host_device_t>(VSPI_HOST);
|
||||
#endif
|
||||
}
|
||||
#ifdef ESP32_CLASSIC
|
||||
case SPI_Options_e::Hspi:
|
||||
{
|
||||
return static_cast<spi_host_device_t>(HSPI);
|
||||
return static_cast<spi_host_device_t>(HSPI_HOST);
|
||||
}
|
||||
#endif
|
||||
case SPI_Options_e::UserDefined:
|
||||
{
|
||||
#if CONFIG_IDF_TARGET_ESP32
|
||||
return static_cast<spi_host_device_t>(VSPI);
|
||||
#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
return static_cast<spi_host_device_t>(FSPI_HOST);
|
||||
#else
|
||||
return static_cast<spi_host_device_t>(FSPI);
|
||||
return static_cast<spi_host_device_t>(VSPI_HOST);
|
||||
#endif
|
||||
}
|
||||
case SPI_Options_e::None:
|
||||
@@ -908,10 +908,10 @@ spi_host_device_t SettingsStruct_tmpl<N_TASKS>::getSPI_host() const
|
||||
|
||||
}
|
||||
#if ESP_IDF_VERSION_MAJOR < 5
|
||||
#if CONFIG_IDF_TARGET_ESP32
|
||||
return static_cast<spi_host_device_t>(VSPI);
|
||||
#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
return static_cast<spi_host_device_t>(FSPI_HOST);
|
||||
#else
|
||||
return static_cast<spi_host_device_t>(FSPI);
|
||||
return static_cast<spi_host_device_t>(VSPI_HOST);
|
||||
#endif
|
||||
#else
|
||||
return spi_host_device_t::SPI_HOST_MAX;
|
||||
|
||||
@@ -169,7 +169,9 @@ bool ETHConnectRelaxed() {
|
||||
(eth_clock_mode_t)Settings.ETH_Clock_Mode);
|
||||
#else
|
||||
#if FEATURE_USE_IPV6
|
||||
ETH.enableIPv6(true);
|
||||
if (Settings.EnableIPv6()) {
|
||||
ETH.enableIPv6(true);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (isSPI_EthernetType(Settings.ETH_Phy_Type)) {
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
# include "../Globals/NetworkState.h"
|
||||
# include "../Globals/Settings.h"
|
||||
|
||||
# include "../Helpers/LongTermTimer.h"
|
||||
# include "../Helpers/Network.h"
|
||||
# include "../Helpers/Networking.h"
|
||||
# include "../Helpers/PeriodicalActions.h"
|
||||
@@ -164,14 +165,19 @@ void processEthernetGotIP() {
|
||||
IPAddress dns0 = ETH.dnsIP(0);
|
||||
IPAddress dns1 = ETH.dnsIP(1);
|
||||
const LongTermTimer::Duration dhcp_duration = EthEventData.lastConnectMoment.timeDiff(EthEventData.lastGetIPmoment);
|
||||
#if ESP_IDF_VERSION_MAJOR >= 5
|
||||
const bool mustRequestDHCP = (!dns0 && !dns1) && !ethUseStaticIP();
|
||||
#endif
|
||||
|
||||
if (!dns0 && !dns1) {
|
||||
addLog(LOG_LEVEL_ERROR, F("ETH : No DNS server received via DHCP, use cached DNS IP"));
|
||||
setDNS(0, EthEventData.dns0_cache);
|
||||
setDNS(1, EthEventData.dns1_cache);
|
||||
} else {
|
||||
EthEventData.dns0_cache = dns0;
|
||||
EthEventData.dns1_cache = dns1;
|
||||
if (!ethUseStaticIP()) {
|
||||
if (!dns0 && !dns1) {
|
||||
addLog(LOG_LEVEL_ERROR, F("ETH : No DNS server received via DHCP, use cached DNS IP"));
|
||||
if (EthEventData.dns0_cache) setDNS(0, EthEventData.dns0_cache);
|
||||
if (EthEventData.dns1_cache) setDNS(1, EthEventData.dns1_cache);
|
||||
} else {
|
||||
EthEventData.dns0_cache = dns0;
|
||||
EthEventData.dns1_cache = dns1;
|
||||
}
|
||||
}
|
||||
|
||||
if (loglevelActiveFor(LOG_LEVEL_INFO))
|
||||
@@ -244,6 +250,14 @@ void processEthernetGotIP() {
|
||||
logConnectionStatus();
|
||||
|
||||
EthEventData.processedGotIP = true;
|
||||
#if ESP_IDF_VERSION_MAJOR >= 5
|
||||
if (mustRequestDHCP /*&& EthEventData.lastConnectMoment.millisPassedSince() < 10000*/) {
|
||||
// FIXME TD-er: Must add some check other than fixed timeout here to not constantly make DHCP requests.
|
||||
// Force new DHCP request.
|
||||
ETH.config();
|
||||
}
|
||||
#endif
|
||||
|
||||
EthEventData.setEthGotIP();
|
||||
CheckRunningServices();
|
||||
}
|
||||
|
||||
@@ -46,6 +46,9 @@ void setNetworkMedium(NetworkMedium_t new_medium) {
|
||||
// ETH.end();
|
||||
if (new_medium == NetworkMedium_t::WIFI) {
|
||||
WiFiEventData.clearAll();
|
||||
#if ESP_IDF_VERSION_MAJOR >= 5
|
||||
WiFi.STA.setDefault();
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
@@ -53,6 +56,11 @@ void setNetworkMedium(NetworkMedium_t new_medium) {
|
||||
WiFiEventData.timerAPoff.setMillisFromNow(WIFI_AP_OFF_TIMER_DURATION);
|
||||
WiFiEventData.timerAPstart.clear();
|
||||
if (new_medium == NetworkMedium_t::Ethernet) {
|
||||
#if ESP_IDF_VERSION_MAJOR >= 5
|
||||
#if FEATURE_ETHERNET
|
||||
ETH.setDefault();
|
||||
#endif
|
||||
#endif
|
||||
WifiDisconnect();
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -28,8 +28,7 @@
|
||||
|
||||
|
||||
#ifdef ESP32
|
||||
void WiFi_Access_Static_IP::set_use_static_ip(bool enabled) {
|
||||
_useStaticIp = enabled;
|
||||
void setUseStaticIP(bool enabled) {
|
||||
}
|
||||
|
||||
#endif // ifdef ESP32
|
||||
@@ -37,16 +36,16 @@ void WiFi_Access_Static_IP::set_use_static_ip(bool enabled) {
|
||||
void WiFi_Access_Static_IP::set_use_static_ip(bool enabled) {
|
||||
_useStaticIp = enabled;
|
||||
}
|
||||
|
||||
#endif // ifdef ESP8266
|
||||
|
||||
|
||||
void setUseStaticIP(bool enabled) {
|
||||
WiFi_Access_Static_IP tmp_wifi;
|
||||
|
||||
tmp_wifi.set_use_static_ip(enabled);
|
||||
}
|
||||
|
||||
#endif // ifdef ESP8266
|
||||
|
||||
|
||||
|
||||
|
||||
// ********************************************************************************
|
||||
// Functions called on events.
|
||||
@@ -143,7 +142,12 @@ void WiFiEvent(WiFiEvent_t event, arduino_event_info_t info) {
|
||||
WiFiEventData.markDisconnect(static_cast<WiFiDisconnectReason>(info.wifi_sta_disconnected.reason));
|
||||
if (info.wifi_sta_disconnected.reason == WIFI_REASON_AUTH_EXPIRE) {
|
||||
// See: https://github.com/espressif/arduino-esp32/issues/8877#issuecomment-1807677897
|
||||
#if ESP_IDF_VERSION_MAJOR >= 5
|
||||
// FIXME TD-er: Should no longer be needed.
|
||||
WiFi.STA._setStatus(WL_CONNECTION_LOST);
|
||||
#else
|
||||
WiFiSTAClass::_setStatus(WL_CONNECTION_LOST);
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
WiFiEventData.markDisconnect(static_cast<WiFiDisconnectReason>(info.disconnected.reason));
|
||||
|
||||
@@ -494,7 +494,9 @@ void AttemptWiFiConnect() {
|
||||
const String key = WiFi_AP_CandidatesList::get_key(candidate.index);
|
||||
|
||||
#if FEATURE_USE_IPV6
|
||||
WiFi.enableIPv6(true);
|
||||
if (Settings.EnableIPv6()) {
|
||||
WiFi.enableIPv6(true);
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((Settings.HiddenSSID_SlowConnectPerBSSID() || !candidate.bits.isHidden)
|
||||
@@ -1396,7 +1398,7 @@ void setWifiMode(WiFiMode_t new_mode) {
|
||||
SetWiFiTXpower();
|
||||
#endif
|
||||
if (WifiIsSTA(new_mode)) {
|
||||
WiFi.setAutoConnect(Settings.SDK_WiFi_autoreconnect());
|
||||
// WiFi.setAutoConnect(Settings.SDK_WiFi_autoreconnect());
|
||||
WiFi.setAutoReconnect(Settings.SDK_WiFi_autoreconnect());
|
||||
}
|
||||
delay(100); // Must allow for some time to init.
|
||||
|
||||
@@ -304,9 +304,8 @@ unsigned long ESPEasy_time::now() {
|
||||
uint32_t localSystime = time_zone.toLocal(sysTime);
|
||||
breakTime(localSystime, local_tm);
|
||||
|
||||
calcSunRiseAndSet(timeSynced);
|
||||
if (timeSynced) {
|
||||
calcSunRiseAndSet();
|
||||
|
||||
if (loglevelActiveFor(LOG_LEVEL_INFO)) {
|
||||
addLog(LOG_LEVEL_INFO, strformat(
|
||||
F("Local time: %s"),
|
||||
@@ -451,7 +450,7 @@ bool ESPEasy_time::getNtpTime(double& unixTime_d)
|
||||
udp.endPacket();
|
||||
|
||||
|
||||
uint32_t beginWait = millis();
|
||||
const uint32_t beginWait = millis();
|
||||
|
||||
while (!timeOutReached(beginWait + 1000)) {
|
||||
int size = udp.parsePacket();
|
||||
@@ -749,13 +748,19 @@ int ESPEasy_time::dayOfYear(int year, int month, int day) {
|
||||
return j - k + 1;
|
||||
}
|
||||
|
||||
void ESPEasy_time::calcSunRiseAndSet() {
|
||||
int doy = dayOfYear(local_tm.tm_year, local_tm.tm_mon + 1, local_tm.tm_mday);
|
||||
float eqt = equationOfTime(doy);
|
||||
float dec = sunDeclination(doy);
|
||||
float da = diurnalArc(dec, Settings.Latitude);
|
||||
float rise = 12 - da - eqt;
|
||||
float set = 12 + da - eqt;
|
||||
void ESPEasy_time::calcSunRiseAndSet(bool timeSynced) {
|
||||
if (!timeSynced &&
|
||||
(tsSet.tm_mday == local_tm.tm_mday)) {
|
||||
// No need to recalculate if already calculated for this day
|
||||
return;
|
||||
}
|
||||
|
||||
const int doy = dayOfYear(local_tm.tm_year, local_tm.tm_mon + 1, local_tm.tm_mday);
|
||||
const float eqt = equationOfTime(doy);
|
||||
const float dec = sunDeclination(doy);
|
||||
const float da = diurnalArc(dec, Settings.Latitude);
|
||||
const float rise = 12 - da - eqt;
|
||||
const float set = 12 + da - eqt;
|
||||
|
||||
tsRise.tm_hour = rise;
|
||||
tsRise.tm_min = (rise - static_cast<int>(rise)) * 60.0f;
|
||||
@@ -766,7 +771,7 @@ void ESPEasy_time::calcSunRiseAndSet() {
|
||||
tsRise.tm_year = tsSet.tm_year = local_tm.tm_year;
|
||||
|
||||
// Now apply the longitude
|
||||
int secOffset_longitude = -1.0f * (Settings.Longitude / 15.0f) * 3600;
|
||||
const int secOffset_longitude = -1.0f * (Settings.Longitude / 15.0f) * 3600;
|
||||
|
||||
tsSet = addSeconds(tsSet, secOffset_longitude, false);
|
||||
tsRise = addSeconds(tsRise, secOffset_longitude, false);
|
||||
@@ -860,9 +865,9 @@ bool ESPEasy_time::ExtRTC_get(uint32_t& unixtime)
|
||||
}
|
||||
|
||||
if (unixtime != 0) {
|
||||
String log = F("ExtRTC: Read external time source: ");
|
||||
log += unixtime;
|
||||
addLogMove(LOG_LEVEL_INFO, log);
|
||||
addLogMove(LOG_LEVEL_INFO, concat(
|
||||
F("ExtRTC: Read external time source: "),
|
||||
unixtime));
|
||||
return true;
|
||||
}
|
||||
addLog(LOG_LEVEL_ERROR, F("ExtRTC: Cannot get time from external time source"));
|
||||
|
||||
@@ -176,7 +176,7 @@ private:
|
||||
int month,
|
||||
int day);
|
||||
|
||||
void calcSunRiseAndSet();
|
||||
void calcSunRiseAndSet(bool timeSynced);
|
||||
struct tm getSunRise(int secOffset) const;
|
||||
struct tm getSunSet(int secOffset) const;
|
||||
|
||||
|
||||
@@ -114,6 +114,10 @@
|
||||
|
||||
# include "../Helpers/Hardware_ADC_cali.h"
|
||||
|
||||
#if FEATURE_ETHERNET
|
||||
#include <ETH.h>
|
||||
#endif
|
||||
|
||||
#endif // ifdef ESP32
|
||||
|
||||
|
||||
|
||||
@@ -17,13 +17,14 @@ void OnImprovError(ImprovTypes::Error error)
|
||||
String log = F("IMPROV : ");
|
||||
|
||||
switch (error) {
|
||||
case ImprovTypes::Error::ERROR_NONE: return;
|
||||
case ImprovTypes::Error::ERROR_INVALID_RPC: log += F("Invalid RPC"); break;
|
||||
case ImprovTypes::Error::ERROR_UNKNOWN_RPC: log += F("Unkown RPC"); break;
|
||||
case ImprovTypes::Error::ERROR_UNABLE_TO_CONNECT: log += F("Unable to connect"); break;
|
||||
case ImprovTypes::Error::ERROR_NOT_AUTHORIZED: log += F("Not Authorized"); break;
|
||||
case ImprovTypes::Error::ERROR_INVALID_CHECKSUM: log += F("Invalid Checksum"); break;
|
||||
case ImprovTypes::Error::ERROR_EMPTY_SSID: log += F("Empty SSID"); break;
|
||||
case ImprovTypes::Error::ERROR_UNKNOWN: log += F("Unknown"); break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
addLogMove(LOG_LEVEL_ERROR, log);
|
||||
}
|
||||
@@ -34,16 +35,28 @@ void OnImprovConnected(const char *ssid, const char *password)
|
||||
safe_strncpy(
|
||||
SecuritySettings.WifiSSID,
|
||||
ssid,
|
||||
sizeof(SecuritySettings.WifiSSID2));
|
||||
sizeof(SecuritySettings.WifiSSID));
|
||||
safe_strncpy(
|
||||
SecuritySettings.WifiKey,
|
||||
password,
|
||||
sizeof(SecuritySettings.WifiKey));
|
||||
SaveSettings();
|
||||
SaveSecuritySettings();
|
||||
}
|
||||
|
||||
bool OnImprovESPEasyConnectWiFi(const char *ssid, const char *password)
|
||||
{
|
||||
// addLog(LOG_LEVEL_INFO, strformat(F("IMPROV WiFi connect: SSID: %s, Pass: %s"), ssid, password));
|
||||
/*
|
||||
safe_strncpy(
|
||||
SecuritySettings.WifiSSID,
|
||||
ssid,
|
||||
sizeof(SecuritySettings.WifiSSID));
|
||||
safe_strncpy(
|
||||
SecuritySettings.WifiKey,
|
||||
password,
|
||||
sizeof(SecuritySettings.WifiKey));
|
||||
*/
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -56,7 +69,7 @@ void Improv_Helper_t::init()
|
||||
_improv.onImprovConnected(OnImprovConnected);
|
||||
|
||||
// FIXME TD-er: Implement callback to use ESPEasy functions to connect to WiFi
|
||||
// _improv.setCustomTryConnectToWiFi(OnImprovESPEasyConnectWiFi);
|
||||
// _improv.setCustomTryConnectToWiFi(OnImprovESPEasyConnectWiFi);
|
||||
|
||||
String firmwareName = get_binary_filename();
|
||||
const String buildString = getSystemBuildString();
|
||||
@@ -111,7 +124,29 @@ bool Improv_Helper_t::handle(uint8_t b, Stream *serialForWrite)
|
||||
|
||||
_tmpbuffer.push_back(b);
|
||||
|
||||
switch (_improv.handleSerial(b, serialForWrite)) {
|
||||
const ImprovTypes::ParseState state = _improv.handleSerial(b, serialForWrite);
|
||||
|
||||
#ifndef BUILD_NO_DEBUG
|
||||
|
||||
if (loglevelActiveFor(LOG_LEVEL_DEBUG) &&
|
||||
state != ImprovTypes::ParseState::VALID_INCOMPLETE)
|
||||
{
|
||||
String log = F("IMPROVDEBUG: ");
|
||||
for (auto it = _tmpbuffer.begin(); it != _tmpbuffer.end(); ++it) {
|
||||
if (isAlphaNumeric(*it))
|
||||
log += static_cast<char>(*it);
|
||||
else {
|
||||
log += strformat(F("_%d_"), *it);
|
||||
}
|
||||
}
|
||||
if (state == ImprovTypes::ParseState::INVALID) {
|
||||
log += F(" (invalid)");
|
||||
}
|
||||
addLog(LOG_LEVEL_DEBUG, log);
|
||||
}
|
||||
#endif
|
||||
|
||||
switch (state) {
|
||||
case ImprovTypes::ParseState::VALID_INCOMPLETE:
|
||||
_mustDumpBuffer = false;
|
||||
return true;
|
||||
|
||||
@@ -67,8 +67,6 @@ size_t SerialWriteBuffer_t::write(Stream& stream, size_t nrBytesToWrite)
|
||||
}
|
||||
|
||||
if (nrBytesToWrite > 0) {
|
||||
// FIXME TD-er: Work-around for bug in HWCDC when writing exactly the amount of free bytes in the buffer.
|
||||
// --nrBytesToWrite;
|
||||
if (nrBytesToWrite > bufferSize) {
|
||||
nrBytesToWrite = bufferSize;
|
||||
}
|
||||
@@ -82,29 +80,32 @@ size_t SerialWriteBuffer_t::write(Stream& stream, size_t nrBytesToWrite)
|
||||
|
||||
bool done = false;
|
||||
|
||||
for (; tmpBufferUsed < sizeof(tmpBuffer) &&
|
||||
!done &&
|
||||
it != _buffer.end(); ) {
|
||||
for (; tmpBufferUsed < sizeof(tmpBuffer) &&
|
||||
!done &&
|
||||
it != _buffer.end();) {
|
||||
tmpBuffer[tmpBufferUsed] = (uint8_t)(*it);
|
||||
if (*it == '\n' ||
|
||||
tmpBufferUsed >= nrBytesToWrite) {
|
||||
|
||||
if ((*it == '\n') ||
|
||||
(tmpBufferUsed >= nrBytesToWrite)) {
|
||||
done = true;
|
||||
}
|
||||
++tmpBufferUsed;
|
||||
++it;
|
||||
}
|
||||
|
||||
// done = false;
|
||||
// done = false;
|
||||
const size_t written = (tmpBufferUsed == 0) ? 0 : stream.write(tmpBuffer, tmpBufferUsed);
|
||||
|
||||
if (written < tmpBufferUsed) {
|
||||
done = true;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < written; ++i) {
|
||||
_buffer.pop_front();
|
||||
--nrBytesToWrite;
|
||||
++bytesWritten;
|
||||
}
|
||||
|
||||
if (done) {
|
||||
return bytesWritten;
|
||||
}
|
||||
|
||||
@@ -194,6 +194,10 @@ const __FlashStringHelper * getLabel(LabelType::Enum label) {
|
||||
case LabelType::CONNECT_HIDDEN_SSID: return F("Include Hidden SSID");
|
||||
case LabelType::HIDDEN_SSID_SLOW_CONNECT: return F("Hidden SSID Slow Connect");
|
||||
case LabelType::SDK_WIFI_AUTORECONNECT: return F("Enable SDK WiFi Auto Reconnect");
|
||||
#if FEATURE_USE_IPV6
|
||||
case LabelType::ENABLE_IPV6: return F("Enable IPv6");
|
||||
#endif
|
||||
|
||||
|
||||
case LabelType::BUILD_DESC: return F("Build");
|
||||
case LabelType::GIT_BUILD: return F("Git Build");
|
||||
@@ -509,6 +513,10 @@ String getValue(LabelType::Enum label) {
|
||||
case LabelType::CONNECT_HIDDEN_SSID: return jsonBool(Settings.IncludeHiddenSSID());
|
||||
case LabelType::HIDDEN_SSID_SLOW_CONNECT: return jsonBool(Settings.HiddenSSID_SlowConnectPerBSSID());
|
||||
case LabelType::SDK_WIFI_AUTORECONNECT: return jsonBool(Settings.SDK_WiFi_autoreconnect());
|
||||
#if FEATURE_USE_IPV6
|
||||
case LabelType::ENABLE_IPV6: return jsonBool(Settings.EnableIPv6());
|
||||
#endif
|
||||
|
||||
|
||||
case LabelType::BUILD_DESC: return getSystemBuildString();
|
||||
case LabelType::GIT_BUILD:
|
||||
|
||||
@@ -142,6 +142,9 @@ struct LabelType {
|
||||
HIDDEN_SSID_SLOW_CONNECT,
|
||||
CONNECT_HIDDEN_SSID,
|
||||
SDK_WIFI_AUTORECONNECT,
|
||||
#if FEATURE_USE_IPV6
|
||||
ENABLE_IPV6,
|
||||
#endif
|
||||
|
||||
BUILD_DESC,
|
||||
GIT_BUILD,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,222 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// P167 device class for IKEA Vindstyrka SEN54 temperature , humidity and air quality sensors
|
||||
// See datasheet https://sensirion.com/media/documents/6791EFA0/62A1F68F/Sensirion_Datasheet_Environmental_Node_SEN5x.pdf
|
||||
// and info about extra request https://sensirion.com/media/documents/2B6FC1F3/6409E74A/PS_AN_Read_RHT_VOC_and_NOx_RAW_signals_D1.pdf
|
||||
// Based upon code from Rob Tillaart, Viktor Balint, https://github.com/RobTillaart/SHT2x
|
||||
// Rewritten and adapted for ESPeasy by andibaciu
|
||||
// 2023-06-20 Initial version by andibaciu
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "../../_Plugin_Helper.h"
|
||||
#include "../ESPEasyCore/ESPEasyGPIO.h"
|
||||
#ifdef USES_P167
|
||||
|
||||
#ifdef LIMIT_BUILD_SIZE
|
||||
#define PLUGIN_167_DEBUG false
|
||||
#else
|
||||
#define PLUGIN_167_DEBUG false // set to true for extra log info in the debug
|
||||
#endif
|
||||
|
||||
// Vindstyrka device properties
|
||||
//#define P167_I2C_ADDRESS_DFLT 0x69
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
#define VIND_ERR_NO_ERROR 0 // no error
|
||||
#define VIND_ERR_CRC_ERROR 1 // crc error
|
||||
#define VIND_ERR_WRONG_BYTES 2 // bytes b0,b1 or b2 wrong
|
||||
#define VIND_ERR_NOT_ENOUGHT_BYTES 3 // not enough bytes from sdm
|
||||
#define VIND_ERR_TIMEOUT 4 // timeout
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Access to the Vindstyrka device is mainly by sequencing a Finate State Machine
|
||||
enum class P167_state {
|
||||
Uninitialized = 0, // Initial state, unknown status of sensor device
|
||||
Wait_for_reset, // Reset being performed
|
||||
Read_firm_version, // Reading firmware version
|
||||
Read_prod_name, // Reading production
|
||||
Read_serial_no, // Reading serial number
|
||||
Write_user_reg, // Write the user register
|
||||
Initialized, // Initialization completed
|
||||
Ready, // Aquisition request is pending, ready to measure
|
||||
Wait_for_start_meas, // Start measurement started
|
||||
Wait_for_read_flag, // Read meas flag started
|
||||
Wait_for_read_meas, // Read meas started
|
||||
Wait_for_read_raw_meas, // RAW Read meas started
|
||||
Wait_for_read_raw_MYS_meas, // RAW Read meas MYSTERY started
|
||||
Wait_for_read_status, // Read status
|
||||
cmdSTARTmeas, // send command START meas to leave SEN5x ready flag for Vindstyrka
|
||||
IDLE, // Sensor device in IDLE mode
|
||||
New_Values_Available, // Acqusition finished, new data available
|
||||
Error // Sensor device cannot be accessed or in error
|
||||
};
|
||||
|
||||
|
||||
enum param_statusinfo
|
||||
{
|
||||
sensor_speed = 0,
|
||||
sensor_autoclean,
|
||||
sensor_gas,
|
||||
sensor_rht,
|
||||
sensor_laser,
|
||||
sensor_fan
|
||||
};
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// ESPeasy standard PluginTaskData structure for this plugin
|
||||
//struct P167_data_struct : public PluginTaskData_base
|
||||
class P167_data_struct
|
||||
{
|
||||
|
||||
public:
|
||||
P167_data_struct();
|
||||
//virtual ~P167_data_struct();
|
||||
~P167_data_struct();
|
||||
|
||||
void checkPin_interrupt(void);
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
// This method runs the FSM step by step on each call
|
||||
// Returns true when a stable state is reached
|
||||
bool update();
|
||||
bool monitorSCL();
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
// (re)configure the device properties
|
||||
// This will result in resetting and reloading the device
|
||||
bool setupDevice(uint8_t i2caddr);
|
||||
bool setupModel(uint8_t model);
|
||||
bool setupMonPin(uint8_t monpin);
|
||||
void enableInterrupt_monpin(void);
|
||||
void disableInterrupt_monpin(void);
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
// check sensor is reachable over I2C
|
||||
bool isConnected() const;
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
bool newValues() const;
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
bool inError() const;
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
// Reset the FSM to initial state
|
||||
bool reset();
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
// Trigger a measurement cycle
|
||||
// Only perform the measurements with big interval to prevent the sensor from warming up.
|
||||
bool startMeasurements();
|
||||
|
||||
bool getStatusInfo(param_statusinfo param);
|
||||
/////////////////////////////////////////////////////////
|
||||
// Electronic Identification Code
|
||||
// Sensirion_Humidity_SHT2x_Electronic_Identification_Code_V1.1.pdf
|
||||
// Electronic ID bytes
|
||||
bool getEID(String &eid_productname, String &eid_serialnumber, uint8_t &firmware) const;
|
||||
|
||||
/////////////////////////////////////////////////////////
|
||||
// Temperature, humidity, DewPoint, PMxpy retrieval
|
||||
// Note: values are fetched from memory and reflect latest succesful read cycle
|
||||
float getRequestedValue(uint8_t request) const;
|
||||
|
||||
|
||||
uint16_t getErrCode(bool _clear = false); //return last errorcode (optional clear this value, default false)
|
||||
uint16_t getErrCount(bool _clear = false); //return total errors count (optional clear this value, default false)
|
||||
uint16_t getSuccCount(bool _clear = false); //return total success count (optional clear this value, default false)
|
||||
void clearErrCode(); //clear last errorcode
|
||||
void clearErrCount(); //clear total errors count
|
||||
void clearSuccCount(); //clear total success count
|
||||
|
||||
//protected:
|
||||
private:
|
||||
|
||||
union devicestatus
|
||||
{
|
||||
uint32_t val;
|
||||
struct
|
||||
{
|
||||
uint16_t dummy1:10;
|
||||
bool speed;
|
||||
bool dummy2;
|
||||
bool autoclean;
|
||||
uint16_t dummy3:11;
|
||||
bool gas;
|
||||
bool rht;
|
||||
bool laser;
|
||||
bool fan;
|
||||
uint16_t dummy4:4;
|
||||
};
|
||||
};
|
||||
|
||||
devicestatus _devicestatus;
|
||||
P167_state _state;
|
||||
|
||||
uint8_t crc8(const uint8_t *data, uint8_t len);
|
||||
bool writeCmd(uint16_t cmd);
|
||||
bool writeCmd(uint16_t cmd, uint8_t value);
|
||||
bool writeCmd(uint16_t cmd, uint8_t length, uint8_t *buffer);
|
||||
bool readBytes(uint8_t n, uint8_t *val, uint8_t maxDuration);
|
||||
|
||||
bool readMeasValue();
|
||||
bool readMeasRawValue();
|
||||
bool readMeasRawMYSValue();
|
||||
bool readDataRdyFlag();
|
||||
bool readDeviceStatus();
|
||||
bool calculateValue();
|
||||
|
||||
bool getProductName();
|
||||
bool getSerialNumber();
|
||||
bool getFirmwareVersion();
|
||||
|
||||
|
||||
float _Humidity; // Humidity as fetched from the device [bits]
|
||||
float _HumidityX; // Humidity as calculated
|
||||
float _Temperature; // Temperature as fetched from the device [bits]
|
||||
float _TemperatureX; // Temperature as calculated
|
||||
float _DewPoint; // DewPoint as calculated
|
||||
float _rawHumidity; // Humidity as fetched from the device without compensation[bits]
|
||||
float _rawTemperature; // Temperature as fetched from the device without compensation[bits]
|
||||
float _mysHumidity; // Humidity as fetched from the device without compensation[bits]
|
||||
float _mysTemperature; // Temperature as fetched from the device without compensation[bits]
|
||||
float _tVOC; // tVOC as fetched from the device[bits]
|
||||
float _NOx; // NOx as fetched from the device[bits]
|
||||
float _rawtVOC; // tVOC as fetched from the device without compensation[bits]
|
||||
float _rawNOx; // NOx as fetched from the device without compensation[bits]
|
||||
float _mysOffset; // Temperature Offset fetched from the device[bits]
|
||||
float _PM1p0; // PM1.0 as fetched from the device[bits]
|
||||
float _PM2p5; // PM2.5 as fetched from the device[bits]
|
||||
float _PM4p0; // PM4.0 as fetched from the device[bits]
|
||||
float _PM10p0; // PM10.0 as fetched from the device[bits]
|
||||
uint8_t _model; // Selected sensor model
|
||||
uint8_t _i2caddr; // Programmed I2C address
|
||||
uint8_t _monpin; // Pin to monitor I2C SCL to find when VindStyrka finish i2c communication
|
||||
unsigned long _last_action_started; // Timestamp for last action that takes processing time
|
||||
uint16_t _errCount; // Number of errors since last successful access
|
||||
String _eid_productname; // Electronic Device ID - Product Name, read at initialization
|
||||
String _eid_serialnumber; // Electronic Device ID - Serial Number, read at initialization
|
||||
uint8_t _firmware; // Firmware version numer, read at initialization
|
||||
uint8_t _userreg; // TODO debugging only
|
||||
uint16_t _readingerrcode = VIND_ERR_NO_ERROR; // 4 = timeout; 3 = not enough bytes; 2 = number of bytes OK but bytes b0,b1 or b2 wrong, 1 = crc error
|
||||
uint16_t _readingerrcount = 0; // total errors couter
|
||||
uint32_t _readingsuccesscount = 0; // total success couter
|
||||
bool _errmeas;
|
||||
bool _errmeasraw;
|
||||
bool _errmeasrawmys;
|
||||
bool _errdevicestatus;
|
||||
uint8_t stepMonitoring; // step for Monitorin SCL pin algorithm
|
||||
bool startMonitoringFlag; // flag to START/STOP Monitoring algorithm
|
||||
bool statusMonitoring; // flag for status return from Monitoring algorithm
|
||||
unsigned long lastSCLLowTransitionMonitoringTime; // last time when SCL i2c pin rising
|
||||
|
||||
volatile uint32_t monpinValue = 0;
|
||||
volatile uint32_t monpinValuelast = 0;
|
||||
volatile uint8_t monpinChanged = 0;
|
||||
volatile uint64_t monpinLastTransitionTime = 0;
|
||||
|
||||
};
|
||||
#endif // USES_P167
|
||||
@@ -134,6 +134,11 @@ void handle_advanced() {
|
||||
Settings.WaitWiFiConnect(isFormItemChecked(LabelType::WAIT_WIFI_CONNECT));
|
||||
Settings.HiddenSSID_SlowConnectPerBSSID(isFormItemChecked(LabelType::HIDDEN_SSID_SLOW_CONNECT));
|
||||
Settings.SDK_WiFi_autoreconnect(isFormItemChecked(LabelType::SDK_WIFI_AUTORECONNECT));
|
||||
#if FEATURE_USE_IPV6
|
||||
Settings.EnableIPv6(isFormItemChecked(LabelType::ENABLE_IPV6));
|
||||
addFormNote(F("Toggling IPv6 requires reboot"));
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef BUILD_NO_RAM_TRACKER
|
||||
@@ -387,6 +392,9 @@ void handle_advanced() {
|
||||
addFormCheckBox(LabelType::WAIT_WIFI_CONNECT, Settings.WaitWiFiConnect());
|
||||
addFormCheckBox(LabelType::SDK_WIFI_AUTORECONNECT, Settings.SDK_WiFi_autoreconnect());
|
||||
addFormCheckBox(LabelType::HIDDEN_SSID_SLOW_CONNECT, Settings.HiddenSSID_SlowConnectPerBSSID());
|
||||
#if FEATURE_USE_IPV6
|
||||
addFormCheckBox(LabelType::ENABLE_IPV6, Settings.EnableIPv6());
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -210,6 +210,13 @@ void handle_json()
|
||||
#ifdef ESP32
|
||||
LabelType::ESP_CHIP_REVISION,
|
||||
#endif // ifdef ESP32
|
||||
LabelType::FLASH_CHIP_ID,
|
||||
LabelType::FLASH_CHIP_VENDOR,
|
||||
LabelType::FLASH_CHIP_MODEL,
|
||||
LabelType::FLASH_CHIP_REAL_SIZE,
|
||||
LabelType::FLASH_CHIP_SPEED,
|
||||
LabelType::FLASH_IDE_MODE,
|
||||
LabelType::FS_SIZE,
|
||||
|
||||
LabelType::SUNRISE,
|
||||
LabelType::SUNSET,
|
||||
@@ -244,6 +251,7 @@ void handle_json()
|
||||
#if FEATURE_USE_IPV6
|
||||
LabelType::IP6_LOCAL,
|
||||
LabelType::IP6_GLOBAL,
|
||||
LabelType::ENABLE_IPV6,
|
||||
#endif
|
||||
LabelType::IP_SUBNET,
|
||||
LabelType::GATEWAY,
|
||||
@@ -281,6 +289,10 @@ void handle_json()
|
||||
LabelType::WIFI_USE_LAST_CONN_FROM_RTC,
|
||||
LabelType::WIFI_RSSI,
|
||||
|
||||
LabelType::WAIT_WIFI_CONNECT,
|
||||
LabelType::HIDDEN_SSID_SLOW_CONNECT,
|
||||
LabelType::CONNECT_HIDDEN_SSID,
|
||||
LabelType::SDK_WIFI_AUTORECONNECT,
|
||||
|
||||
LabelType::MAX_LABEL
|
||||
};
|
||||
|
||||
@@ -197,8 +197,10 @@ void handle_root() {
|
||||
{
|
||||
addRowLabelValue(LabelType::IP_ADDRESS);
|
||||
#if FEATURE_USE_IPV6
|
||||
addRowLabelValue(LabelType::IP6_LOCAL);
|
||||
// Do not show global IPv6 on the root page
|
||||
if (Settings.EnableIPv6()) {
|
||||
addRowLabelValue(LabelType::IP6_LOCAL);
|
||||
// Do not show global IPv6 on the root page
|
||||
}
|
||||
#endif
|
||||
addRowLabel(LabelType::WIFI_RSSI);
|
||||
addHtml(strformat(
|
||||
@@ -213,8 +215,10 @@ void handle_root() {
|
||||
addRowLabelValue(LabelType::ETH_SPEED_STATE);
|
||||
addRowLabelValue(LabelType::ETH_IP_ADDRESS);
|
||||
#if FEATURE_USE_IPV6
|
||||
addRowLabelValue(LabelType::ETH_IP6_LOCAL);
|
||||
// Do not show global IPv6 on the root page
|
||||
if (Settings.EnableIPv6()) {
|
||||
addRowLabelValue(LabelType::ETH_IP6_LOCAL);
|
||||
// Do not show global IPv6 on the root page
|
||||
}
|
||||
#endif
|
||||
}
|
||||
# endif // if FEATURE_ETHERNET
|
||||
@@ -337,8 +341,10 @@ void handle_root() {
|
||||
|
||||
if (it->second.ip[0] != 0
|
||||
#if FEATURE_USE_IPV6
|
||||
|| it->second.hasIPv6_mac_based_link_local
|
||||
|| it->second.hasIPv6_mac_based_link_global
|
||||
|| (Settings.EnableIPv6() &&
|
||||
(it->second.hasIPv6_mac_based_link_local ||
|
||||
it->second.hasIPv6_mac_based_link_global)
|
||||
)
|
||||
#endif
|
||||
)
|
||||
{
|
||||
@@ -347,12 +353,14 @@ void handle_root() {
|
||||
|
||||
#if FEATURE_USE_IPV6
|
||||
bool isIPv6 = false;
|
||||
if (it->second.hasIPv6_mac_based_link_local) {
|
||||
ip = it->second.IPv6_link_local(true);
|
||||
isIPv6 = true;
|
||||
} else if (it->second.hasIPv6_mac_based_link_global) {
|
||||
ip = it->second.IPv6_global();
|
||||
isIPv6 = true;
|
||||
if (Settings.EnableIPv6()) {
|
||||
if (it->second.hasIPv6_mac_based_link_local) {
|
||||
ip = it->second.IPv6_link_local(true);
|
||||
isIPv6 = true;
|
||||
} else if (it->second.hasIPv6_mac_based_link_global) {
|
||||
ip = it->second.IPv6_global();
|
||||
isIPv6 = true;
|
||||
}
|
||||
}
|
||||
if (it->second.hasIPv4 && it->second.hasIPv6()) {
|
||||
// Add 2 buttons for IPv4 and IPv6 address
|
||||
|
||||
@@ -121,8 +121,10 @@ void handle_sysinfo_json() {
|
||||
json_prop(F("dhcp"), useStaticIP() ? getLabel(LabelType::IP_CONFIG_STATIC) : getLabel(LabelType::IP_CONFIG_DYNAMIC));
|
||||
json_prop(F("ip"), getValue(LabelType::IP_ADDRESS));
|
||||
#if FEATURE_USE_IPV6
|
||||
json_prop(F("ip6_local"), getValue(LabelType::IP6_LOCAL));
|
||||
json_prop(F("ip6_global"), getValue(LabelType::IP6_GLOBAL));
|
||||
if (Settings.EnableIPv6()) {
|
||||
json_prop(F("ip6_local"), getValue(LabelType::IP6_LOCAL));
|
||||
json_prop(F("ip6_global"), getValue(LabelType::IP6_GLOBAL));
|
||||
}
|
||||
#endif
|
||||
|
||||
json_prop(F("subnet"), getValue(LabelType::IP_SUBNET));
|
||||
@@ -153,7 +155,8 @@ void handle_sysinfo_json() {
|
||||
json_prop(F("ethstate"), getValue(LabelType::ETH_STATE));
|
||||
json_prop(F("ethspeedstate"), getValue(LabelType::ETH_SPEED_STATE));
|
||||
#if FEATURE_USE_IPV6
|
||||
json_prop(F("ethipv6local"), getValue(LabelType::ETH_IP6_LOCAL));
|
||||
if (Settings.EnableIPv6())
|
||||
json_prop(F("ethipv6local"), getValue(LabelType::ETH_IP6_LOCAL));
|
||||
#endif
|
||||
json_close();
|
||||
# endif // if FEATURE_ETHERNET
|
||||
@@ -542,6 +545,9 @@ void handle_sysinfo_WiFiSettings() {
|
||||
LabelType::HIDDEN_SSID_SLOW_CONNECT,
|
||||
LabelType::CONNECT_HIDDEN_SSID,
|
||||
LabelType::SDK_WIFI_AUTORECONNECT,
|
||||
#if FEATURE_USE_IPV6
|
||||
LabelType::ENABLE_IPV6,
|
||||
#endif
|
||||
|
||||
LabelType::MAX_LABEL
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user