Russian Qt Forum

Qt => Qt Embedded => Тема начата: Денис от Октябрь 04, 2014, 23:26



Название: Qt с виртуальным COM-устройством (RS232)
Отправлено: Денис от Октябрь 04, 2014, 23:26
Проблеа в следующем:
В проекте необходимо реализовать общение с устройством по RS232-порту, но есть проблемка устройства нету на руках и к томуже ответную часть должен написать еще один программист для устройства, следовательно процесс может задержаться ...
Возникла идея создания простенького терминального потока виртуально-подключенный к COM-порту вместо реального устройства, программа не должна быть большой, но натолкнулся на проблему не знания библиотеки с помощью которой можно это реализовать ... Подскажите пожалуйста ?


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: Bepec от Октябрь 04, 2014, 23:36
http://www.aggsoft.ru/virtual-null-modem.htm



Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: Денис от Октябрь 05, 2014, 15:41
Скачивал, но если ее запустить то не удается открыть порт нужный, потому что он занят, а мне надо лишь направить данные в поток ком-порта, перенаправление сделать, чтобы я мог смотреть данные ... ?


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: Bepec от Октябрь 05, 2014, 16:11
Эта штука позволяет создать пару виртуальных ком портов. То, что пишется в один - будет читаться из второго и наоборот.
Создаём пару COM1-COM2.
Таким образов у вас программа-имитатор будет работать на COM1, а программа работающая с устройством на COM2.


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: kuzulis от Октябрь 05, 2014, 17:06
Я бы не рекомендовал "virtual-null-modem", т.к. оно неработающее в принципе (я уже много раз писал).

Поэтому рекомендую open-source (бесплатное): http://sourceforge.net/projects/com0com/
ну, или на крайний случай ПО от Eltima (триалка на 14 дней, если не ошибаюсь).

Ничего более вменяемого для эмуляции последовательных портов в Windows нет.

PS: Если используется 64-х битная ОС и com0com то нужно качать  подписанные драйвера com0com: https://code.google.com/p/powersdr-iq/downloads/detail?name=setup_com0com_W7_x64_signed.exe&can=2&q=


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: Bepec от Октябрь 05, 2014, 19:01
Эмм, мне страшно это говорить разработчику QSerialPort, но только эта программа у меня нормально и работает :D


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: Old от Октябрь 05, 2014, 19:16
Эмм, мне страшно это говорить разработчику QSerialPort, но только эта программа у меня нормально и работает :D
Да для венды это нормальная ситуация, когда одна и та же программа по разному работает, казалось бы на одинаковых машинах с одинаковыми системами. :)


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: Bepec от Октябрь 05, 2014, 19:31
Не надо начинать, а? :) Тот же вариант бывает и с линуксом, если чуть чуть разное железо :)


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: Old от Октябрь 05, 2014, 19:48
Не надо начинать, а? :) Тот же вариант бывает и с линуксом, если чуть чуть разное железо :)
Не бывает. :)


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: kuzulis от Октябрь 05, 2014, 19:53
Цитата: Bepec
Эмм, мне страшно это говорить разработчику QSerialPort, но только эта программа у меня нормально и работает

1. Ну вот только что скачал последнюю триальную  версию (2.5.5.701).
2. Установил, настроил пару портов COM30 и COM31
3. Запустил две сессии терминала Termite: http://www.compuphase.com/software_termite.htm
- одна сессия для COM30
- вторая сессия для COM31
4. Напечатал символ "q", жмакнул "отправить"

В итоге экземпляр Termite (который принимающая сторона) - тупо завис и крешнулся.

Далее, вместо Termite для приема запустил пример Terminal из QSerialPort - приемная сторона начинает принимать какой-то стрим мусора..

И это поведение было на всех компах ка которых я тестил (Win 7x64, Win8.1x64, Win8.1x32).

Так что не надо гнать на Windows - руки у разработчиков через одно место просто.   ;)

Цитата: Old
Не бывает.

На Windows тоже не бывает. Все проблемы от кривых рук программистов, к сожалению.

PS: Да и все продукты от AGG Software к сожалению не блещут.


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: Bepec от Октябрь 05, 2014, 19:55
Угу. Особенно когда старый дистрибутив берёшь, а там то не собрано, а вон то вообще не собирается на этой версии, а вот это там подправить нужно. Угу, всё просто и легко.

PS программы на виндовс устанавливаются всегда и в равных условиях работают однозначно. Другой вопрос зависит от состояния системы - можно вообще всё испортить :)

to Kuzulis: я не видел такой программы. Пример terminal из QSerialPort работает нормально и жмякается спокойно.

update: попробовал ваш термите - видимо ошибка в нём. Енергиа, Ардуино IDE, собственно написанная программа и device studio спокойно принимают и отправляют данные. Собственно драйвер нормален, порты нормальны - видимо что-то всё же внутри термитника :)


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: kuzulis от Октябрь 05, 2014, 20:17
Хм.. Проверил только что с putty - вроде все нормально (хотя, при первой инициализации, putty принял один мусорный символ в самом начале. больше этого не повторялось).. Может что и пофиксили за это время, т.к. ранее оно (virtual-null-modem) глючило безбожно.
Ок, забираю слова назад по поводу AGG - вроде оно работает (но все-равно не со всеми терминалами).


Название: Re: Qt с виртуальным COM-устройством (RS232)
Отправлено: Bepec от Октябрь 05, 2014, 20:34
Как грится - со стороны agg пакеты вылетели, проблемы на вашей стороне :)