Russian Qt Forum
Ноябрь 25, 2024, 14:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Работа с QSerialPort по RS-232  (Прочитано 8344 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« : Октябрь 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 Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Октябрь 30, 2018, 10:08 »

[режим телепата] Если исп. версия Qt 5.10.x то там был баг. Нужно исп. или 5.11.х или 5.9.х. [/режим телепата]
Записан

ArchLinux x86_64 / Win10 64 bit
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #2 : Октябрь 30, 2018, 10:46 »

Некоторые пользователи сообщали о сбоях в работе через переходник USB/RS-232 на W10, при этом на W7 работает Ок
Каких то особенностей с usb переходником или без - нет
Еще порт переходника может "прыгать", если программа открыла порт, и в это время переходник вынуть/вставть - ОС назначит новый свободный порт
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #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 Offline

Сообщений: 2812


Просмотр профиля
« Ответ #4 : Октябрь 30, 2018, 12:20 »

Цитировать
целевой системе (Raspbian)

Баг был только в Windows
Записан

ArchLinux x86_64 / Win10 64 bit
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #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 Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Октябрь 30, 2018, 14:04 »

Цитировать
- запрос отправляю в программе через QSerialPort, ответ принимаю в терминале Putty;
- запрос отправляю через терминал Putty, ответ принимаю в программе через QSerialPort.

А как так получается? QSerialPort открывает у-во в монопольном режиме, поэтому ну никак Putty не сможет открыть то-же самое у-во.

ЗЫ: Не хочу смотреть код, нет времени разбираться. Это твоя работа, а не моя.

« Последнее редактирование: Октябрь 30, 2018, 14:07 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #7 : Октябрь 30, 2018, 14:24 »

А как так получается? QSerialPort открывает у-во в монопольном режиме, поэтому ну никак Putty не сможет открыть то-же самое у-во.
Естественно, по очереди.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #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 Offline

Сообщений: 2812


Просмотр профиля
« Ответ #9 : Октябрь 31, 2018, 08:36 »

Какую то дичь говоришь. Сначала разберись, какие настройки нужны по документации на девайс.
Записан

ArchLinux x86_64 / Win10 64 bit
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #10 : Октябрь 31, 2018, 09:25 »

Нет в документации этих настроек))
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #11 : Ноябрь 07, 2018, 14:06 »

Истины ради решил указать настоящую причину того, что прибор меня игнорировал. Ее я нашел на следующий день, экспериментируя с Терминалом из состава примеров Qt.
Правильные настройки у прибора, все же, обычные 8-N-1, а отвечать он стал так, как положено, после того, как в конец запроса я дописал символ возврата каретки '\r'. Является ли это особенностью прибора, я не выяснять не стал. Скоро у меня появится еще один прибор с символьным доморощенным протоколом, посмотрю еще и там.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 23.