| #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 |