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