Название: [Решено] Qt modbus sendReadRequest в цикле Отправлено: solns от Декабрь 26, 2017, 13:42 Добрый день.
Для своей программы взял за основу пример serialbus\modbus\master\master.pro из (QT 5.8, Win, mingw53_32) Отличие : sendReadRequest вызывается в цикле, в примере - по кнопке. Код сильно упрощен для вопроса, но рабочий. В теле цикла я ожидаю и результаты запроса ("replay Finished"). Однако, результаты (абсолютно все) появятся только после завершения цикла ("end readModbus") Как будто запросы ставятся в очередь, и она запускается только после окончания цикла. Данные modbus читаются нормально, здесь не приведено. Код: ... Название: Re: Qt modbus sendReadRequest в цикле Отправлено: kuzulis от Декабрь 26, 2017, 15:18 А в чем собственно то проблема? Все репли выполняются асинхронно ( и да, ставятся в очередь, а как иначе?). С чего взято утверждение, что результаты будут в теле цикла? Реально работа начнется после выхода из MainWindow::readModbus().
Название: Re: Qt modbus sendReadRequest в цикле Отправлено: solns от Декабрь 27, 2017, 12:51 Спасибо за подсказку (объяснение).
Убрал цикл в readModbus и заставил работать event loop. Для начала так: Код: QTimer *timer = new QTimer(this); |