diff --git a/include/StandWebServer.h b/include/StandWebServer.h index 889347de..cbcbf1fe 100644 --- a/include/StandWebServer.h +++ b/include/StandWebServer.h @@ -23,5 +23,5 @@ extern void hexdump(const void* mem, uint32_t len, uint8_t cols); void sendFileToWs3(const String& filename, uint8_t num); void sendFileToWs4(const String& filename, uint8_t num); -void sendFileToWs5(const char* filename, uint8_t num); +void sendFileToWs5(const char* filename, uint8_t num, size_t frameSize); void sendMark(const char* filename, const char* mark, uint8_t num); \ No newline at end of file diff --git a/src/StandWebServer.cpp b/src/StandWebServer.cpp index 1938f6fd..6e5ba833 100644 --- a/src/StandWebServer.cpp +++ b/src/StandWebServer.cpp @@ -221,8 +221,8 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) } if (headerStr == "/config") { - sendFileToWs5("/widgets.json", num); - sendFileToWs5("/config.json", num); + sendFileToWs5("/widgets.json", num, 1024); + sendFileToWs5("/config.json", num, 1024); } if (headerStr == "/gifnoc") { @@ -284,9 +284,8 @@ void hexdump(const void* mem, uint32_t len, uint8_t cols = 16) { #endif //посылка данных из файла в бинарном виде -void sendFileToWs5(const char* filename, uint8_t num) { +void sendFileToWs5(const char* filename, uint8_t num, size_t frameSize) { sendMark(filename, "/st", num); - size_t ws_buffer = 1024; String path = filepath(filename); auto file = FileFS.open(path, "r"); if (!file) { @@ -295,7 +294,7 @@ void sendFileToWs5(const char* filename, uint8_t num) { } size_t fileSize = file.size(); SerialPrint(F("i"), F("FS"), "Send file '" + String(filename) + "', file size: " + String(fileSize)); - uint8_t payload[ws_buffer + 1]; + uint8_t payload[frameSize + 1]; int countRead = file.read(payload, sizeof(payload) - 1); while (countRead > 0) { payload[countRead] = 0;