Source code for labgrid.driver.modbusrtudriver

from importlib import import_module
import attr

from ..factory import target_factory
from .common import Driver


[docs] @target_factory.reg_driver @attr.s(eq=False) class ModbusRTUDriver(Driver): bindings = {"resource": "ModbusRTU"}
[docs] def __attrs_post_init__(self): super().__attrs_post_init__() self._modbus = import_module('minimalmodbus') self.instrument = None
[docs] def on_activate(self): self.instrument = self._modbus.Instrument( self.resource.port, self.resource.address, debug=False) self.instrument.serial.baudrate = self.resource.speed self.instrument.serial.timeout = self.resource.timeout self.instrument.mode = self._modbus.MODE_RTU self.instrument.clear_buffers_before_each_transaction = True
[docs] def on_deactivate(self): self.instrument = None
[docs] def read_register(self, *args, **kwargs): return self.instrument.read_register(*args, **kwargs)
[docs] def write_register(self, *args, **kwargs): return self.instrument.write_register(*args, **kwargs)
[docs] def read_registers(self, *args, **kwargs): return self.instrument.read_registers(*args, **kwargs)
[docs] def write_registers(self, *args, **kwargs): return self.instrument.write_registers(*args, **kwargs)
[docs] def read_bit(self, *args, **kwargs): return self.instrument.read_bit(*args, **kwargs)
[docs] def write_bit(self, *args, **kwargs): return self.instrument.write_bit(*args, **kwargs)
[docs] def read_string(self, *args, **kwargs): return self.instrument.read_string(*args, **kwargs)
[docs] def write_string(self, *args, **kwargs): return self.instrument.write_string(*args, **kwargs)