1 #pragma once 2 #include <nlohmann/json.hpp> 3 4 namespace power_distribution 5 { 6 // clang-format off 7 8 enum class PowerEquipmentType{ 9 Invalid, 10 RackPDU, 11 FloorPDU, 12 ManualTransferSwitch, 13 AutomaticTransferSwitch, 14 Switchgear, 15 PowerShelf, 16 Bus, 17 BatteryShelf, 18 }; 19 20 enum class TransferSensitivityType{ 21 Invalid, 22 High, 23 Medium, 24 Low, 25 }; 26 27 NLOHMANN_JSON_SERIALIZE_ENUM(PowerEquipmentType, { 28 {PowerEquipmentType::Invalid, "Invalid"}, 29 {PowerEquipmentType::RackPDU, "RackPDU"}, 30 {PowerEquipmentType::FloorPDU, "FloorPDU"}, 31 {PowerEquipmentType::ManualTransferSwitch, "ManualTransferSwitch"}, 32 {PowerEquipmentType::AutomaticTransferSwitch, "AutomaticTransferSwitch"}, 33 {PowerEquipmentType::Switchgear, "Switchgear"}, 34 {PowerEquipmentType::PowerShelf, "PowerShelf"}, 35 {PowerEquipmentType::Bus, "Bus"}, 36 {PowerEquipmentType::BatteryShelf, "BatteryShelf"}, 37 }); 38 39 NLOHMANN_JSON_SERIALIZE_ENUM(TransferSensitivityType, { 40 {TransferSensitivityType::Invalid, "Invalid"}, 41 {TransferSensitivityType::High, "High"}, 42 {TransferSensitivityType::Medium, "Medium"}, 43 {TransferSensitivityType::Low, "Low"}, 44 }); 45 46 } 47 // clang-format on 48