1*853c0dc5SEd Tanous #pragma once 2*853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3*853c0dc5SEd Tanous 4*853c0dc5SEd Tanous namespace outlet 5*853c0dc5SEd Tanous { 6*853c0dc5SEd Tanous // clang-format off 7*853c0dc5SEd Tanous 8*853c0dc5SEd Tanous enum class PowerState{ 9*853c0dc5SEd Tanous Invalid, 10*853c0dc5SEd Tanous On, 11*853c0dc5SEd Tanous Off, 12*853c0dc5SEd Tanous PowerCycle, 13*853c0dc5SEd Tanous }; 14*853c0dc5SEd Tanous 15*853c0dc5SEd Tanous enum class ReceptacleType{ 16*853c0dc5SEd Tanous Invalid, 17*853c0dc5SEd Tanous NEMA_5_15R, 18*853c0dc5SEd Tanous NEMA_5_20R, 19*853c0dc5SEd Tanous NEMA_L5_20R, 20*853c0dc5SEd Tanous NEMA_L5_30R, 21*853c0dc5SEd Tanous NEMA_L6_20R, 22*853c0dc5SEd Tanous NEMA_L6_30R, 23*853c0dc5SEd Tanous IEC_60320_C13, 24*853c0dc5SEd Tanous IEC_60320_C19, 25*853c0dc5SEd Tanous CEE_7_Type_E, 26*853c0dc5SEd Tanous CEE_7_Type_F, 27*853c0dc5SEd Tanous SEV_1011_TYPE_12, 28*853c0dc5SEd Tanous SEV_1011_TYPE_23, 29*853c0dc5SEd Tanous BS_1363_Type_G, 30*853c0dc5SEd Tanous BusConnection, 31*853c0dc5SEd Tanous }; 32*853c0dc5SEd Tanous 33*853c0dc5SEd Tanous enum class VoltageType{ 34*853c0dc5SEd Tanous Invalid, 35*853c0dc5SEd Tanous AC, 36*853c0dc5SEd Tanous DC, 37*853c0dc5SEd Tanous }; 38*853c0dc5SEd Tanous 39*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerState, { 40*853c0dc5SEd Tanous {PowerState::Invalid, "Invalid"}, 41*853c0dc5SEd Tanous {PowerState::On, "On"}, 42*853c0dc5SEd Tanous {PowerState::Off, "Off"}, 43*853c0dc5SEd Tanous {PowerState::PowerCycle, "PowerCycle"}, 44*853c0dc5SEd Tanous }); 45*853c0dc5SEd Tanous 46*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ReceptacleType, { 47*853c0dc5SEd Tanous {ReceptacleType::Invalid, "Invalid"}, 48*853c0dc5SEd Tanous {ReceptacleType::NEMA_5_15R, "NEMA_5_15R"}, 49*853c0dc5SEd Tanous {ReceptacleType::NEMA_5_20R, "NEMA_5_20R"}, 50*853c0dc5SEd Tanous {ReceptacleType::NEMA_L5_20R, "NEMA_L5_20R"}, 51*853c0dc5SEd Tanous {ReceptacleType::NEMA_L5_30R, "NEMA_L5_30R"}, 52*853c0dc5SEd Tanous {ReceptacleType::NEMA_L6_20R, "NEMA_L6_20R"}, 53*853c0dc5SEd Tanous {ReceptacleType::NEMA_L6_30R, "NEMA_L6_30R"}, 54*853c0dc5SEd Tanous {ReceptacleType::IEC_60320_C13, "IEC_60320_C13"}, 55*853c0dc5SEd Tanous {ReceptacleType::IEC_60320_C19, "IEC_60320_C19"}, 56*853c0dc5SEd Tanous {ReceptacleType::CEE_7_Type_E, "CEE_7_Type_E"}, 57*853c0dc5SEd Tanous {ReceptacleType::CEE_7_Type_F, "CEE_7_Type_F"}, 58*853c0dc5SEd Tanous {ReceptacleType::SEV_1011_TYPE_12, "SEV_1011_TYPE_12"}, 59*853c0dc5SEd Tanous {ReceptacleType::SEV_1011_TYPE_23, "SEV_1011_TYPE_23"}, 60*853c0dc5SEd Tanous {ReceptacleType::BS_1363_Type_G, "BS_1363_Type_G"}, 61*853c0dc5SEd Tanous {ReceptacleType::BusConnection, "BusConnection"}, 62*853c0dc5SEd Tanous }); 63*853c0dc5SEd Tanous 64*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(VoltageType, { 65*853c0dc5SEd Tanous {VoltageType::Invalid, "Invalid"}, 66*853c0dc5SEd Tanous {VoltageType::AC, "AC"}, 67*853c0dc5SEd Tanous {VoltageType::DC, "DC"}, 68*853c0dc5SEd Tanous }); 69*853c0dc5SEd Tanous 70*853c0dc5SEd Tanous } 71*853c0dc5SEd Tanous // clang-format on 72