#include #include "Rc.h" namespace SerialInput { void runJsonCommands(const char* cmd) { String origCmd = String(cmd); StaticJsonDocument<512> jsonArray; DeserializationError err = deserializeJson(jsonArray, cmd); if (err == DeserializationError::Ok) { JsonArray array = jsonArray.as(); for (JsonVariant jsonDoc : array) { if (jsonDoc.containsKey("rcSwitch")) { Rc::runRcSwitchCommand(jsonDoc["rcSwitch"]); serializeJson(jsonDoc, Serial); Serial.println(); } } } else { Serial.print(err.c_str()); Serial.print(": "); Serial.println(origCmd); } } void readCommand() { if (Serial.available() > 0) { String cmd = Serial.readStringUntil('\n'); if (cmd == "reset") { Serial.println("resetting..."); delay(200); digitalWrite(RESET_PIN, LOW); Serial.println("resetting failed"); } if (cmd.endsWith(",")) { cmd = cmd.substring(0, cmd.lastIndexOf(',')); } cmd = "[" + cmd + "]"; runJsonCommands(cmd.c_str()); } } }