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