Russian Qt Forum
Ноябрь 23, 2024, 02:14
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
QSerialPort Unknown Error
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QSerialPort Unknown Error (Прочитано 7372 раз)
lks
Новичок
Offline
Сообщений: 19
QSerialPort Unknown Error
«
:
Июнь 28, 2015, 11:05 »
Чем можно объяснить появление ошибки "Unknown Error" (11).
Появляется в среднем раз в 5 минут при частоте приёма 10гц. пакетов длиной 700б.
Работа с портом RS422. Параллельно передача пакета 20б. в этот же порт с частотой 1 гц.
Вся работа с портом идёт в отдельном потоке.
Работа организована как в примере к QSerialPort terminal.
Результат ошибки - пропуск 2-3 байт.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QSerialPort Unknown Error
«
Ответ #1 :
Июнь 28, 2015, 14:24 »
Тут только самому отлаживать и смотреть.
Кроме того, хотелось бы поподробнее узнать обо всем окружении:
1. Какой чип используется в качестве девайса?
2. Какая версия QtSerialPort и Qt?
3. Какая ОС?
4. Хотелось бы иметь
минимальный и самый упрощенный
пример который воспроизводит проблему. Например loopback тест, в котором Tx/Rx соединены вместе. Тогда можно попытаться воспроизвести проблему.
UPD: "Unknown Error" - это такое значение кода, которое еще не обрабатывается внутри decodeSystemError() (оно не знает как обработать код ошибки). Нужно привести код этой системной ошибки и тогда, может быть, что-то прояснится.
«
Последнее редактирование: Июнь 28, 2015, 14:30 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
mezmay
Гость
Re: QSerialPort Unknown Error
«
Ответ #2 :
Июнь 28, 2015, 21:54 »
Возможен случай когда порт ещё не принял стоповый бит при приёме, а уже пытается что то отправить. На физическом rs485 бывало такое.
Записан
lks
Новичок
Offline
Сообщений: 19
Re: QSerialPort Unknown Error
«
Ответ #3 :
Июнь 29, 2015, 06:57 »
Qt5.4.1 Windows7 порты с обеих сторон RS422.
Проблема возникает только при работе с определённым ПК (вывод в порт из программы под ДОС).
Приём идёт на ноутбук Гранат.
Ставлю вместо ПК с ДОСом обыный ПК с Windows7 и тестовой программой и связью через RS232 <-> RS232 - работает нормально.
В самой программе под ДОС уверенности нет, но сомневаюсь, что некооректность её работы может создать такую ситуацию на приёме.
Подозрение на корректность работы самих портов, связи между ними.
Возможен ли вариант неправильной настройки или особенностей работы портов RS422 ?
Для начала и хотелось выяснить возможные причины по выдаваемой QSerialPort ошибки Unknown Error (11).
Буду пытаться сужать источник причины.
«
Последнее редактирование: Июнь 29, 2015, 08:16 от lks
»
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QSerialPort Unknown Error
«
Ответ #4 :
Июнь 29, 2015, 10:40 »
Ну а что за RS422 девайс? USB преобразователь от Advantech, Moxa, или что?
Записан
ArchLinux x86_64 / Win10 64 bit
lks
Новичок
Offline
Сообщений: 19
Re: QSerialPort Unknown Error
«
Ответ #5 :
Июнь 29, 2015, 11:23 »
Цитата: kuzulis от Июнь 29, 2015, 10:40
Ну а что за RS422 девайс? USB преобразователь от Advantech, Moxa, или что?
МОХА USB Serial Port
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QSerialPort Unknown Error
«
Ответ #6 :
Июнь 29, 2015, 11:31 »
Попробуй дрова обновить.
Записан
ArchLinux x86_64 / Win10 64 bit
lks
Новичок
Offline
Сообщений: 19
Re: QSerialPort Unknown Error
«
Ответ #7 :
Июнь 29, 2015, 11:56 »
Цитата: kuzulis от Июнь 29, 2015, 11:31
Попробуй дрова обновить.
Проясняются некоторый факты. На ПК 2 канала RS422 соединены кабелем параллельно с 2-мя каналами RS422 на ноутбуке. Запускаю общение по одному каналу - всё нормально. Запускаю по 2-му - на ноутбуке ошибка Unknuwn Error 11 по обоим каналам. На ноутбуке оба канала на одном разъёме. Подозрение на взаимное влияние каналов. Пока жду логов тестовой программы. На ПК работает ДОС.
«
Последнее редактирование: Июнь 29, 2015, 11:58 от lks
»
Записан
lks
Новичок
Offline
Сообщений: 19
Re: QSerialPort Unknown Error
«
Ответ #8 :
Июнь 30, 2015, 11:56 »
Причина. похоже, найдена. Кабель связи по 2-м каналам RS422 представляет из себя единый жгут, в котором происходят взаимные наводки каналов. При работе одного канала всё было нормально. При работе двух - в обоих появлялась ошибка QSerialPorta Unknown Error (11). Длина кабеля невелика, но, думаю > 5м. Зато скорость 115200 кб/с. Для 100%-й уверенностти надо посмотреть осциллографом (пока нет возможности), но других вариантов не вижу. Изначально надеялся на более подробную расшифровку Unknown Error (11), потому и задал вопрос. Спасибо всем за советы.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QSerialPort Unknown Error
«
Ответ #9 :
Июнь 30, 2015, 12:36 »
Цитировать
подробную расшифровку Unknown Error (11)
Эмм.. Я же говорю, что нужно самому пересобрать QtSerialPort и втыкнуть qDebug() в decodeSystemError().
А что, QSerialPort::errorString() пустая?
Записан
ArchLinux x86_64 / Win10 64 bit
lks
Новичок
Offline
Сообщений: 19
Re: QSerialPort Unknown Error
«
Ответ #10 :
Июнь 30, 2015, 12:57 »
Цитата: kuzulis от Июнь 30, 2015, 12:36
Цитировать
подробную расшифровку Unknown Error (11)
Эмм.. Я же говорю, что нужно самому пересобрать QtSerialPort и втыкнуть qDebug() в decodeSystemError().
А что, QSerialPort::errorString() пустая?
errorString() = "Unknown Error". Я надеялся, что будет более полная расшифровка ошибки, но думаю это невозможно, или точнее, даже не нужно.
Если идут просто электрические помехи, возможно, перебиваются все служебные сигналы, какой смысл уточнять.
«
Последнее редактирование: Июнь 30, 2015, 12:59 от lks
»
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: QSerialPort Unknown Error
«
Ответ #11 :
Июнь 30, 2015, 14:51 »
Ах, я думал что UnknownError - это код ошибки, а не текст. Ок.
Записан
ArchLinux x86_64 / Win10 64 bit
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...