我成功地使用了twisted.internet.protocol.ClientCreator来获得一个"客户端"对象是延迟回调的结果:
deferred = protocol.ClientCreator( reactor, ModbusClientProtocol ).connectTCP( "localhost", 502 )
我想重构我的代码以改为使用twisted.internet.protocol.ReconnectingClientFactory。 据我了解,pymodbus.client.async.ModbusClientFactory已经从ReconnectingClientFactory继承。 有没有办法在调用后从ClientCreator获取客户端对象:
reactor.connectTCP( "localhost", 502, ModbusClientFactory() )
我想通过Modbus执行循环读取保持寄存器请求,而不必担心自己丢失连接后重新连接。 我是否必须继承ModbusClientFactory?如果是这样,有人可以发布一个简短的例子来说明如何在类方法中执行read_holding_registers请求吗?
答案 0 :(得分:1)
如果您使用endpoints而不是reactor方法,则可以在ModbusClientFactory
周围构建一个合适的端点,并获得一个使用其协议触发的Deferred
。