1
0
mirror of https://github.com/s00500/ESPUI.git synced 2024-11-24 17:30:55 +00:00

Fixed bug that caused a crash when sending graphpoint updates to multiple browsers.

This commit is contained in:
Martin Mueller 2022-09-22 09:36:12 -04:00
parent a18254b16b
commit 1595b3bd04

View File

@ -857,19 +857,24 @@ void ESPUIClass::clearGraph(uint16_t id, int clientId) { }
void ESPUIClass::addGraphPoint(uint16_t id, int nValue, int clientId) void ESPUIClass::addGraphPoint(uint16_t id, int nValue, int clientId)
{ {
Control* control = getControl(id); do // once
if (!control)
{ {
return; Control* control = getControl(id);
} if (!control)
{
break;
}
DynamicJsonDocument document(jsonUpdateDocumentSize); DynamicJsonDocument document(jsonUpdateDocumentSize);
JsonObject root = document.to<JsonObject>(); JsonObject root = document.to<JsonObject>();
root[F("type")] = (int)ControlType::GraphPoint; root[F("type")] = (int)ControlType::GraphPoint;
root[F("value")] = nValue; root[F("value")] = nValue;
root[F("id")] = control->id; root[F("id")] = control->id;
SendJsonDocToWebSocket(document, clientId);
SendJsonDocToWebSocket(document, clientId);
} while(false);
} }
bool ESPUIClass::SendJsonDocToWebSocket(ArduinoJson::DynamicJsonDocument& document, uint16_t clientId) bool ESPUIClass::SendJsonDocToWebSocket(ArduinoJson::DynamicJsonDocument& document, uint16_t clientId)
@ -885,9 +890,9 @@ bool ESPUIClass::SendJsonDocToWebSocket(ArduinoJson::DynamicJsonDocument& docume
} }
else else
{ {
for(auto& CurrentClient : MapOfClients) for(auto CurrentClient : MapOfClients)
{ {
Response |= MapOfClients[clientId]->SendJsonDocToWebSocket(document); Response |= CurrentClient.second->SendJsonDocToWebSocket(document);
} }
} }