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