blob: 417ff48e8a5dae6cbd27f455d8d2a04fe162bcdb [file] [log] [blame]
#pragma once
#include <cstdint>
#include <nlohmann/json.hpp>
namespace outlet
{
// clang-format off
enum class PowerState : std::uint8_t{
Invalid,
On,
Off,
PowerCycle,
};
enum class ReceptacleType : std::uint8_t{
Invalid,
NEMA_5_15R,
NEMA_5_20R,
NEMA_L5_20R,
NEMA_L5_30R,
NEMA_L6_20R,
NEMA_L6_30R,
IEC_60320_C13,
IEC_60320_C19,
CEE_7_Type_E,
CEE_7_Type_F,
SEV_1011_TYPE_12,
SEV_1011_TYPE_23,
BS_1363_Type_G,
BusConnection,
};
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(ReceptacleType, {
{ReceptacleType::Invalid, "Invalid"},
{ReceptacleType::NEMA_5_15R, "NEMA_5_15R"},
{ReceptacleType::NEMA_5_20R, "NEMA_5_20R"},
{ReceptacleType::NEMA_L5_20R, "NEMA_L5_20R"},
{ReceptacleType::NEMA_L5_30R, "NEMA_L5_30R"},
{ReceptacleType::NEMA_L6_20R, "NEMA_L6_20R"},
{ReceptacleType::NEMA_L6_30R, "NEMA_L6_30R"},
{ReceptacleType::IEC_60320_C13, "IEC_60320_C13"},
{ReceptacleType::IEC_60320_C19, "IEC_60320_C19"},
{ReceptacleType::CEE_7_Type_E, "CEE_7_Type_E"},
{ReceptacleType::CEE_7_Type_F, "CEE_7_Type_F"},
{ReceptacleType::SEV_1011_TYPE_12, "SEV_1011_TYPE_12"},
{ReceptacleType::SEV_1011_TYPE_23, "SEV_1011_TYPE_23"},
{ReceptacleType::BS_1363_Type_G, "BS_1363_Type_G"},
{ReceptacleType::BusConnection, "BusConnection"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(VoltageType, {
{VoltageType::Invalid, "Invalid"},
{VoltageType::AC, "AC"},
{VoltageType::DC, "DC"},
});
} // namespace outlet
// clang-format on