#include "CommandHandler.h" #include "Arduino.h" #include "ArduinoJson.h" CommandHandler::CommandHandler(DisplayProxy *display) { this->display = display; } bool CommandHandler::parseJSON(const char *cmd) { Serial.print("Handling: "); Serial.println(cmd); StaticJsonDocument<32> json; DeserializationError error = deserializeJson(json, cmd); // Test if parsing succeeds. if (error) { Serial.print(F("deserializeJson() failed: ")); Serial.println(error.c_str()); return false; } const char *command = json["cmd"]; if (strcmp("write", command) == 0 && json["text"].is() && json["x"].is() && json["y"].is()) { const char *text = json["text"]; int x = json["x"]; int y = json["y"]; this->debugWrite(x, y, text); this->display->write(x, y, text); return true; } if (strcmp("clear", command) == 0) { this->display->clear(); } if (strcmp("offset", command) == 0) { int x = json["x"]; int y = json["y"]; debugWrite(x,y,"offset unhandled"); //this->display->setOffset(x, y); } return true; } void CommandHandler::debugWrite(int x, int y, const char *text) { Serial.print(F("Writing (")); Serial.print(x); Serial.print(","); Serial.print(y); Serial.print("): "); Serial.println(text); }