Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QSerialPort работа с портом.


Автор: Annuta 29.3.2013, 14:30
Привет, такой вопрос.
Программа работает с ком-портом. Инициализация порта происходит в конструкторе класса GUI (MainWindow), там порт открывается и висит открытым, происходит и чтение и запись в порт без проблем.
НО иногда, на некоторые команды ответ приходит поздно. Выловила эти команды. Если их вызвать прямо в конструкторе, вместе с инициализацией порта - всё работает быстро! А если вынести и вызывать по клику - то долго!

В чём дело ?  Можетт надо городить потоки для чтения и без них тут никуда ?

Чтение из порта происходит по сигналу 
Код

        connect(&serial, SIGNAL(readyRead()), this, SLOT(readRequest()));




Автор: bsa 29.3.2013, 15:10
Annuta, что ты называешь долго?

Автор: math64 30.3.2013, 09:54
Какую версию библиотеки используешь? Если не последнюю - обновись.
При записи данные записываются в буфер, а не сразу отправляться в порт.
В старой версии они могли там застрять - встречал такое при работе с bluetooth.

Автор: Annuta 1.4.2013, 13:03
bsa, как точно долго я не считала, но по второму, иногда третьему нажатию только команда доходит.


math64, версия последняя... думаю моя проблема связана с таймером на ожидание ответа. Может поможет.

Автор: math64 1.4.2013, 13:13
Annuta, нужен пример кода, воспроизводящий проблему.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)