#pragma once #include namespace outlet { // clang-format off enum class PowerState{ Invalid, On, Off, PowerCycle, }; enum class ReceptacleType{ Invalid, NEMA_5_15R, NEMA_5_20R, NEMA_L5_20R, NEMA_L5_30R, NEMA_L6_20R, NEMA_L6_30R, IEC_60320_C13, IEC_60320_C19, CEE_7_Type_E, CEE_7_Type_F, SEV_1011_TYPE_12, SEV_1011_TYPE_23, BS_1363_Type_G, BusConnection, }; enum class VoltageType{ Invalid, AC, DC, }; NLOHMANN_JSON_SERIALIZE_ENUM(PowerState, { {PowerState::Invalid, "Invalid"}, {PowerState::On, "On"}, {PowerState::Off, "Off"}, {PowerState::PowerCycle, "PowerCycle"}, }); NLOHMANN_JSON_SERIALIZE_ENUM(ReceptacleType, { {ReceptacleType::Invalid, "Invalid"}, {ReceptacleType::NEMA_5_15R, "NEMA_5_15R"}, {ReceptacleType::NEMA_5_20R, "NEMA_5_20R"}, {ReceptacleType::NEMA_L5_20R, "NEMA_L5_20R"}, {ReceptacleType::NEMA_L5_30R, "NEMA_L5_30R"}, {ReceptacleType::NEMA_L6_20R, "NEMA_L6_20R"}, {ReceptacleType::NEMA_L6_30R, "NEMA_L6_30R"}, {ReceptacleType::IEC_60320_C13, "IEC_60320_C13"}, {ReceptacleType::IEC_60320_C19, "IEC_60320_C19"}, {ReceptacleType::CEE_7_Type_E, "CEE_7_Type_E"}, {ReceptacleType::CEE_7_Type_F, "CEE_7_Type_F"}, {ReceptacleType::SEV_1011_TYPE_12, "SEV_1011_TYPE_12"}, {ReceptacleType::SEV_1011_TYPE_23, "SEV_1011_TYPE_23"}, {ReceptacleType::BS_1363_Type_G, "BS_1363_Type_G"}, {ReceptacleType::BusConnection, "BusConnection"}, }); NLOHMANN_JSON_SERIALIZE_ENUM(VoltageType, { {VoltageType::Invalid, "Invalid"}, {VoltageType::AC, "AC"}, {VoltageType::DC, "DC"}, }); } // clang-format on