Extract out classes that should be common to all UPS models

This commit is contained in:
2026-05-02 10:03:29 +02:00
parent f2ffc4568a
commit 4f54b9be36
2 changed files with 40 additions and 37 deletions
+39
View File
@@ -0,0 +1,39 @@
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)
+1 -37
View File
@@ -8,43 +8,7 @@ import serial.rs485
import time import time
from dataclasses import dataclass, fields as dataclass_fields from dataclasses import dataclass, fields as dataclass_fields
from bmspy.classes import BMSScalarField, BMSMultiField, BMSInfoField
@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)
@dataclass @dataclass