Extract out classes that should be common to all UPS models
This commit is contained in:
@@ -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
@@ -8,43 +8,7 @@ import serial.rs485
|
||||
import time
|
||||
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)
|
||||
from bmspy.classes import BMSScalarField, BMSMultiField, BMSInfoField
|
||||
|
||||
|
||||
@dataclass
|
||||
|
||||
Reference in New Issue
Block a user