1853c0dc5SEd Tanous #pragma once 2853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3853c0dc5SEd Tanous 4853c0dc5SEd Tanous namespace outlet 5853c0dc5SEd Tanous { 6853c0dc5SEd Tanous // clang-format off 7853c0dc5SEd Tanous 8*f263e09cSEd Tanous enum class PowerState{ 9*f263e09cSEd Tanous Invalid, 10*f263e09cSEd Tanous On, 11*f263e09cSEd Tanous Off, 12*f263e09cSEd Tanous PowerCycle, 13*f263e09cSEd Tanous }; 14*f263e09cSEd Tanous 15853c0dc5SEd Tanous enum class ReceptacleType{ 16853c0dc5SEd Tanous Invalid, 17853c0dc5SEd Tanous NEMA_5_15R, 18853c0dc5SEd Tanous NEMA_5_20R, 19853c0dc5SEd Tanous NEMA_L5_20R, 20853c0dc5SEd Tanous NEMA_L5_30R, 21853c0dc5SEd Tanous NEMA_L6_20R, 22853c0dc5SEd Tanous NEMA_L6_30R, 23853c0dc5SEd Tanous IEC_60320_C13, 24853c0dc5SEd Tanous IEC_60320_C19, 25853c0dc5SEd Tanous CEE_7_Type_E, 26853c0dc5SEd Tanous CEE_7_Type_F, 27853c0dc5SEd Tanous SEV_1011_TYPE_12, 28853c0dc5SEd Tanous SEV_1011_TYPE_23, 29853c0dc5SEd Tanous BS_1363_Type_G, 30853c0dc5SEd Tanous BusConnection, 31853c0dc5SEd Tanous }; 32853c0dc5SEd Tanous 33853c0dc5SEd Tanous enum class VoltageType{ 34853c0dc5SEd Tanous Invalid, 35853c0dc5SEd Tanous AC, 36853c0dc5SEd Tanous DC, 37853c0dc5SEd Tanous }; 38853c0dc5SEd Tanous 39*f263e09cSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerState, { 40*f263e09cSEd Tanous {PowerState::Invalid, "Invalid"}, 41*f263e09cSEd Tanous {PowerState::On, "On"}, 42*f263e09cSEd Tanous {PowerState::Off, "Off"}, 43*f263e09cSEd Tanous {PowerState::PowerCycle, "PowerCycle"}, 44*f263e09cSEd Tanous }); 45*f263e09cSEd Tanous 46853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ReceptacleType, { 47853c0dc5SEd Tanous {ReceptacleType::Invalid, "Invalid"}, 48853c0dc5SEd Tanous {ReceptacleType::NEMA_5_15R, "NEMA_5_15R"}, 49853c0dc5SEd Tanous {ReceptacleType::NEMA_5_20R, "NEMA_5_20R"}, 50853c0dc5SEd Tanous {ReceptacleType::NEMA_L5_20R, "NEMA_L5_20R"}, 51853c0dc5SEd Tanous {ReceptacleType::NEMA_L5_30R, "NEMA_L5_30R"}, 52853c0dc5SEd Tanous {ReceptacleType::NEMA_L6_20R, "NEMA_L6_20R"}, 53853c0dc5SEd Tanous {ReceptacleType::NEMA_L6_30R, "NEMA_L6_30R"}, 54853c0dc5SEd Tanous {ReceptacleType::IEC_60320_C13, "IEC_60320_C13"}, 55853c0dc5SEd Tanous {ReceptacleType::IEC_60320_C19, "IEC_60320_C19"}, 56853c0dc5SEd Tanous {ReceptacleType::CEE_7_Type_E, "CEE_7_Type_E"}, 57853c0dc5SEd Tanous {ReceptacleType::CEE_7_Type_F, "CEE_7_Type_F"}, 58853c0dc5SEd Tanous {ReceptacleType::SEV_1011_TYPE_12, "SEV_1011_TYPE_12"}, 59853c0dc5SEd Tanous {ReceptacleType::SEV_1011_TYPE_23, "SEV_1011_TYPE_23"}, 60853c0dc5SEd Tanous {ReceptacleType::BS_1363_Type_G, "BS_1363_Type_G"}, 61853c0dc5SEd Tanous {ReceptacleType::BusConnection, "BusConnection"}, 62853c0dc5SEd Tanous }); 63853c0dc5SEd Tanous 64853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(VoltageType, { 65853c0dc5SEd Tanous {VoltageType::Invalid, "Invalid"}, 66853c0dc5SEd Tanous {VoltageType::AC, "AC"}, 67853c0dc5SEd Tanous {VoltageType::DC, "DC"}, 68853c0dc5SEd Tanous }); 69853c0dc5SEd Tanous 70853c0dc5SEd Tanous } 71853c0dc5SEd Tanous // clang-format on 72