diff --git a/src/hasp_dispatch.cpp b/src/hasp_dispatch.cpp index 03dcd0b4..7e4a61e3 100644 --- a/src/hasp_dispatch.cpp +++ b/src/hasp_dispatch.cpp @@ -84,7 +84,7 @@ void dispatchJson(String & strPayload) strPayload.remove(strPayload.length() - 2, 2); strPayload.concat("]"); } - DynamicJsonDocument haspCommands(2048 + 1024); + DynamicJsonDocument haspCommands(2048 + 512); DeserializationError jsonError = deserializeJson(haspCommands, strPayload); if(jsonError) { // Couldn't parse incoming JSON command errorPrintln(String(F("JSON: %sFailed to parse incoming JSON command with error: ")) + @@ -92,8 +92,16 @@ void dispatchJson(String & strPayload) return; } - for(uint8_t i = 0; i < haspCommands.size(); i++) { - dispatchCommand(haspCommands[i]); + // Slow + // for(uint8_t i = 0; i < haspCommands.size(); i++) { + // dispatchCommand(haspCommands[i]); + //} + + // Get a reference to the root array + JsonArray arr = haspCommands.as(); + // Fast + for(JsonVariant command : arr) { + dispatchCommand(command.as()); } }