diff --git a/main/bobbyquickactions.h b/main/bobbyquickactions.h index 53dd84e..815a589 100644 --- a/main/bobbyquickactions.h +++ b/main/bobbyquickactions.h @@ -2,9 +2,9 @@ // 3rdparty lib includes #include -#include // local includes +#include "bobbytypesafeenum.h" #include "bobbybuttons.h" #define BobbyQuickActionsValues(x) \ @@ -18,7 +18,7 @@ x(HUPE) \ x(COMPRESSOR_TOGGLE) -DECLARE_TYPESAFE_ENUM(BobbyQuickActions, : uint8_t, BobbyQuickActionsValues) +DECLARE_BOBBYTYPESAFE_ENUM(BobbyQuickActions, : uint8_t, BobbyQuickActionsValues) namespace quickactions { diff --git a/main/cloud.cpp b/main/cloud.cpp index dbb414e..946fb4a 100644 --- a/main/cloud.cpp +++ b/main/cloud.cpp @@ -148,8 +148,6 @@ toArduinoJson(std::string_view key, T value, T defaultValue, JsonObject &object) template typename std::enable_if< - std::is_same_v || - std::is_same_v || std::is_same_v || std::is_same_v || std::is_same_v || @@ -158,6 +156,24 @@ typename std::enable_if< std::is_same_v , void>::type toArduinoJson(std::string_view key, T value, T defaultValue, JsonObject &object) +{ + object["n"] = key; + object["v"] = std::to_underlying(value); + object["d"] = std::to_underlying(defaultValue); + + JsonArray enumObject = object.createNestedArray("e"); + + iterateEnum::iterate([&](T enum_value, const auto &string_value){ + enumObject.add(toString(enum_value)); + }); +} + +template +typename std::enable_if< + std::is_same_v || + std::is_same_v + , void>::type +toArduinoJson(std::string_view key, T value, T defaultValue, JsonObject &object) { object["n"] = key; object["v"] = std::to_underlying(value);