point_model.py 399 B

1234567891011121314151617181920
  1. """Point data models."""
  2. from dataclasses import dataclass
  3. @dataclass(frozen=True)
  4. class ModbusPoint:
  5. point_id: str
  6. name: str
  7. data_type: str
  8. slave_id: int
  9. address: int
  10. @property
  11. def register_count(self) -> int:
  12. return 1 if self.data_type == "int16" else 2
  13. @property
  14. def end_address(self) -> int:
  15. return self.address + self.register_count - 1