Russian Qt Forum
Ноябрь 22, 2024, 11:23
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Дополнительные компоненты
>
[РЕШЕНО] Работа с QSerialPort по RS-232
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [РЕШЕНО] Работа с QSerialPort по RS-232 (Прочитано 8314 раз)
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
[РЕШЕНО] Работа с QSerialPort по RS-232
«
:
Октябрь 30, 2018, 00:31 »
Коллеги, добрый день.
Есть прибор с интерфейсом RS-232, подключен к компьютеру c Windows 7 через переходник USB/RS-232. Обмен с прибором осуществляется через COM1 символьными фреймами с использованием QSerialPort в асинхронном режиме. Проблема в том, что почему-то ответы прибора в слот, подключенный к сигналу QSerialPort::readyRead, не поступают.
При этом ответы формируются, их можно принять, подключившись к этому же порту с помощью Putty и нажав в терминале Enter (конечно, предварительно отключив программу от com-порта).
Может возникнуть сомнение в правильности программы, но она прекрасно работает по com-порту c эмулятором прибора по шине RS-485 (через переходники USB/RS-485). Впрочем, могу показать и сам тестовый проект, если нужны какие-то детали.
К сожаленинию, на моем компьютере нет разъемов RS-232 (завтра поищу), чтобы поставить более чистый эксперимент. Я первый раз работаю с RS-232, поэтому и вопрос - есть ли какие-нибудь особенности в обмене по этой шине?
«
Последнее редактирование: Октябрь 31, 2018, 01:09 от sergek
»
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Работа с QSerialPort по RS-232
«
Ответ #1 :
Октябрь 30, 2018, 10:08 »
[режим телепата] Если исп. версия Qt 5.10.x то там был баг. Нужно исп. или 5.11.х или 5.9.х. [/режим телепата]
Записан
ArchLinux x86_64 / Win10 64 bit
qate
Супер
Offline
Сообщений: 1177
Re: Работа с QSerialPort по RS-232
«
Ответ #2 :
Октябрь 30, 2018, 10:46 »
Некоторые пользователи сообщали о сбоях в работе через переходник USB/RS-232 на W10, при этом на W7 работает Ок
Каких то особенностей с usb переходником или без - нет
Еще порт переходника может "прыгать", если программа открыла порт, и в это время переходник вынуть/вставть - ОС назначит новый свободный порт
Записан
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: Работа с QSerialPort по RS-232
«
Ответ #3 :
Октябрь 30, 2018, 11:02 »
Спасибо за информацию.
Насчет 5.10 - учту, в целевой системе (Raspbian) у меня как раз такая. Но на виндах у меня 5.11.1 (в профиле указано)))
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Работа с QSerialPort по RS-232
«
Ответ #4 :
Октябрь 30, 2018, 12:20 »
Цитировать
целевой системе (Raspbian)
Баг был только в Windows
Записан
ArchLinux x86_64 / Win10 64 bit
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: Работа с QSerialPort по RS-232
«
Ответ #5 :
Октябрь 30, 2018, 13:42 »
Это хорошо.
Пробую разные варианты обмена с прибором:
- запрос отправляю в программе через QSerialPort, ответ принимаю в терминале Putty;
- запрос отправляю через терминал Putty, ответ принимаю в программе через QSerialPort.
Т.е. в программе запись в порт и асинхронное чтение из порта работают по отдельности
Все извилины заплел, нифига не врубаюсь, где накосячил... Может, глянете мельком (ресурсы в архив не включил, проигнорируйте)?
«
Последнее редактирование: Октябрь 31, 2018, 01:10 от sergek
»
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Работа с QSerialPort по RS-232
«
Ответ #6 :
Октябрь 30, 2018, 14:04 »
Цитировать
- запрос отправляю в программе через QSerialPort, ответ принимаю в терминале Putty;
- запрос отправляю через терминал Putty, ответ принимаю в программе через QSerialPort.
А как так получается? QSerialPort открывает у-во в монопольном режиме, поэтому ну никак Putty не сможет открыть то-же самое у-во.
ЗЫ: Не хочу смотреть код, нет времени разбираться. Это твоя работа, а не моя.
«
Последнее редактирование: Октябрь 30, 2018, 14:07 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: Работа с QSerialPort по RS-232
«
Ответ #7 :
Октябрь 30, 2018, 14:24 »
Цитата: kuzulis от Октябрь 30, 2018, 14:04
А как так получается? QSerialPort открывает у-во в монопольном режиме, поэтому ну никак Putty не сможет открыть то-же самое у-во.
Естественно, по очереди.
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: Работа с QSerialPort по RS-232
«
Ответ #8 :
Октябрь 31, 2018, 01:08 »
Нашел косяк - в настройках порта QSerialPort вместо 8N1 нужно было устанавливать 7N1. Туда полез в последнюю очередь, т.к. в putty стояло 8N1 и все работало((
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: [РЕШЕНО] Работа с QSerialPort по RS-232
«
Ответ #9 :
Октябрь 31, 2018, 08:36 »
Какую то дичь говоришь. Сначала разберись, какие настройки нужны по документации на девайс.
Записан
ArchLinux x86_64 / Win10 64 bit
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: [РЕШЕНО] Работа с QSerialPort по RS-232
«
Ответ #10 :
Октябрь 31, 2018, 09:25 »
Нет в документации этих настроек))
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
sergek
Гипер активный житель
Offline
Сообщений: 872
Мы должны приносить пользу людям.
Re: [РЕШЕНО] Работа с QSerialPort по RS-232
«
Ответ #11 :
Ноябрь 07, 2018, 14:06 »
Истины ради решил указать настоящую причину того, что прибор меня игнорировал. Ее я нашел на следующий день, экспериментируя с Терминалом из состава примеров Qt.
Правильные настройки у прибора, все же, обычные 8-N-1, а отвечать он стал так, как положено, после того, как в конец запроса я дописал символ возврата каретки '\r'. Является ли это особенностью прибора, я не выяснять не стал. Скоро у меня появится еще один прибор с символьным доморощенным протоколом, посмотрю еще и там.
Записан
Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...