Files
bmspy/bmspy/classes.py
T

40 lines
770 B
Python

from dataclasses import dataclass, fields as dataclass_fields
@dataclass
class BMSScalarField:
"""Single numeric or boolean measurement"""
help: str
raw_value: float | bool
value: str
units: str | None = None
def get(self, key, default=None):
return getattr(self, key, default)
@dataclass
class BMSMultiField:
"""Indexed collection (cells, temperature sensors)"""
help: str
label: str
raw_values: dict
values: dict
units: str | None = None
def get(self, key, default=None):
return getattr(self, key, default)
@dataclass
class BMSInfoField:
"""Text / date info (non-numeric)"""
help: str
info: str
def get(self, key, default=None):
return getattr(self, key, default)