def __init__(self, store, framer=None, identity=None): """ Overloaded initializer for the modbus factory If the identify structure is not passed in, the ModbusControlBlock uses its own empty structure. :param store: The ModbusServerContext datastore :param framer: The framer strategy to use :param identity: An optional identify structure """ self.decoder = ServerDecoder() if isinstance(framer, IModbusFramer): self.framer = framer else: self.framer = ModbusSocketFramer if isinstance(store, ModbusServerContext): self.store = store else: self.store = ModbusServerContext() self.control = ModbusControlBlock() self.access = ModbusAccessControl() if isinstance(identity, ModbusDeviceIdentification): self.control.Identity.update(identity)
def __init__(self, gateway, connector, store, framer=None, identity=None, **kwargs): self._clients = dict() self._gateway = gateway self._devices = {} # self._connector = connector self._tokens = set() self._usrConfig = None # 定时任务 self._jobs = {} self._schedulerService = TBScheduleService(BackgroundScheduler()) # Modbus self.decoder = ServerDecoder() self.framer = framer(self.decoder) or ModbusSocketFramer(self.decoder) self.store = store or ModbusServerContext() self.control = ModbusControlBlock() self.access = ModbusAccessControl() self.ignore_missing_slaves = kwargs.get('ignore_missing_slaves', Defaults.IgnoreMissingSlaves) if isinstance(identity, ModbusDeviceIdentification): self.control.Identity.update(identity) log.debug('Start Usr Factory:', self)
def __init__(self, store, framer=None, identity=None, **kwargs): """ Overloaded initializer for the modbus factory If the identify structure is not passed in, the ModbusControlBlock uses its own empty structure. :param store: The ModbusServerContext datastore :param framer: The framer strategy to use :param identity: An optional identify structure :param ignore_missing_slaves: True to not send errors on a request to a missing slave """ self.decoder = CustomServerDecoder() self.framer = framer or ModbusSocketFramer self.store = store or ModbusServerContext() self.control = ModbusControlBlock() self.access = ModbusAccessControl() self.ignore_missing_slaves = kwargs.get('ignore_missing_slaves', Defaults.IgnoreMissingSlaves) if isinstance(identity, ModbusDeviceIdentification): self.control.Identity.update(identity)