fix crash

This commit is contained in:
cjkas 2026-03-18 08:27:03 +01:00
parent 88fdfa577a
commit 16175f2b9b
4 changed files with 8 additions and 3 deletions

View file

@ -77,7 +77,7 @@ void SocketEmitter::startup() {
} }
void SocketEmitter::begin() { void SocketEmitter::begin() {
sockServer.begin(); sockServer.begin();
sockServer.enableHeartbeat(20000, 10000, 3); sockServer.enableHeartbeat(3000, 2000, 2);
sockServer.onEvent(this->wsEvent); sockServer.onEvent(this->wsEvent);
Serial.println("Socket Server Started..."); Serial.println("Socket Server Started...");
//settings.printAvailHeap(); //settings.printAvailHeap();
@ -90,7 +90,7 @@ JsonSockEvent *SocketEmitter::beginEmit(const char *evt) {
this->json.beginEvent(&sockServer, evt, g_response, sizeof(g_response)); this->json.beginEvent(&sockServer, evt, g_response, sizeof(g_response));
return &this->json; return &this->json;
} }
void SocketEmitter::endEmit(uint8_t num) { this->json.endEvent(num); sockServer.loop(); } void SocketEmitter::endEmit(uint8_t num) { this->json.endEvent(num); esp_task_wdt_reset(); sockServer.loop(); }
void SocketEmitter::endEmitRoom(uint8_t room) { void SocketEmitter::endEmitRoom(uint8_t room) {
if(room < SOCK_MAX_ROOMS) { if(room < SOCK_MAX_ROOMS) {
room_t *r = &this->rooms[room]; room_t *r = &this->rooms[room];

View file

@ -46,6 +46,7 @@ void JsonResponse::endResponse() {
server->sendContent("", 0); server->sendContent("", 0);
} }
void JsonResponse::send() { void JsonResponse::send() {
esp_task_wdt_reset();
if(!this->_headersSent) server->send_P(200, "application/json", this->buff); if(!this->_headersSent) server->send_P(200, "application/json", this->buff);
else server->sendContent(this->buff); else server->sendContent(this->buff);
//Serial.printf("Sent %d bytes %d\n", strlen(this->buff), this->buffSize); //Serial.printf("Sent %d bytes %d\n", strlen(this->buff), this->buffSize);
@ -130,8 +131,9 @@ void JsonFormatter::addElem(const char *name, uint32_t nval) { sprintf(this->_nu
void JsonFormatter::addElem(const char *name, int16_t nval) { sprintf(this->_numbuff, "%d", nval); this->_appendNumber(name); } void JsonFormatter::addElem(const char *name, int16_t nval) { sprintf(this->_numbuff, "%d", nval); this->_appendNumber(name); }
void JsonFormatter::addElem(const char *name, uint16_t nval) { sprintf(this->_numbuff, "%u", nval); this->_appendNumber(name); } void JsonFormatter::addElem(const char *name, uint16_t nval) { sprintf(this->_numbuff, "%u", nval); this->_appendNumber(name); }
void JsonFormatter::addElem(const char *name, int64_t lval) { sprintf(this->_numbuff, "%lld", (long long)lval); this->_appendNumber(name); } void JsonFormatter::addElem(const char *name, int64_t lval) { sprintf(this->_numbuff, "%lld", (long long)lval); this->_appendNumber(name); }
void JsonFormatter::addElem(const char *name, uint64_t lval) { sprintf(this->_numbuff, "%llu", (unsigned long long)lval); this->_appendNumber(name); }
*/ */
void JsonFormatter::addElem(const char *name, uint64_t lval) { sprintf(this->_numbuff, "%llu", (unsigned long long)lval); this->_appendNumber(name); }
void JsonFormatter::addElem(const char *name, bool bval) { strcpy(this->_numbuff, bval ? "true" : "false"); this->_appendNumber(name); } void JsonFormatter::addElem(const char *name, bool bval) { strcpy(this->_numbuff, bval ? "true" : "false"); this->_appendNumber(name); }
void JsonFormatter::_safecat(const char *val, bool escape) { void JsonFormatter::_safecat(const char *val, bool escape) {

View file

@ -1,5 +1,6 @@
#include <WebServer.h> #include <WebServer.h>
#include <WebSocketsServer.h> #include <WebSocketsServer.h>
#include <esp_task_wdt.h>
#include "Somfy.h" #include "Somfy.h"
#ifndef wresp_h #ifndef wresp_h
#define wresp_h #define wresp_h
@ -51,6 +52,7 @@ class JsonFormatter {
void addElem(const char* name, uint32_t lval); void addElem(const char* name, uint32_t lval);
void addElem(const char* name, bool bval); void addElem(const char* name, bool bval);
void addElem(const char *name, const char *val); void addElem(const char *name, const char *val);
void addElem(const char* name, uint64_t lval);
}; };
class JsonResponse : public JsonFormatter { class JsonResponse : public JsonFormatter {
protected: protected:

View file

@ -249,6 +249,7 @@ void Web::handleController(WebServer &server) {
resp.addElem("maxGroupedShades", (uint8_t)SOMFY_MAX_GROUPED_SHADES); resp.addElem("maxGroupedShades", (uint8_t)SOMFY_MAX_GROUPED_SHADES);
resp.addElem("maxLinkedRemotes", (uint8_t)SOMFY_MAX_LINKED_REMOTES); resp.addElem("maxLinkedRemotes", (uint8_t)SOMFY_MAX_LINKED_REMOTES);
resp.addElem("startingAddress", (uint32_t)somfy.startingAddress); resp.addElem("startingAddress", (uint32_t)somfy.startingAddress);
resp.addElem("uptime", (uint64_t)millis());
resp.beginObject("transceiver"); resp.beginObject("transceiver");
somfy.transceiver.toJSON(resp); somfy.transceiver.toJSON(resp);
resp.endObject(); resp.endObject();