1*0ec8b83dSEd Tanous #pragma once 2*0ec8b83dSEd Tanous #include <nlohmann/json.hpp> 3*0ec8b83dSEd Tanous 4*0ec8b83dSEd Tanous namespace power_supply 5*0ec8b83dSEd Tanous { 6*0ec8b83dSEd Tanous // clang-format off 7*0ec8b83dSEd Tanous 8*0ec8b83dSEd Tanous enum class PowerSupplyType{ 9*0ec8b83dSEd Tanous Invalid, 10*0ec8b83dSEd Tanous AC, 11*0ec8b83dSEd Tanous DC, 12*0ec8b83dSEd Tanous ACorDC, 13*0ec8b83dSEd Tanous DCRegulator, 14*0ec8b83dSEd Tanous }; 15*0ec8b83dSEd Tanous 16*0ec8b83dSEd Tanous enum class LineStatus{ 17*0ec8b83dSEd Tanous Invalid, 18*0ec8b83dSEd Tanous Normal, 19*0ec8b83dSEd Tanous LossOfInput, 20*0ec8b83dSEd Tanous OutOfRange, 21*0ec8b83dSEd Tanous }; 22*0ec8b83dSEd Tanous 23*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PowerSupplyType, { 24*0ec8b83dSEd Tanous {PowerSupplyType::Invalid, "Invalid"}, 25*0ec8b83dSEd Tanous {PowerSupplyType::AC, "AC"}, 26*0ec8b83dSEd Tanous {PowerSupplyType::DC, "DC"}, 27*0ec8b83dSEd Tanous {PowerSupplyType::ACorDC, "ACorDC"}, 28*0ec8b83dSEd Tanous {PowerSupplyType::DCRegulator, "DCRegulator"}, 29*0ec8b83dSEd Tanous }); 30*0ec8b83dSEd Tanous 31*0ec8b83dSEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(LineStatus, { 32*0ec8b83dSEd Tanous {LineStatus::Invalid, "Invalid"}, 33*0ec8b83dSEd Tanous {LineStatus::Normal, "Normal"}, 34*0ec8b83dSEd Tanous {LineStatus::LossOfInput, "LossOfInput"}, 35*0ec8b83dSEd Tanous {LineStatus::OutOfRange, "OutOfRange"}, 36*0ec8b83dSEd Tanous }); 37*0ec8b83dSEd Tanous 38*0ec8b83dSEd Tanous } 39*0ec8b83dSEd Tanous // clang-format on 40