Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: YvenTitan от Февраль 20, 2020, 13:26



Название: Самопроизвольное отключение сигнала readyRead() класса QSerialPort
Отправлено: YvenTitan от Февраль 20, 2020, 13:26
Здравствуйте
У меня есть программа, которая пересылается файл в устройство, используя COM-порт. Под ОС Windows работает нормально, при переносе на OC Raspbian Buster возникает проблема при записи файла в устройство. При чтении из устройства работает нормально (если не используется функция QSerialPort::write).
Точнее сначала работает нормально, а в какой-то момент перестает отслеживать сигнал readyRead класса QSerialPort. Выводится ошибка QSerialPort::UnknownError. COM-порт - виртуальный USB. Выключение и включение COM-порта и перезапуск программы ситуацию не исправляют. COM приходит в нормальное состояние только или перезагрузкой устройства, или перезагрузкой raspberry. Команда cat /proc/meminfo показывает, что заполнения памяти нет. Использую Raspberry Pi 3. flush() после write() и clear() перед write ситуацию не меняют.
В отличие от Windows в Rasbian много неправильных пакетов (мусора). Передача перестает работать каждый раз через разное число посланных пакетов и через разное количество мусорных.

Можете подсказать в чем может быть проблема? Из-за чего в какой-то момент перестает работать сигнал ReadyRead() ?


Название: Re: Самопроизвольное отключение сигнала readyRead() класса QSerialPort
Отправлено: kuzulis от Февраль 20, 2020, 17:19
Возможно проблема в Linux Kernel: https://bugreports.qt.io/browse/QTBUG-48304
Попробовать пересобрать BSP с другой версией ядра.

Да и непонятно, какая версия QSP используется. В любом случае можно всегда пересобрать QSP и втыкнуть трейс в то место где генерится ошибка QSerialPort::UnknownError и вывести реальный errno.


Название: Re: Самопроизвольное отключение сигнала readyRead() класса QSerialPort
Отправлено: qate от Февраль 21, 2020, 09:21
на обычной ubuntu работает ок ?
если да, то очевидно где проблема