QModbusRtuSerialMaster сбросить очередь вывода
Есть ли способ сбросить очередь вывода для экземпляра QModbusRtuSerialMaster.
Я думаю, что другой конец переполнен повторными попытками, с которыми он не может справиться, в результате чего QModbusRtuSerialMaster повторяет попытку, что усугубляет проблему.
Возможное решение - сбросить очередь вывода, удалив ожидающие запросы, если через некоторое время нет ответа на конкретное сообщение.
Я просмотрел исходный код и документацию и не нашел очевидного метода.
Я предполагаю, что простое закрытие и повторное открытие не приведет к немедленному сбросу очереди, а вместо этого будет ждать, пока она очистится.
1 ответ
Я не думаю, что ты сможешь. Хотя могут быть некоторые обходные пути: например, закрытие соединения или, поскольку очередь запросов обрабатывается внутри, вы можете уменьшить время ожидания и количество повторных попыток.
Кроме того, я думаю, что если ваше ведомое устройство не может обработать запрос, вам следует изменить свою бизнес-логику, чтобы уменьшить запрос, или создать свою собственную очередь и отправлять их с разными таймингами.