1 #pragma once 2 #include <nlohmann/json.hpp> 3 4 namespace control 5 { 6 // clang-format off 7 8 enum class ControlType{ 9 Invalid, 10 Temperature, 11 Power, 12 Frequency, 13 FrequencyMHz, 14 Pressure, 15 PressurekPa, 16 Valve, 17 }; 18 19 enum class SetPointType{ 20 Invalid, 21 Single, 22 Range, 23 }; 24 25 enum class ControlMode{ 26 Invalid, 27 Automatic, 28 Override, 29 Manual, 30 Disabled, 31 }; 32 33 enum class ImplementationType{ 34 Invalid, 35 Programmable, 36 Direct, 37 Monitored, 38 }; 39 40 NLOHMANN_JSON_SERIALIZE_ENUM(ControlType, { 41 {ControlType::Invalid, "Invalid"}, 42 {ControlType::Temperature, "Temperature"}, 43 {ControlType::Power, "Power"}, 44 {ControlType::Frequency, "Frequency"}, 45 {ControlType::FrequencyMHz, "FrequencyMHz"}, 46 {ControlType::Pressure, "Pressure"}, 47 {ControlType::PressurekPa, "PressurekPa"}, 48 {ControlType::Valve, "Valve"}, 49 }); 50 51 NLOHMANN_JSON_SERIALIZE_ENUM(SetPointType, { 52 {SetPointType::Invalid, "Invalid"}, 53 {SetPointType::Single, "Single"}, 54 {SetPointType::Range, "Range"}, 55 }); 56 57 NLOHMANN_JSON_SERIALIZE_ENUM(ControlMode, { 58 {ControlMode::Invalid, "Invalid"}, 59 {ControlMode::Automatic, "Automatic"}, 60 {ControlMode::Override, "Override"}, 61 {ControlMode::Manual, "Manual"}, 62 {ControlMode::Disabled, "Disabled"}, 63 }); 64 65 NLOHMANN_JSON_SERIALIZE_ENUM(ImplementationType, { 66 {ImplementationType::Invalid, "Invalid"}, 67 {ImplementationType::Programmable, "Programmable"}, 68 {ImplementationType::Direct, "Direct"}, 69 {ImplementationType::Monitored, "Monitored"}, 70 }); 71 72 } 73 // clang-format on 74