From 604cb9677601ae436802f61219588dfca2b5a6bb Mon Sep 17 00:00:00 2001 From: Mit4el Date: Fri, 29 Mar 2024 10:05:06 +0300 Subject: [PATCH] patch time-out WebSocket esp32 --- platformio.ini | 7 +++++++ tools/patch32_ws.py | 27 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 tools/patch32_ws.py diff --git a/platformio.ini b/platformio.ini index eaeb3c81..c28f99fe 100644 --- a/platformio.ini +++ b/platformio.ini @@ -180,6 +180,7 @@ build_src_filter = ${env:esp8266_16mb_fromitems.build_src_filter} [env:esp32_4mb] +extra_scripts = pre:tools/patch32_ws.py lib_deps = ${common_env_data.lib_deps_external} ${env:esp32_4mb_fromitems.lib_deps} @@ -200,6 +201,7 @@ build_src_filter = ${env:esp32_4mb_fromitems.build_src_filter} [env:esp32_4mb3f] +extra_scripts = pre:tools/patch32_ws.py lib_deps = ${common_env_data.lib_deps_external} ${env:esp32_4mb3f_fromitems.lib_deps} @@ -221,6 +223,7 @@ build_src_filter = ${env:esp32_4mb3f_fromitems.build_src_filter} [env:esp32cam_4mb] +extra_scripts = pre:tools/patch32_ws.py lib_deps = ${common_env_data.lib_deps_external} ${env:esp32cam_4mb_fromitems.lib_deps} @@ -244,6 +247,7 @@ build_src_filter = ${env:esp32cam_4mb_fromitems.build_src_filter} [env:esp32s2_4mb] +extra_scripts = pre:tools/patch32_ws.py lib_deps = ${common_env_data.lib_deps_external} ${env:esp32s2_4mb_fromitems.lib_deps} @@ -267,6 +271,7 @@ build_src_filter = ${env:esp32s2_4mb_fromitems.build_src_filter} [env:esp32c3m_4mb] +extra_scripts = pre:tools/patch32_ws.py lib_deps = ${common_env_data.lib_deps_external} ${env:esp32c3m_4mb_fromitems.lib_deps} @@ -289,6 +294,7 @@ build_src_filter = ${env:esp32c3m_4mb_fromitems.build_src_filter} [env:esp32s3_16mb] +extra_scripts = pre:tools/patch32_ws.py lib_deps = ${common_env_data.lib_deps_external} ${env:esp32s3_16mb_fromitems.lib_deps} @@ -313,6 +319,7 @@ build_src_filter = ${env:esp32s3_16mb_fromitems.build_src_filter} [env:esp32_16mb] +extra_scripts = pre:tools/patch32_ws.py lib_deps = ${common_env_data.lib_deps_external} ${env:esp32_16mb_fromitems.lib_deps} diff --git a/tools/patch32_ws.py b/tools/patch32_ws.py new file mode 100644 index 00000000..c30cfa43 --- /dev/null +++ b/tools/patch32_ws.py @@ -0,0 +1,27 @@ +# правим %USERPROFILE%\.platformio\packages\framework-arduinoespressif32\libraries\WiFi\src\WiFiClient.cpp 27-28 +# для уменьшения тайм-аута ВебСокетов +# #define WIFI_CLIENT_MAX_WRITE_RETRY (10) +# #define WIFI_CLIENT_SELECT_TIMEOUT_US (1000000) +# Прописать скрипт в platformio.ini внутри [env:esp32_4mb3f] написать extra_scripts = pre:tools/patch32_ws.py + +import os +import shutil +from sys import platform + +if platform == "linux" or platform == "linux2": + # linux + mainPyPath = '~/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiClient.cpp' +else: + # windows + mainPyPath = os.environ['USERPROFILE'] + '\\.platformio\\packages\\framework-arduinoespressif32\\libraries\\WiFi\\src\\WiFiClient.cpp' + +# print(mainPyPath) + +with open(mainPyPath) as fr: + oldData = fr.read() + if not 'if WIFI_CLIENT_MAX_WRITE_RETRY (10)' in oldData: + shutil.copyfile(mainPyPath, mainPyPath+'.bak') + newData = oldData.replace('#define WIFI_CLIENT_MAX_WRITE_RETRY (10)', '#define WIFI_CLIENT_MAX_WRITE_RETRY (2)') + newData = newData.replace('#define WIFI_CLIENT_SELECT_TIMEOUT_US (1000000)', '#define WIFI_CLIENT_SELECT_TIMEOUT_US (500000)') + with open(mainPyPath, 'w') as fw: + fw.write(newData) \ No newline at end of file