diff --git a/README.md b/README.md index 0896be5..8fb2e27 100644 --- a/README.md +++ b/README.md @@ -595,6 +595,17 @@ If you change something in HTML/CSS/JS and want to create a pull request, please do include the minified versions and corresponding C header files in your commits. (Do **NOT** commit all the minified versions for the non changed files) +# Experimental debugging environment using emulation on host + +It is possible to run or debug this library on a unix-like computer (Linux, +macOS, WSL) without flashing on hardware, and with your favourite debugging +tools (gdb, valgrind, ...). This is accomplished through the +esp8266/Arduino "emulation on host" environment. + +A fake AsyncWebserver library is needed because lwIP is not yet ported to +the emulation environment. Full instructions can be found in this project's +[readme page](https://github.com/d-a-v/emuAsync). + ## Changelog for 2.1: - Adds the ability to have inline styles for widgets and panels diff --git a/src/ESPUI.cpp b/src/ESPUI.cpp index e0cc394..b8978dc 100644 --- a/src/ESPUI.cpp +++ b/src/ESPUI.cpp @@ -784,9 +784,9 @@ void ESPUIClass::updateControl(Control* control, int clientId) root["visible"] = control->visible; root["color"] = (int)control->color; root["enabled"] = control->enabled; - if (control->panelStyle != 0) + if (control->panelStyle.length()) root["panelStyle"] = control->panelStyle; - if (control->elementStyle != 0) + if (control->elementStyle.length()) root["elementStyle"] = control->elementStyle; serializeJson(document, json); @@ -812,7 +812,7 @@ void ESPUIClass::updateControl(Control* control, int clientId) // function like this and it's clients array is private int tryId = 0; - for (size_t count = 0; count < this->ws->count();) + for (size_t count = 0; tryId < (int)this->ws->count() && count < this->ws->count();) { if (this->ws->hasClient(tryId)) { @@ -1014,7 +1014,7 @@ void ESPUIClass::addGraphPoint(uint16_t id, int nValue, int clientId) // function like this and it's clients array is private int tryId = 0; - for (size_t count = 0; count < this->ws->count();) + for (size_t count = 0; tryId < (int)this->ws->count() && count < this->ws->count();) { if (this->ws->hasClient(tryId)) { @@ -1120,9 +1120,9 @@ void ESPUIClass::prepareJSONChunk(AsyncWebSocketClient* client, uint16_t startin item["color"] = (int)control->color; item["visible"] = (int)control->visible; item["enabled"] = control->enabled; - if (control->panelStyle != 0) + if (control->panelStyle.length()) item["panelStyle"] = String(control->panelStyle); - if (control->elementStyle != 0) + if (control->elementStyle.length()) item["elementStyle"] = String(control->elementStyle); if (control->wide == true) item["wide"] = true;