1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace serial_interface 7 { 8 // clang-format off 9 10 enum class SignalType{ 11 Invalid, 12 Rs232, 13 Rs485, 14 }; 15 16 enum class BitRate{ 17 Invalid, 18 BitRate1200, 19 BitRate2400, 20 BitRate4800, 21 BitRate9600, 22 BitRate19200, 23 BitRate38400, 24 BitRate57600, 25 BitRate115200, 26 BitRate230400, 27 }; 28 29 enum class Parity{ 30 Invalid, 31 None, 32 Even, 33 Odd, 34 Mark, 35 Space, 36 }; 37 38 enum class DataBits{ 39 Invalid, 40 DataBits5, 41 DataBits6, 42 DataBits7, 43 DataBits8, 44 }; 45 46 enum class StopBits{ 47 Invalid, 48 StopBits1, 49 StopBits2, 50 }; 51 52 enum class FlowControl{ 53 Invalid, 54 None, 55 Software, 56 Hardware, 57 }; 58 59 enum class PinOut{ 60 Invalid, 61 Cisco, 62 Cyclades, 63 Digi, 64 }; 65 66 enum class ConnectorType{ 67 Invalid, 68 RJ45, 69 RJ11, 70 DB9Female, 71 DB9Male, 72 DB25Female, 73 DB25Male, 74 USB, 75 mUSB, 76 uUSB, 77 }; 78 79 NLOHMANN_JSON_SERIALIZE_ENUM(SignalType, { 80 {SignalType::Invalid, "Invalid"}, 81 {SignalType::Rs232, "Rs232"}, 82 {SignalType::Rs485, "Rs485"}, 83 }); 84 85 NLOHMANN_JSON_SERIALIZE_ENUM(BitRate, { 86 {BitRate::Invalid, "Invalid"}, 87 {BitRate::BitRate1200, "1200"}, 88 {BitRate::BitRate2400, "2400"}, 89 {BitRate::BitRate4800, "4800"}, 90 {BitRate::BitRate9600, "9600"}, 91 {BitRate::BitRate19200, "19200"}, 92 {BitRate::BitRate38400, "38400"}, 93 {BitRate::BitRate57600, "57600"}, 94 {BitRate::BitRate115200, "115200"}, 95 {BitRate::BitRate230400, "230400"}, 96 }); 97 98 NLOHMANN_JSON_SERIALIZE_ENUM(Parity, { 99 {Parity::Invalid, "Invalid"}, 100 {Parity::None, "None"}, 101 {Parity::Even, "Even"}, 102 {Parity::Odd, "Odd"}, 103 {Parity::Mark, "Mark"}, 104 {Parity::Space, "Space"}, 105 }); 106 107 NLOHMANN_JSON_SERIALIZE_ENUM(DataBits, { 108 {DataBits::Invalid, "Invalid"}, 109 {DataBits::DataBits5, "5"}, 110 {DataBits::DataBits6, "6"}, 111 {DataBits::DataBits7, "7"}, 112 {DataBits::DataBits8, "8"}, 113 }); 114 115 NLOHMANN_JSON_SERIALIZE_ENUM(StopBits, { 116 {StopBits::Invalid, "Invalid"}, 117 {StopBits::StopBits1, "1"}, 118 {StopBits::StopBits2, "2"}, 119 }); 120 121 NLOHMANN_JSON_SERIALIZE_ENUM(FlowControl, { 122 {FlowControl::Invalid, "Invalid"}, 123 {FlowControl::None, "None"}, 124 {FlowControl::Software, "Software"}, 125 {FlowControl::Hardware, "Hardware"}, 126 }); 127 128 NLOHMANN_JSON_SERIALIZE_ENUM(PinOut, { 129 {PinOut::Invalid, "Invalid"}, 130 {PinOut::Cisco, "Cisco"}, 131 {PinOut::Cyclades, "Cyclades"}, 132 {PinOut::Digi, "Digi"}, 133 }); 134 135 NLOHMANN_JSON_SERIALIZE_ENUM(ConnectorType, { 136 {ConnectorType::Invalid, "Invalid"}, 137 {ConnectorType::RJ45, "RJ45"}, 138 {ConnectorType::RJ11, "RJ11"}, 139 {ConnectorType::DB9Female, "DB9 Female"}, 140 {ConnectorType::DB9Male, "DB9 Male"}, 141 {ConnectorType::DB25Female, "DB25 Female"}, 142 {ConnectorType::DB25Male, "DB25 Male"}, 143 {ConnectorType::USB, "USB"}, 144 {ConnectorType::mUSB, "mUSB"}, 145 {ConnectorType::uUSB, "uUSB"}, 146 }); 147 148 } 149 // clang-format on 150