Название: [РЕШЕНО] Работа с QSerialPort по RS-232 Отправлено: sergek от Октябрь 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, поэтому и вопрос - есть ли какие-нибудь особенности в обмене по этой шине? Название: Re: Работа с QSerialPort по RS-232 Отправлено: kuzulis от Октябрь 30, 2018, 10:08 [режим телепата] Если исп. версия Qt 5.10.x то там был баг. Нужно исп. или 5.11.х или 5.9.х. [/режим телепата]
Название: Re: Работа с QSerialPort по RS-232 Отправлено: qate от Октябрь 30, 2018, 10:46 Некоторые пользователи сообщали о сбоях в работе через переходник USB/RS-232 на W10, при этом на W7 работает Ок
Каких то особенностей с usb переходником или без - нет Еще порт переходника может "прыгать", если программа открыла порт, и в это время переходник вынуть/вставть - ОС назначит новый свободный порт Название: Re: Работа с QSerialPort по RS-232 Отправлено: sergek от Октябрь 30, 2018, 11:02 Спасибо за информацию.
Насчет 5.10 - учту, в целевой системе (Raspbian) у меня как раз такая. Но на виндах у меня 5.11.1 (в профиле указано))) Название: Re: Работа с QSerialPort по RS-232 Отправлено: kuzulis от Октябрь 30, 2018, 12:20 Цитировать целевой системе (Raspbian) Баг был только в Windows Название: Re: Работа с QSerialPort по RS-232 Отправлено: sergek от Октябрь 30, 2018, 13:42 Это хорошо.
Пробую разные варианты обмена с прибором: - запрос отправляю в программе через QSerialPort, ответ принимаю в терминале Putty; - запрос отправляю через терминал Putty, ответ принимаю в программе через QSerialPort. Т.е. в программе запись в порт и асинхронное чтение из порта работают по отдельности ??? Все извилины заплел, нифига не врубаюсь, где накосячил... Может, глянете мельком (ресурсы в архив не включил, проигнорируйте)? Название: Re: Работа с QSerialPort по RS-232 Отправлено: kuzulis от Октябрь 30, 2018, 14:04 Цитировать - запрос отправляю в программе через QSerialPort, ответ принимаю в терминале Putty; - запрос отправляю через терминал Putty, ответ принимаю в программе через QSerialPort. А как так получается? QSerialPort открывает у-во в монопольном режиме, поэтому ну никак Putty не сможет открыть то-же самое у-во. ЗЫ: Не хочу смотреть код, нет времени разбираться. Это твоя работа, а не моя. Название: Re: Работа с QSerialPort по RS-232 Отправлено: sergek от Октябрь 30, 2018, 14:24 А как так получается? QSerialPort открывает у-во в монопольном режиме, поэтому ну никак Putty не сможет открыть то-же самое у-во. Естественно, по очереди.Название: Re: Работа с QSerialPort по RS-232 Отправлено: sergek от Октябрь 31, 2018, 01:08 Нашел косяк - в настройках порта QSerialPort вместо 8N1 нужно было устанавливать 7N1. Туда полез в последнюю очередь, т.к. в putty стояло 8N1 и все работало((
Название: Re: [РЕШЕНО] Работа с QSerialPort по RS-232 Отправлено: kuzulis от Октябрь 31, 2018, 08:36 Какую то дичь говоришь. Сначала разберись, какие настройки нужны по документации на девайс.
Название: Re: [РЕШЕНО] Работа с QSerialPort по RS-232 Отправлено: sergek от Октябрь 31, 2018, 09:25 Нет в документации этих настроек))
Название: Re: [РЕШЕНО] Работа с QSerialPort по RS-232 Отправлено: sergek от Ноябрь 07, 2018, 14:06 Истины ради решил указать настоящую причину того, что прибор меня игнорировал. Ее я нашел на следующий день, экспериментируя с Терминалом из состава примеров Qt.
Правильные настройки у прибора, все же, обычные 8-N-1, а отвечать он стал так, как положено, после того, как в конец запроса я дописал символ возврата каретки '\r'. Является ли это особенностью прибора, я не выяснять не стал. Скоро у меня появится еще один прибор с символьным доморощенным протоколом, посмотрю еще и там. |