31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
"""Class to mimick `pymodbus.client`. It is used when running the tests."""
|
|
|
|
from collections import namedtuple
|
|
|
|
from .registers_output import raw_holding_register_values, raw_input_register_values
|
|
from .utils import getnext
|
|
|
|
Registers = namedtuple("Registers", ["registers"])
|
|
|
|
|
|
class ModbusSerialClient:
|
|
"""Class mimicking `pymodbus.client.ModbusSerialClient`."""
|
|
|
|
def __init__(self, *_, **__) -> None:
|
|
self._holding_registers_gen = getnext(raw_holding_register_values)
|
|
self._input_registers_gen = getnext(raw_input_register_values)
|
|
|
|
def connect(self):
|
|
"""Mimick connecting the inverter and return the success code."""
|
|
|
|
return True
|
|
|
|
def read_holding_registers(self, count, *_, **__):
|
|
"""Read holding register values from inverter."""
|
|
|
|
return Registers([next(self._holding_registers_gen) for _ in range(count)])
|
|
|
|
def read_input_registers(self, count, *_, **__):
|
|
"""Read input register values from inverter."""
|
|
return Registers([next(self._input_registers_gen) for _ in range(count)])
|