140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 240e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3853c0dc5SEd Tanous #pragma once 4853c0dc5SEd Tanous #include <nlohmann/json.hpp> 5853c0dc5SEd Tanous 6853c0dc5SEd Tanous namespace battery 7853c0dc5SEd Tanous { 8853c0dc5SEd Tanous // clang-format off 9853c0dc5SEd Tanous 10853c0dc5SEd Tanous enum class ChargeState{ 11853c0dc5SEd Tanous Invalid, 12853c0dc5SEd Tanous Idle, 13853c0dc5SEd Tanous Charging, 14853c0dc5SEd Tanous Discharging, 15853c0dc5SEd Tanous }; 16853c0dc5SEd Tanous 17*c6d7a45dSGunnar Mills enum class BatteryChemistryType{ 18*c6d7a45dSGunnar Mills Invalid, 19*c6d7a45dSGunnar Mills LeadAcid, 20*c6d7a45dSGunnar Mills LithiumIon, 21*c6d7a45dSGunnar Mills NickelCadmium, 22*c6d7a45dSGunnar Mills }; 23*c6d7a45dSGunnar Mills 24*c6d7a45dSGunnar Mills enum class EnergyStorageType{ 25*c6d7a45dSGunnar Mills Invalid, 26*c6d7a45dSGunnar Mills Battery, 27*c6d7a45dSGunnar Mills Supercapacitor, 28*c6d7a45dSGunnar Mills }; 29*c6d7a45dSGunnar Mills 30853c0dc5SEd Tanous NLOHMANN_JSON_SERIALIZE_ENUM(ChargeState, { 31853c0dc5SEd Tanous {ChargeState::Invalid, "Invalid"}, 32853c0dc5SEd Tanous {ChargeState::Idle, "Idle"}, 33853c0dc5SEd Tanous {ChargeState::Charging, "Charging"}, 34853c0dc5SEd Tanous {ChargeState::Discharging, "Discharging"}, 35853c0dc5SEd Tanous }); 36853c0dc5SEd Tanous 37*c6d7a45dSGunnar Mills NLOHMANN_JSON_SERIALIZE_ENUM(BatteryChemistryType, { 38*c6d7a45dSGunnar Mills {BatteryChemistryType::Invalid, "Invalid"}, 39*c6d7a45dSGunnar Mills {BatteryChemistryType::LeadAcid, "LeadAcid"}, 40*c6d7a45dSGunnar Mills {BatteryChemistryType::LithiumIon, "LithiumIon"}, 41*c6d7a45dSGunnar Mills {BatteryChemistryType::NickelCadmium, "NickelCadmium"}, 42*c6d7a45dSGunnar Mills }); 43*c6d7a45dSGunnar Mills 44*c6d7a45dSGunnar Mills NLOHMANN_JSON_SERIALIZE_ENUM(EnergyStorageType, { 45*c6d7a45dSGunnar Mills {EnergyStorageType::Invalid, "Invalid"}, 46*c6d7a45dSGunnar Mills {EnergyStorageType::Battery, "Battery"}, 47*c6d7a45dSGunnar Mills {EnergyStorageType::Supercapacitor, "Supercapacitor"}, 48*c6d7a45dSGunnar Mills }); 49*c6d7a45dSGunnar Mills 50853c0dc5SEd Tanous } 51853c0dc5SEd Tanous // clang-format on 52