#pragma once #include #include class Protocol { protected: unsigned int no; public: constexpr Protocol(unsigned int protocol) : no(protocol) {} constexpr operator unsigned int() const { return no; } Protocol& setProtocol(unsigned int p) { no = p; return *this; } virtual void fromJson(JsonObjectConst& rcSwitch, RCSwitch& rcDevice) { unsigned int protocol = rcSwitch["protocol"]; rcDevice.setProtocol(protocol); rcDevice.send(rcSwitch["value"]); } virtual void toJson(unsigned long value, JsonDocument& jsonDoc) { JsonObject rcSwitch = jsonDoc.createNestedObject("rcSwitch"); rcSwitch["protocol"] = no; rcSwitch["value"] = value; } } fallbackProtocol{ 0 };