![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
borune |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
День добрый, господа.
Вопрос такой. Есть порт с перемычкой между TxD и RxD. Пишу в порт данные и читаю их же. Использую QtSerialPort в полной аналогии с примером (terminal example). Проблема заключается в чтении данных. Есть слот, приконнекченный к сигналу readyRead() объекта. Когда в порте появляются данные, этот слот вызывается всякий раз, когда размер этих данных равен 8 Байтам. Например, если размер считываемых данных составляет 14 Байт, слот вызывается 2 раза, если 27 Байт - 4 раза, 248 Байт - 31 раз. Т.е. порт ведет себя так, как будто бы размер буфера равен 8. Суть проблемы в том, что из-за вышеперечисленного невозможно отследить момент, когда все доступные данные считаны из порта: Раскрывающийся текст
UPD Если добавить небольшой лок перед чтением, т.е. Раскрывающийся текст
Я ничего не понимаю. Сообщение отредактировал borune - 20.11.2015, 16:42 |
|
|
![]() |
borune |
![]()
Сообщение
#2
|
Участник ![]() ![]() Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Ну все равно непонятно. Я же данные посылаю за раз. Логично предположить, что и приходить они должны разом, а не кусками. Насчёт условия да, вы правы, но вопросы все равно остаются. Главный из них это как заставить порт читать не кусками по 8 байт, а сразу все? WaitForReadyRead() не помогает..
Сообщение отредактировал borune - 21.11.2015, 23:54 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 24.4.2025, 8:24 |