Здравствуйте. Есть устройство, которым надо управлять с ПК. Управление осуществляется с помощью команд пересылаемых по COM-порту по RS232. Устройство позволяет регулировать значения нескольких параметров. А также по команде может вернуть текущее значение. GUI реализую на Qt. Как сделать обработку слайдеров и записать новое значение в устройство - с этим проблем нет. Обрабатываю слот valueChanged и записываю это значение по RS.
Кроме этого, хочу реализовать, чтоб программа последовательно спрашивала все параметры устройства циклично, тем самым показывая на мониторе самые актуальные значения, а заодно и проверяя тем самым наличие соединения с устройством. Каждое окно в программе описано классом с функциями setParameter и getParameter - соответственно, установить новое значение и считать.
Как реализовать циклический опрос параметров, а также запись новых значений при изменении значения ползунка? Я правильно понимаю, что надо использовать потоки (thread)? Как их лучше использовать? С такой задачей сталкиваюсь впервые, опыта нет. Посоветуйте как лучше реализовать.
А если в момент когда я настраиваю значение ползунком программа считает новое значение и попытается установить в это состояние ползунок, то что произойдёт? Это не помешает пользователю устанавливать новое значение? Как такого избежать?
есть структура данных, которая представляет собой параметры устройства;
есть класс, который хранит два экземпляра структур с параметрами: в первом экземпляре -- данные, прочитанные с утсройства. во втором -- данные, которые выставил пользователь.
Дальше, по таймеру или через QThread, класс выполняет итерации, состоящие из:
1. опросить устройство
2. отправить желаемую конфигурацию на устройство.
в моем случае параметров было не очень много (около 7) и чтение/запись всех параметров выполнялось одной строкой. Работало довольно шустро, задержки не заметны.