1853c0dc5SEd Tanous #pragma once 2853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3853c0dc5SEd Tanous 4853c0dc5SEd Tanous namespace control 5853c0dc5SEd Tanous { 6853c0dc5SEd Tanous // clang-format off 7853c0dc5SEd Tanous 8853c0dc5SEd Tanous enum class ControlType{ 9853c0dc5SEd Tanous Invalid, 10853c0dc5SEd Tanous Temperature, 11853c0dc5SEd Tanous Power, 12853c0dc5SEd Tanous Frequency, 13853c0dc5SEd Tanous FrequencyMHz, 14853c0dc5SEd Tanous Pressure, 15*f263e09cSEd Tanous PressurekPa, 16*f263e09cSEd Tanous Valve, 17853c0dc5SEd Tanous }; 18853c0dc5SEd Tanous 19853c0dc5SEd Tanous enum class SetPointType{ 20853c0dc5SEd Tanous Invalid, 21853c0dc5SEd Tanous Single, 22853c0dc5SEd Tanous Range, 23853c0dc5SEd Tanous }; 24853c0dc5SEd Tanous 25853c0dc5SEd Tanous enum class ControlMode{ 26853c0dc5SEd Tanous Invalid, 27853c0dc5SEd Tanous Automatic, 28853c0dc5SEd Tanous Override, 29853c0dc5SEd Tanous Manual, 30853c0dc5SEd Tanous Disabled, 31853c0dc5SEd Tanous }; 32853c0dc5SEd Tanous 33853c0dc5SEd Tanous enum class ImplementationType{ 34853c0dc5SEd Tanous Invalid, 35853c0dc5SEd Tanous Programmable, 36853c0dc5SEd Tanous Direct, 37853c0dc5SEd Tanous Monitored, 38853c0dc5SEd Tanous }; 39853c0dc5SEd Tanous 40853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ControlType, { 41853c0dc5SEd Tanous {ControlType::Invalid, "Invalid"}, 42853c0dc5SEd Tanous {ControlType::Temperature, "Temperature"}, 43853c0dc5SEd Tanous {ControlType::Power, "Power"}, 44853c0dc5SEd Tanous {ControlType::Frequency, "Frequency"}, 45853c0dc5SEd Tanous {ControlType::FrequencyMHz, "FrequencyMHz"}, 46853c0dc5SEd Tanous {ControlType::Pressure, "Pressure"}, 47*f263e09cSEd Tanous {ControlType::PressurekPa, "PressurekPa"}, 48*f263e09cSEd Tanous {ControlType::Valve, "Valve"}, 49853c0dc5SEd Tanous }); 50853c0dc5SEd Tanous 51853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SetPointType, { 52853c0dc5SEd Tanous {SetPointType::Invalid, "Invalid"}, 53853c0dc5SEd Tanous {SetPointType::Single, "Single"}, 54853c0dc5SEd Tanous {SetPointType::Range, "Range"}, 55853c0dc5SEd Tanous }); 56853c0dc5SEd Tanous 57853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ControlMode, { 58853c0dc5SEd Tanous {ControlMode::Invalid, "Invalid"}, 59853c0dc5SEd Tanous {ControlMode::Automatic, "Automatic"}, 60853c0dc5SEd Tanous {ControlMode::Override, "Override"}, 61853c0dc5SEd Tanous {ControlMode::Manual, "Manual"}, 62853c0dc5SEd Tanous {ControlMode::Disabled, "Disabled"}, 63853c0dc5SEd Tanous }); 64853c0dc5SEd Tanous 65853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ImplementationType, { 66853c0dc5SEd Tanous {ImplementationType::Invalid, "Invalid"}, 67853c0dc5SEd Tanous {ImplementationType::Programmable, "Programmable"}, 68853c0dc5SEd Tanous {ImplementationType::Direct, "Direct"}, 69853c0dc5SEd Tanous {ImplementationType::Monitored, "Monitored"}, 70853c0dc5SEd Tanous }); 71853c0dc5SEd Tanous 72853c0dc5SEd Tanous } 73853c0dc5SEd Tanous // clang-format on 74