libmodbus - отслеживать и перезапускать соединение
Я разрабатываю клиент Modbus TCP в Linux для связи с различными устройствами Modbus с помощью libmodbus.
Для инициализации TCP-соединения функция int modbus_connect(modbus_t *ctx);
вызывается и возвращает 0, если соединение было успешным.
Мне нужен один отдельный поток, который постоянно отслеживает это TCP-соединение с устройством, чтобы узнать, подключено ли оно по-прежнему, а если нет, попытайтесь подключиться снова.
Постоянно звонит modbus_connect
чтобы проверить, было ли соединение успешным, создаст несколько соединений, чего я не хочу.
Я мог бы попытаться постоянно пытаться читать с устройства, и если есть ошибка, проверьте код ошибки и попробуйте подключиться снова. Однако запись и чтение в / из устройства Modbus происходит из другого класса и потока, которые должны быть извлечены из управления связью.
Похоже, что в libmodbus нет какой-либо функции для поддержки этого.
Любые предложения приветствуются.