diff --git a/.github/workflows/sonar_check.yml b/.github/workflows/sonar_check.yml index 6c8da39e3..6a7c60478 100644 --- a/.github/workflows/sonar_check.yml +++ b/.github/workflows/sonar_check.yml @@ -20,15 +20,15 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - - - name: Install sonar-scanner and build-wrapper - uses: SonarSource/sonarcloud-github-c-cpp@v2 - - - name: Run build-wrapper - run: build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} make all - - - name: Run sonar-scanner + - name: Install Build Wrapper + uses: SonarSource/sonarqube-scan-action/install-build-wrapper@master + - name: Run Build Wrapper + run: build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} make all + - name: SonarQube Scan + uses: SonarSource/sonarqube-scan-action@master env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: sonar-scanner --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json" + with: + args: > + --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json" + diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 74feac35e..c9d5f2844 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -29,6 +29,7 @@ For more details go to [docs.emsesp.org](https://docs.emsesp.org/). - shower active state retained, shows correctly in HA - MQTT Command Topic with slashes [#2571](https://github.com/emsesp/EMS-ESP32/issues/2571) - Add pulsed water meter input to V1.3 gateway with Lilygo S3 [#2550](https://github.com/emsesp/EMS-ESP32/issues/2550) +- Fix missing long 10-second press of Button to perform a factory reset ## Changed diff --git a/interface/package.json b/interface/package.json index 3e4de991a..48ad4dcfa 100644 --- a/interface/package.json +++ b/interface/package.json @@ -49,7 +49,7 @@ "@preact/compat": "^18.3.1", "@preact/preset-vite": "^2.10.2", "@trivago/prettier-plugin-sort-imports": "^5.2.2", - "@types/node": "^24.1.0", + "@types/node": "^24.2.0", "@types/react": "^19.1.9", "@types/react-dom": "^19.1.7", "concurrently": "^9.2.0", @@ -63,5 +63,5 @@ "vite-plugin-imagemin": "^0.6.1", "vite-tsconfig-paths": "^5.1.4" }, - "packageManager": "pnpm@10.14.0" + "packageManager": "pnpm@10.14.0+sha512.ad27a79641b49c3e481a16a805baa71817a04bbe06a38d17e60e2eaee83f6a146c6a688125f5792e48dd5ba30e7da52a5cda4c3992b9ccf333f9ce223af84748" } diff --git a/interface/pnpm-lock.yaml b/interface/pnpm-lock.yaml index 55aef5bfd..2b738d319 100644 --- a/interface/pnpm-lock.yaml +++ b/interface/pnpm-lock.yaml @@ -80,13 +80,13 @@ importers: version: 18.3.1(preact@10.27.0) '@preact/preset-vite': specifier: ^2.10.2 - version: 2.10.2(@babel/core@7.28.0)(preact@10.27.0)(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1)) + version: 2.10.2(@babel/core@7.28.0)(preact@10.27.0)(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1)) '@trivago/prettier-plugin-sort-imports': specifier: ^5.2.2 version: 5.2.2(prettier@3.6.2) '@types/node': - specifier: ^24.1.0 - version: 24.1.0 + specifier: ^24.2.0 + version: 24.2.0 '@types/react': specifier: ^19.1.9 version: 19.1.9 @@ -116,13 +116,13 @@ importers: version: 8.38.0(eslint@9.32.0)(typescript@5.9.2) vite: specifier: ^7.0.6 - version: 7.0.6(@types/node@24.1.0)(terser@5.43.1) + version: 7.0.6(@types/node@24.2.0)(terser@5.43.1) vite-plugin-imagemin: specifier: ^0.6.1 - version: 0.6.1(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1)) + version: 0.6.1(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.2)(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1)) + version: 5.1.4(typescript@5.9.2)(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1)) packages: @@ -846,8 +846,8 @@ packages: resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. - '@types/node@24.1.0': - resolution: {integrity: sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==} + '@types/node@24.2.0': + resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -2909,8 +2909,8 @@ packages: unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - undici-types@7.8.0: - resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} + undici-types@7.10.0: + resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -3565,18 +3565,18 @@ snapshots: dependencies: preact: 10.27.0 - '@preact/preset-vite@2.10.2(@babel/core@7.28.0)(preact@10.27.0)(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1))': + '@preact/preset-vite@2.10.2(@babel/core@7.28.0)(preact@10.27.0)(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.0) '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.0) - '@prefresh/vite': 2.4.8(preact@10.27.0)(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1)) + '@prefresh/vite': 2.4.8(preact@10.27.0)(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.28.0) debug: 4.4.1 picocolors: 1.1.1 - vite: 7.0.6(@types/node@24.1.0)(terser@5.43.1) - vite-prerender-plugin: 0.5.11(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1)) + vite: 7.0.6(@types/node@24.2.0)(terser@5.43.1) + vite-prerender-plugin: 0.5.11(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1)) transitivePeerDependencies: - preact - supports-color @@ -3589,7 +3589,7 @@ snapshots: '@prefresh/utils@1.2.1': {} - '@prefresh/vite@2.4.8(preact@10.27.0)(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1))': + '@prefresh/vite@2.4.8(preact@10.27.0)(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1))': dependencies: '@babel/core': 7.28.0 '@prefresh/babel-plugin': 0.5.2 @@ -3597,7 +3597,7 @@ snapshots: '@prefresh/utils': 1.2.1 '@rollup/pluginutils': 4.2.1 preact: 10.27.0 - vite: 7.0.6(@types/node@24.1.0)(terser@5.43.1) + vite: 7.0.6(@types/node@24.2.0)(terser@5.43.1) transitivePeerDependencies: - supports-color @@ -3696,7 +3696,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 24.1.0 + '@types/node': 24.2.0 '@types/imagemin-gifsicle@7.0.4': dependencies: @@ -3725,21 +3725,21 @@ snapshots: '@types/imagemin@7.0.1': dependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 '@types/json-schema@7.0.15': {} '@types/keyv@3.1.4': dependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 '@types/minimatch@6.0.0': dependencies: minimatch: 10.0.3 - '@types/node@24.1.0': + '@types/node@24.2.0': dependencies: - undici-types: 7.8.0 + undici-types: 7.10.0 '@types/parse-json@4.0.2': {} @@ -3759,11 +3759,11 @@ snapshots: '@types/responselike@1.0.3': dependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 '@types/svgo@2.6.4': dependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0)(typescript@5.9.2))(eslint@9.32.0)(typescript@5.9.2)': dependencies: @@ -5883,7 +5883,7 @@ snapshots: buffer: 5.7.1 through: 2.3.8 - undici-types@7.8.0: {} + undici-types@7.10.0: {} universalify@2.0.1: {} @@ -5916,7 +5916,7 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-plugin-imagemin@0.6.1(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1)): + vite-plugin-imagemin@0.6.1(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1)): dependencies: '@types/imagemin': 7.0.1 '@types/imagemin-gifsicle': 7.0.4 @@ -5941,11 +5941,11 @@ snapshots: imagemin-webp: 6.1.0 jpegtran-bin: 6.0.1 pathe: 0.2.0 - vite: 7.0.6(@types/node@24.1.0)(terser@5.43.1) + vite: 7.0.6(@types/node@24.2.0)(terser@5.43.1) transitivePeerDependencies: - supports-color - vite-prerender-plugin@0.5.11(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1)): + vite-prerender-plugin@0.5.11(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1)): dependencies: kolorist: 1.8.0 magic-string: 0.30.17 @@ -5953,20 +5953,20 @@ snapshots: simple-code-frame: 1.3.0 source-map: 0.7.6 stack-trace: 1.0.0-pre2 - vite: 7.0.6(@types/node@24.1.0)(terser@5.43.1) + vite: 7.0.6(@types/node@24.2.0)(terser@5.43.1) - vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.0.6(@types/node@24.1.0)(terser@5.43.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.0.6(@types/node@24.2.0)(terser@5.43.1)): dependencies: debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.2) optionalDependencies: - vite: 7.0.6(@types/node@24.1.0)(terser@5.43.1) + vite: 7.0.6(@types/node@24.2.0)(terser@5.43.1) transitivePeerDependencies: - supports-color - typescript - vite@7.0.6(@types/node@24.1.0)(terser@5.43.1): + vite@7.0.6(@types/node@24.2.0)(terser@5.43.1): dependencies: esbuild: 0.25.8 fdir: 6.4.6(picomatch@4.0.3) @@ -5975,7 +5975,7 @@ snapshots: rollup: 4.46.2 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.1.0 + '@types/node': 24.2.0 fsevents: 2.3.3 terser: 5.43.1 diff --git a/mock-api/package.json b/mock-api/package.json index 90c5eb039..8319bbf00 100644 --- a/mock-api/package.json +++ b/mock-api/package.json @@ -12,8 +12,8 @@ "@msgpack/msgpack": "^3.1.2", "@trivago/prettier-plugin-sort-imports": "^5.2.2", "formidable": "^3.5.4", - "itty-router": "^5.0.18", + "itty-router": "^5.0.21", "prettier": "^3.6.2" }, - "packageManager": "pnpm@10.13.1+sha512.37ebf1a5c7a30d5fabe0c5df44ee8da4c965ca0c5af3dbab28c3a1681b70a256218d05c81c9c0dcf767ef6b8551eb5b960042b9ed4300c59242336377e01cfad" + "packageManager": "pnpm@10.14.0+sha512.ad27a79641b49c3e481a16a805baa71817a04bbe06a38d17e60e2eaee83f6a146c6a688125f5792e48dd5ba30e7da52a5cda4c3992b9ccf333f9ce223af84748" } diff --git a/mock-api/pnpm-lock.yaml b/mock-api/pnpm-lock.yaml index 6eb6a91df..c64df81d0 100644 --- a/mock-api/pnpm-lock.yaml +++ b/mock-api/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: ^3.5.4 version: 3.5.4 itty-router: - specifier: ^5.0.18 - version: 5.0.18 + specifier: ^5.0.21 + version: 5.0.21 prettier: specifier: ^3.6.2 version: 3.6.2 @@ -59,8 +59,8 @@ packages: resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.0': - resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} + '@babel/types@7.28.2': + resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} '@jridgewell/gen-mapping@0.3.12': @@ -122,8 +122,8 @@ packages: resolution: {integrity: sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==} engines: {node: '>=14.0.0'} - itty-router@5.0.18: - resolution: {integrity: sha512-mK3ReOt4ARAGy0V0J7uHmArG2USN2x0zprZ+u+YgmeRjXTDbaowDy3kPcsmQY6tH+uHhDgpWit9Vqmv/4rTXwA==} + itty-router@5.0.21: + resolution: {integrity: sha512-SrmsBfXtdoIkuDMTMXqCT0kYSl9OlQZLC7llHs4fE26dZlGfi0Cm4adNL7q/ygpWyoTZobZ547h5SZu/PwB+cg==} javascript-natural-sort@0.7.1: resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} @@ -167,7 +167,7 @@ snapshots: '@babel/generator@7.28.0': dependencies: '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.2 '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 @@ -180,13 +180,13 @@ snapshots: '@babel/parser@7.28.0': dependencies: - '@babel/types': 7.28.0 + '@babel/types': 7.28.2 '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.2 '@babel/traverse@7.28.0': dependencies: @@ -195,12 +195,12 @@ snapshots: '@babel/helper-globals': 7.28.0 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/types': 7.28.0 + '@babel/types': 7.28.2 debug: 4.4.1 transitivePeerDependencies: - supports-color - '@babel/types@7.28.0': + '@babel/types@7.28.2': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -232,7 +232,7 @@ snapshots: '@babel/generator': 7.28.0 '@babel/parser': 7.28.0 '@babel/traverse': 7.28.0 - '@babel/types': 7.28.0 + '@babel/types': 7.28.2 javascript-natural-sort: 0.7.1 lodash: 4.17.21 prettier: 3.6.2 @@ -256,7 +256,7 @@ snapshots: dezalgo: 1.0.4 once: 1.4.0 - itty-router@5.0.18: {} + itty-router@5.0.21: {} javascript-natural-sort@0.7.1: {} diff --git a/pio_local.ini_example b/pio_local.ini_example index ad19dd749..843dc51d2 100644 --- a/pio_local.ini_example +++ b/pio_local.ini_example @@ -18,10 +18,10 @@ my_build_flags = [platformio] -; default_envs = s_16M_P ; BBQKees E32V2 +default_envs = s_16M_P ; BBQKees E32V2 ; default_envs = s3_16M_P ; BBQKees S3 ; default_envs = s_4M ; BBQKees older S32, 4MB no psram -default_envs = s_16M ; BBQKees newer S32 V2, 16MB no psram +; default_envs = s_16M ; BBQKees newer S32 V2, 16MB no psram [env] @@ -30,10 +30,10 @@ default_envs = s_16M ; BBQKees newer S32 V2, 16MB no psram ; monitor_filters = colorize, esp32_exception_decoder ; uncomment if you want to upload the firmware via OTA (must have upload_protocol = custom) -; extra_scripts = -; pre:scripts/build_interface.py ; builds the WebUI (unless NO_BUILD_WEBUI is set) - comment out if you don't want to build each time -; scripts/rename_fw.py ; renames the firmware .bin file - comment out if not needed -; scripts/upload.py ; optionally upload the firmware via OTA (must have upload_protocol = custom) +extra_scripts = +; pre:scripts/build_interface.py ; builds the WebUI (unless NO_BUILD_WEBUI is set) - comment out if you don't want to build each time + scripts/rename_fw.py ; renames the firmware .bin file - comment out if not needed + scripts/upload.py ; optionally upload the firmware via OTA (must have upload_protocol = custom) ; set the username and password for the admin account (default password is admin) custom_username = admin @@ -47,17 +47,28 @@ custom_password = admin ; upload_protocol = custom ; custom_emsesp_ip = or ems-esp.local -; upload_protocol = custom -; custom_emsesp_ip = 10.10.10.93 +upload_protocol = custom +; custom_emsesp_ip = 10.10.10.93 ; S3 +custom_emsesp_ip = 192.168.1.223 ; E32V2 +; custom_emsesp_ip = 192.168.1.173 ; S32 +; custom_emsesp_ip = 192.168.1.59 ; S32 (old) 4MB blue board -; example override for lib_deps and using locally built modules -; lib_deps = -; bblanchon/ArduinoJson @ 7.4.2 -; ESP32Async/AsyncTCP @ 3.4.2 -; ESP32Async/ESPAsyncWebServer @ 3.7.9 -; file://${PROJECT_DIR}/../modules/EMS-ESP-Modules +lib_deps = + bblanchon/ArduinoJson @ 7.4.2 + ESP32Async/AsyncTCP @ 3.4.7 + ESP32Async/ESPAsyncWebServer @ 3.7.10 + file://${PROJECT_DIR}/../modules/EMS-ESP-Modules ; ; https://github.com/emsesp/EMS-ESP-Modules.git @ 1.0.8 +[espressif32_base_16M] +framework = arduino +board_build.partitions = partitions/esp32_partition_16M.csv +board_upload.flash_size = 16MB +board_build.app_partition_name = app0 +; platform = espressif32@6.11.0 ; Arduino Core v2.0.17 / IDF v4.4.7 +; platform = https://github.com/pioarduino/platform-espressif32/releases/download/54.03.20/platform-espressif32.zip ; Arduino Core v3.2.0 / ESP-IDF v5.4.1 +platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.30/platform-espressif32.zip ; Arduino Core 3.3.0, IDF 5.5.0 + ; ** debug settings ** ; to be used with esp-prog/JTAG hardware device like https://docs.espressif.com/projects/esp-dev-kits/en/latest/other/esp-prog/user_guide.html ; pio run -e debug diff --git a/platformio.ini b/platformio.ini index c2669c445..423343c3e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -22,8 +22,8 @@ extra_configs = pio_local.ini [common] -core_build_flags = -std=gnu++17 -O3 -flto=auto -Wno-type-limits -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -Wno-format -core_unbuild_flags = -std=gnu++11 -std=gnu++14 -fno-lto +core_build_flags = -std=c++17 -std=gnu++17 -O3 -flto=auto -Wno-type-limits -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -Wno-format +core_unbuild_flags = -std=gnu++11 -fno-lto my_build_flags = diff --git a/src/core/system.cpp b/src/core/system.cpp index 26896ab98..d466c000e 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -516,13 +516,16 @@ void System::button_OnDblClick(PButton & b) { // button long press void System::button_OnLongPress(PButton & b) { - LOG_NOTICE("Button pressed - long press - restart from factory/boot partition"); - EMSESP::system_.system_restart("boot"); // this is default when first installed. it may contain the bootloader code. + LOG_NOTICE("Button pressed - long press - perform factory reset"); +#ifndef EMSESP_STANDALONE + System::command_format(nullptr, 0); +#endif } // button indefinite press - do nothing for now void System::button_OnVLongPress(PButton & b) { - LOG_NOTICE("Button pressed - very long press"); + LOG_NOTICE("Button pressed - very long press - restart from factory/boot partition"); + EMSESP::system_.system_restart("boot"); } // push button @@ -1935,7 +1938,7 @@ bool System::load_board_profile(std::vector & data, const std::string & return true; } -// format command - factory reset, removing all config fi`les +// format command - factory reset, removing all config files bool System::command_format(const char * value, const int8_t id) { LOG_INFO("Removing all config files"); #ifndef EMSESP_STANDALONE diff --git a/src/core/system.h b/src/core/system.h index 96daa20eb..8431e697a 100644 --- a/src/core/system.h +++ b/src/core/system.h @@ -351,10 +351,10 @@ class System { static void button_OnDblClick(PButton & b); static void button_OnLongPress(PButton & b); static void button_OnVLongPress(PButton & b); - static constexpr uint32_t BUTTON_Debounce = 40; // Debounce period to prevent flickering when pressing or releasing the button (in ms) - static constexpr uint32_t BUTTON_DblClickDelay = 250; // Max period between clicks for a double click event (in ms) - static constexpr uint32_t BUTTON_LongPressDelay = 750; // Hold period for a long press event (in ms) - static constexpr uint32_t BUTTON_VLongPressDelay = 9000; // Hold period for a very long press event (in ms) + static constexpr uint32_t BUTTON_Debounce = 40; // Debounce period to prevent flickering when pressing or releasing the button (in ms) + static constexpr uint32_t BUTTON_DblClickDelay = 250; // Max period between clicks for a double click event (in ms) + static constexpr uint32_t BUTTON_LongPressDelay = 9500; // Hold period for a long press event (in ms) - 10 seconds + static constexpr uint32_t BUTTON_VLongPressDelay = 20000; // Hold period for a very long press event (in ms) - 20 seconds // healthcheck #ifdef EMSESP_PINGTEST