blob: 18d2a0c380da2b28390e442f873ebb27c844b4d8 [file] [log] [blame]
#pragma once
#include <cstdint>
#include <nlohmann/json.hpp>
namespace control
{
// clang-format off
enum class ControlType : std::uint8_t{
Invalid,
Temperature,
Power,
Frequency,
FrequencyMHz,
Pressure,
PressurekPa,
Valve,
};
enum class SetPointType : std::uint8_t{
Invalid,
Single,
Range,
};
enum class ControlMode : std::uint8_t{
Invalid,
Automatic,
Override,
Manual,
Disabled,
};
enum class ImplementationType : std::uint8_t{
Invalid,
Programmable,
Direct,
Monitored,
};
NLOHMANN_JSON_SERIALIZE_ENUM(ControlType, {
{ControlType::Invalid, "Invalid"},
{ControlType::Temperature, "Temperature"},
{ControlType::Power, "Power"},
{ControlType::Frequency, "Frequency"},
{ControlType::FrequencyMHz, "FrequencyMHz"},
{ControlType::Pressure, "Pressure"},
{ControlType::PressurekPa, "PressurekPa"},
{ControlType::Valve, "Valve"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(SetPointType, {
{SetPointType::Invalid, "Invalid"},
{SetPointType::Single, "Single"},
{SetPointType::Range, "Range"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(ControlMode, {
{ControlMode::Invalid, "Invalid"},
{ControlMode::Automatic, "Automatic"},
{ControlMode::Override, "Override"},
{ControlMode::Manual, "Manual"},
{ControlMode::Disabled, "Disabled"},
});
NLOHMANN_JSON_SERIALIZE_ENUM(ImplementationType, {
{ImplementationType::Invalid, "Invalid"},
{ImplementationType::Programmable, "Programmable"},
{ImplementationType::Direct, "Direct"},
{ImplementationType::Monitored, "Monitored"},
});
} // namespace control
// clang-format on