Source code for brainaccess.core.full_battery_info

import ctypes
from enum import Enum, unique

from brainaccess.utils.exceptions import BrainAccessException


[docs] @unique class EBaChargeStates(Enum): e_ba_charge_states_unknown = 0 e_ba_charge_states_charging = 1 e_ba_charge_states_discharging_active = 2 e_ba_charge_states_discharging_inactive = 3 e_ba_charge_states_last = 4
[docs] @unique class EBaChargeLevel(Enum): e_ba_charge_level_unknown = 0 e_ba_charge_level_good = 1 e_ba_charge_level_low = 2 e_ba_charge_level_critical = 3 e_ba_charge_level_last = 4
[docs] class FullBatteryInfo(ctypes.Structure): """Object containing extended battery information Attributes ---------- is_charger_connected True if charger is connected to the device level Battery charge percentage, 0-100 health Battery health percentage, 0-100 voltage Battery voltage in volts current Current flow in amps (negative means discharge) charge_state """ _fields_ = [ ("is_charger_connected", ctypes.c_bool), ("level", ctypes.c_uint8), ("health", ctypes.c_float), ("voltage", ctypes.c_float), ("current", ctypes.c_float), ("charge_state", ctypes.c_int), ("charge_level", ctypes.c_int), ] @property def charging_state(self): return EBaChargeStates(self._charging_state) @charging_state.setter def charging_state(self, value): if isinstance(value, EBaChargeStates): self._charging_state = value.value else: raise BrainAccessException("charging_state must be an instance of EBaChargeStates Enum") @property def charge_level(self): return EBaChargeLevel(self._charge_level) @charge_level.setter def charge_level(self, value): if isinstance(value, EBaChargeLevel): self._charge_level = value.value else: raise BrainAccessException("charge_level must be an instance of EBaChargeLevel Enum")