Pymodbus:我可以从ModbusClientFactory获取客户端对象(与protocol.ClientCreator一样)

时间:2014-12-27 16:59:26

标签: python twisted modbus

我成功地使用了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请求吗?

1 个答案:

答案 0 :(得分:1)

如果您使用endpoints而不是reactor方法,则可以在ModbusClientFactory周围构建一个合适的端点,并获得一个使用其协议触发的Deferred