blob: 5613d3a32459caa45f71515ad3f63e9709aa6a4f [file] [log] [blame]
#pragma once
#include <cstdint>
#include <nlohmann/json.hpp>
namespace circuit
{
// clang-format off
enum class PowerState : std::uint8_t{
Invalid,
On,
Off,
PowerCycle,
};
enum class BreakerStates : std::uint8_t{
Invalid,
Normal,
Tripped,
Off,
};
enum class PowerRestorePolicyTypes : std::uint8_t{
Invalid,
AlwaysOn,
AlwaysOff,
LastState,
};
enum class PhaseWiringType : std::uint8_t{
Invalid,
OnePhase3Wire,
TwoPhase3Wire,
OneOrTwoPhase3Wire,
TwoPhase4Wire,
ThreePhase4Wire,
ThreePhase5Wire,
};
enum class NominalVoltageType : std::uint8_t{
Invalid,
AC100To127V,
AC100To240V,
AC100To277V,
AC120V,
AC200To240V,
AC200To277V,
AC208V,
AC230V,
AC240V,
AC240AndDC380V,
AC277V,
AC277AndDC380V,
AC400V,
AC480V,
DC48V,
DC240V,
DC380V,
DCNeg48V,
DC16V,
DC12V,
DC9V,
DC5V,
DC3_3V,
DC1_8V,
};
enum class PlugType : std::uint8_t{
Invalid,
NEMA_5_15P,
NEMA_L5_15P,
NEMA_5_20P,
NEMA_L5_20P,
NEMA_L5_30P,
NEMA_6_15P,
NEMA_L6_15P,
NEMA_6_20P,
NEMA_L6_20P,
NEMA_L6_30P,
NEMA_L14_20P,
NEMA_L14_30P,
NEMA_L15_20P,
NEMA_L15_30P,
NEMA_L21_20P,
NEMA_L21_30P,
NEMA_L22_20P,
NEMA_L22_30P,
California_CS8265,
California_CS8365,
IEC_60320_C14,
IEC_60320_C20,
IEC_60309_316P6,
IEC_60309_332P6,
IEC_60309_363P6,
IEC_60309_516P6,
IEC_60309_532P6,
IEC_60309_563P6,
IEC_60309_460P9,
IEC_60309_560P9,
Field_208V_3P4W_60A,
Field_400V_3P5W_32A,
};
enum class CircuitType : std::uint8_t{
Invalid,
Mains,
Branch,
Subfeed,
Feeder,
Bus,
};
enum class VoltageType : std::uint8_t{
Invalid,
AC,
DC,
};
NLOHMANN_JSON_SERIALIZE_ENUM(PowerState, {
{PowerState::Invalid, "Invalid"},
{PowerState::On, "On"},
{PowerState::Off, "Off"},
{PowerState::PowerCycle, "PowerCycle"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(BreakerStates, {
{BreakerStates::Invalid, "Invalid"},
{BreakerStates::Normal, "Normal"},
{BreakerStates::Tripped, "Tripped"},
{BreakerStates::Off, "Off"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(PowerRestorePolicyTypes, {
{PowerRestorePolicyTypes::Invalid, "Invalid"},
{PowerRestorePolicyTypes::AlwaysOn, "AlwaysOn"},
{PowerRestorePolicyTypes::AlwaysOff, "AlwaysOff"},
{PowerRestorePolicyTypes::LastState, "LastState"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(PhaseWiringType, {
{PhaseWiringType::Invalid, "Invalid"},
{PhaseWiringType::OnePhase3Wire, "OnePhase3Wire"},
{PhaseWiringType::TwoPhase3Wire, "TwoPhase3Wire"},
{PhaseWiringType::OneOrTwoPhase3Wire, "OneOrTwoPhase3Wire"},
{PhaseWiringType::TwoPhase4Wire, "TwoPhase4Wire"},
{PhaseWiringType::ThreePhase4Wire, "ThreePhase4Wire"},
{PhaseWiringType::ThreePhase5Wire, "ThreePhase5Wire"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(NominalVoltageType, {
{NominalVoltageType::Invalid, "Invalid"},
{NominalVoltageType::AC100To127V, "AC100To127V"},
{NominalVoltageType::AC100To240V, "AC100To240V"},
{NominalVoltageType::AC100To277V, "AC100To277V"},
{NominalVoltageType::AC120V, "AC120V"},
{NominalVoltageType::AC200To240V, "AC200To240V"},
{NominalVoltageType::AC200To277V, "AC200To277V"},
{NominalVoltageType::AC208V, "AC208V"},
{NominalVoltageType::AC230V, "AC230V"},
{NominalVoltageType::AC240V, "AC240V"},
{NominalVoltageType::AC240AndDC380V, "AC240AndDC380V"},
{NominalVoltageType::AC277V, "AC277V"},
{NominalVoltageType::AC277AndDC380V, "AC277AndDC380V"},
{NominalVoltageType::AC400V, "AC400V"},
{NominalVoltageType::AC480V, "AC480V"},
{NominalVoltageType::DC48V, "DC48V"},
{NominalVoltageType::DC240V, "DC240V"},
{NominalVoltageType::DC380V, "DC380V"},
{NominalVoltageType::DCNeg48V, "DCNeg48V"},
{NominalVoltageType::DC16V, "DC16V"},
{NominalVoltageType::DC12V, "DC12V"},
{NominalVoltageType::DC9V, "DC9V"},
{NominalVoltageType::DC5V, "DC5V"},
{NominalVoltageType::DC3_3V, "DC3_3V"},
{NominalVoltageType::DC1_8V, "DC1_8V"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(PlugType, {
{PlugType::Invalid, "Invalid"},
{PlugType::NEMA_5_15P, "NEMA_5_15P"},
{PlugType::NEMA_L5_15P, "NEMA_L5_15P"},
{PlugType::NEMA_5_20P, "NEMA_5_20P"},
{PlugType::NEMA_L5_20P, "NEMA_L5_20P"},
{PlugType::NEMA_L5_30P, "NEMA_L5_30P"},
{PlugType::NEMA_6_15P, "NEMA_6_15P"},
{PlugType::NEMA_L6_15P, "NEMA_L6_15P"},
{PlugType::NEMA_6_20P, "NEMA_6_20P"},
{PlugType::NEMA_L6_20P, "NEMA_L6_20P"},
{PlugType::NEMA_L6_30P, "NEMA_L6_30P"},
{PlugType::NEMA_L14_20P, "NEMA_L14_20P"},
{PlugType::NEMA_L14_30P, "NEMA_L14_30P"},
{PlugType::NEMA_L15_20P, "NEMA_L15_20P"},
{PlugType::NEMA_L15_30P, "NEMA_L15_30P"},
{PlugType::NEMA_L21_20P, "NEMA_L21_20P"},
{PlugType::NEMA_L21_30P, "NEMA_L21_30P"},
{PlugType::NEMA_L22_20P, "NEMA_L22_20P"},
{PlugType::NEMA_L22_30P, "NEMA_L22_30P"},
{PlugType::California_CS8265, "California_CS8265"},
{PlugType::California_CS8365, "California_CS8365"},
{PlugType::IEC_60320_C14, "IEC_60320_C14"},
{PlugType::IEC_60320_C20, "IEC_60320_C20"},
{PlugType::IEC_60309_316P6, "IEC_60309_316P6"},
{PlugType::IEC_60309_332P6, "IEC_60309_332P6"},
{PlugType::IEC_60309_363P6, "IEC_60309_363P6"},
{PlugType::IEC_60309_516P6, "IEC_60309_516P6"},
{PlugType::IEC_60309_532P6, "IEC_60309_532P6"},
{PlugType::IEC_60309_563P6, "IEC_60309_563P6"},
{PlugType::IEC_60309_460P9, "IEC_60309_460P9"},
{PlugType::IEC_60309_560P9, "IEC_60309_560P9"},
{PlugType::Field_208V_3P4W_60A, "Field_208V_3P4W_60A"},
{PlugType::Field_400V_3P5W_32A, "Field_400V_3P5W_32A"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(CircuitType, {
{CircuitType::Invalid, "Invalid"},
{CircuitType::Mains, "Mains"},
{CircuitType::Branch, "Branch"},
{CircuitType::Subfeed, "Subfeed"},
{CircuitType::Feeder, "Feeder"},
{CircuitType::Bus, "Bus"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(VoltageType, {
{VoltageType::Invalid, "Invalid"},
{VoltageType::AC, "AC"},
{VoltageType::DC, "DC"},
});
} // namespace circuit
// clang-format on