我正在Linux上开发Modbus TCP客户端,以使用 libmodbus 与不同的Modbus设备进行通信。
要初始化TCP连接,将调用函数int modbus_connect(modbus_t *ctx);
,如果连接成功,则返回0。
我需要有一个单独的线程来连续监视此TCP与设备的连接,以查看它是否仍在连接,如果没有,请尝试再次连接。
连续调用modbus_connect
来检查连接是否成功将创建多个连接,这不是我想要的。
我可以尝试不断尝试从设备读取数据,如果有错误,请检查错误代码,然后尝试重新连接。但是,对Modbus设备的读写操作来自不同的类和线程,应从通信控件中提取该类和线程。
libmodbus中似乎没有任何功能来支持此功能。
任何建议都值得赞赏。