1*853c0dc5SEd Tanous #pragma once 2*853c0dc5SEd Tanous #include <nlohmann/json.hpp> 3*853c0dc5SEd Tanous 4*853c0dc5SEd Tanous namespace serial_interface 5*853c0dc5SEd Tanous { 6*853c0dc5SEd Tanous // clang-format off 7*853c0dc5SEd Tanous 8*853c0dc5SEd Tanous enum class SignalType{ 9*853c0dc5SEd Tanous Invalid, 10*853c0dc5SEd Tanous Rs232, 11*853c0dc5SEd Tanous Rs485, 12*853c0dc5SEd Tanous }; 13*853c0dc5SEd Tanous 14*853c0dc5SEd Tanous enum class Parity{ 15*853c0dc5SEd Tanous Invalid, 16*853c0dc5SEd Tanous None, 17*853c0dc5SEd Tanous Even, 18*853c0dc5SEd Tanous Odd, 19*853c0dc5SEd Tanous Mark, 20*853c0dc5SEd Tanous Space, 21*853c0dc5SEd Tanous }; 22*853c0dc5SEd Tanous 23*853c0dc5SEd Tanous enum class FlowControl{ 24*853c0dc5SEd Tanous Invalid, 25*853c0dc5SEd Tanous None, 26*853c0dc5SEd Tanous Software, 27*853c0dc5SEd Tanous Hardware, 28*853c0dc5SEd Tanous }; 29*853c0dc5SEd Tanous 30*853c0dc5SEd Tanous enum class PinOut{ 31*853c0dc5SEd Tanous Invalid, 32*853c0dc5SEd Tanous Cisco, 33*853c0dc5SEd Tanous Cyclades, 34*853c0dc5SEd Tanous Digi, 35*853c0dc5SEd Tanous }; 36*853c0dc5SEd Tanous 37*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SignalType, { 38*853c0dc5SEd Tanous {SignalType::Invalid, "Invalid"}, 39*853c0dc5SEd Tanous {SignalType::Rs232, "Rs232"}, 40*853c0dc5SEd Tanous {SignalType::Rs485, "Rs485"}, 41*853c0dc5SEd Tanous }); 42*853c0dc5SEd Tanous 43*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(Parity, { 44*853c0dc5SEd Tanous {Parity::Invalid, "Invalid"}, 45*853c0dc5SEd Tanous {Parity::None, "None"}, 46*853c0dc5SEd Tanous {Parity::Even, "Even"}, 47*853c0dc5SEd Tanous {Parity::Odd, "Odd"}, 48*853c0dc5SEd Tanous {Parity::Mark, "Mark"}, 49*853c0dc5SEd Tanous {Parity::Space, "Space"}, 50*853c0dc5SEd Tanous }); 51*853c0dc5SEd Tanous 52*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(FlowControl, { 53*853c0dc5SEd Tanous {FlowControl::Invalid, "Invalid"}, 54*853c0dc5SEd Tanous {FlowControl::None, "None"}, 55*853c0dc5SEd Tanous {FlowControl::Software, "Software"}, 56*853c0dc5SEd Tanous {FlowControl::Hardware, "Hardware"}, 57*853c0dc5SEd Tanous }); 58*853c0dc5SEd Tanous 59*853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PinOut, { 60*853c0dc5SEd Tanous {PinOut::Invalid, "Invalid"}, 61*853c0dc5SEd Tanous {PinOut::Cisco, "Cisco"}, 62*853c0dc5SEd Tanous {PinOut::Cyclades, "Cyclades"}, 63*853c0dc5SEd Tanous {PinOut::Digi, "Digi"}, 64*853c0dc5SEd Tanous }); 65*853c0dc5SEd Tanous 66*853c0dc5SEd Tanous } 67*853c0dc5SEd Tanous // clang-format on 68