QModbusRtuSerialMaster сбросить очередь вывода

Есть ли способ сбросить очередь вывода для экземпляра QModbusRtuSerialMaster.

Я думаю, что другой конец переполнен повторными попытками, с которыми он не может справиться, в результате чего QModbusRtuSerialMaster повторяет попытку, что усугубляет проблему.

Возможное решение - сбросить очередь вывода, удалив ожидающие запросы, если через некоторое время нет ответа на конкретное сообщение.

Я просмотрел исходный код и документацию и не нашел очевидного метода.

Я предполагаю, что простое закрытие и повторное открытие не приведет к немедленному сбросу очереди, а вместо этого будет ждать, пока она очистится.

1 ответ

Я не думаю, что ты сможешь. Хотя могут быть некоторые обходные пути: например, закрытие соединения или, поскольку очередь запросов обрабатывается внутри, вы можете уменьшить время ожидания и количество повторных попыток.

Кроме того, я думаю, что если ваше ведомое устройство не может обработать запрос, вам следует изменить свою бизнес-логику, чтобы уменьшить запрос, или создать свою собственную очередь и отправлять их с разными таймингами.

Другие вопросы по тегам