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