1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #pragma once 4 #include <nlohmann/json.hpp> 5 6 namespace power 7 { 8 // clang-format off 9 10 enum class PowerLimitException{ 11 Invalid, 12 NoAction, 13 HardPowerOff, 14 LogEventOnly, 15 Oem, 16 }; 17 18 enum class PowerSupplyType{ 19 Invalid, 20 Unknown, 21 AC, 22 DC, 23 ACorDC, 24 }; 25 26 enum class LineInputVoltageType{ 27 Invalid, 28 Unknown, 29 ACLowLine, 30 ACMidLine, 31 ACHighLine, 32 DCNeg48V, 33 DC380V, 34 AC120V, 35 AC240V, 36 AC277V, 37 ACandDCWideRange, 38 ACWideRange, 39 DC240V, 40 }; 41 42 enum class InputType{ 43 Invalid, 44 AC, 45 DC, 46 }; 47 48 NLOHMANN_JSON_SERIALIZE_ENUM(PowerLimitException, { 49 {PowerLimitException::Invalid, "Invalid"}, 50 {PowerLimitException::NoAction, "NoAction"}, 51 {PowerLimitException::HardPowerOff, "HardPowerOff"}, 52 {PowerLimitException::LogEventOnly, "LogEventOnly"}, 53 {PowerLimitException::Oem, "Oem"}, 54 }); 55 56 NLOHMANN_JSON_SERIALIZE_ENUM(PowerSupplyType, { 57 {PowerSupplyType::Invalid, "Invalid"}, 58 {PowerSupplyType::Unknown, "Unknown"}, 59 {PowerSupplyType::AC, "AC"}, 60 {PowerSupplyType::DC, "DC"}, 61 {PowerSupplyType::ACorDC, "ACorDC"}, 62 }); 63 64 NLOHMANN_JSON_SERIALIZE_ENUM(LineInputVoltageType, { 65 {LineInputVoltageType::Invalid, "Invalid"}, 66 {LineInputVoltageType::Unknown, "Unknown"}, 67 {LineInputVoltageType::ACLowLine, "ACLowLine"}, 68 {LineInputVoltageType::ACMidLine, "ACMidLine"}, 69 {LineInputVoltageType::ACHighLine, "ACHighLine"}, 70 {LineInputVoltageType::DCNeg48V, "DCNeg48V"}, 71 {LineInputVoltageType::DC380V, "DC380V"}, 72 {LineInputVoltageType::AC120V, "AC120V"}, 73 {LineInputVoltageType::AC240V, "AC240V"}, 74 {LineInputVoltageType::AC277V, "AC277V"}, 75 {LineInputVoltageType::ACandDCWideRange, "ACandDCWideRange"}, 76 {LineInputVoltageType::ACWideRange, "ACWideRange"}, 77 {LineInputVoltageType::DC240V, "DC240V"}, 78 }); 79 80 NLOHMANN_JSON_SERIALIZE_ENUM(InputType, { 81 {InputType::Invalid, "Invalid"}, 82 {InputType::AC, "AC"}, 83 {InputType::DC, "DC"}, 84 }); 85 86 } 87 // clang-format on 88