1*40e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 2*40e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace serial_interface 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class SignalType{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous Rs232, 13853c0dc5SEd Tanous Rs485, 14853c0dc5SEd Tanous }; 15853c0dc5SEd Tanous 16853c0dc5SEd Tanous enum class Parity{ 17853c0dc5SEd Tanous Invalid, 18853c0dc5SEd Tanous None, 19853c0dc5SEd Tanous Even, 20853c0dc5SEd Tanous Odd, 21853c0dc5SEd Tanous Mark, 22853c0dc5SEd Tanous Space, 23853c0dc5SEd Tanous }; 24853c0dc5SEd Tanous 25853c0dc5SEd Tanous enum class FlowControl{ 26853c0dc5SEd Tanous Invalid, 27853c0dc5SEd Tanous None, 28853c0dc5SEd Tanous Software, 29853c0dc5SEd Tanous Hardware, 30853c0dc5SEd Tanous }; 31853c0dc5SEd Tanous 32853c0dc5SEd Tanous enum class PinOut{ 33853c0dc5SEd Tanous Invalid, 34853c0dc5SEd Tanous Cisco, 35853c0dc5SEd Tanous Cyclades, 36853c0dc5SEd Tanous Digi, 37853c0dc5SEd Tanous }; 38853c0dc5SEd Tanous 39853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(SignalType, { 40853c0dc5SEd Tanous {SignalType::Invalid, "Invalid"}, 41853c0dc5SEd Tanous {SignalType::Rs232, "Rs232"}, 42853c0dc5SEd Tanous {SignalType::Rs485, "Rs485"}, 43853c0dc5SEd Tanous }); 44853c0dc5SEd Tanous 45853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(Parity, { 46853c0dc5SEd Tanous {Parity::Invalid, "Invalid"}, 47853c0dc5SEd Tanous {Parity::None, "None"}, 48853c0dc5SEd Tanous {Parity::Even, "Even"}, 49853c0dc5SEd Tanous {Parity::Odd, "Odd"}, 50853c0dc5SEd Tanous {Parity::Mark, "Mark"}, 51853c0dc5SEd Tanous {Parity::Space, "Space"}, 52853c0dc5SEd Tanous }); 53853c0dc5SEd Tanous 54853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(FlowControl, { 55853c0dc5SEd Tanous {FlowControl::Invalid, "Invalid"}, 56853c0dc5SEd Tanous {FlowControl::None, "None"}, 57853c0dc5SEd Tanous {FlowControl::Software, "Software"}, 58853c0dc5SEd Tanous {FlowControl::Hardware, "Hardware"}, 59853c0dc5SEd Tanous }); 60853c0dc5SEd Tanous 61853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(PinOut, { 62853c0dc5SEd Tanous {PinOut::Invalid, "Invalid"}, 63853c0dc5SEd Tanous {PinOut::Cisco, "Cisco"}, 64853c0dc5SEd Tanous {PinOut::Cyclades, "Cyclades"}, 65853c0dc5SEd Tanous {PinOut::Digi, "Digi"}, 66853c0dc5SEd Tanous }); 67853c0dc5SEd Tanous 68853c0dc5SEd Tanous } 69853c0dc5SEd Tanous // clang-format on 70