diff --git a/gateway/src/gateway.cpp b/gateway/src/gateway.cpp index 33287b8..6741fd3 100644 --- a/gateway/src/gateway.cpp +++ b/gateway/src/gateway.cpp @@ -31,16 +31,16 @@ void setup() { delay(1000); } -Protocol& findProtocol(unsigned int protocol) { +Protocol* findProtocol(unsigned int protocol) { switch (protocol) { case PROTOCOL_1: - return protocol1; + return &protocol1; case PROTOCOL_2: - return protocol2; + return &protocol2; case PROTOCOL_13: - return doorbell; + return &doorbell; default: - return fallbackProtocol.setProtocol(protocol); + return &fallbackProtocol.setProtocol(protocol); } } @@ -57,7 +57,7 @@ void readRcSwitch() { StaticJsonDocument<128> jsonDoc; auto p = findProtocol(mySwitch.getReceivedProtocol()); - p.toJson(value, jsonDoc); + p->toJson(value, jsonDoc); if (!jsonDoc.isNull()) { serializeJson(jsonDoc, Serial); Serial.println(); @@ -84,7 +84,7 @@ void runJsonCommand(char* cmd) { if (jsonDoc.containsKey("rcSwitch")) { JsonObjectConst rcSwitch = jsonDoc["rcSwitch"]; auto p = findProtocol(rcSwitch["protocol"]); - p.fromJson(rcSwitch, mySwitch); + p->fromJson(rcSwitch, mySwitch); serializeJson(jsonDoc, Serial); Serial.println(); Board::publishResponse(jsonDoc);