Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: gf59 от Сентябрь 22, 2009, 22:13



Название: QextSerialEnumerator не видит порты
Отправлено: gf59 от Сентябрь 22, 2009, 22:13
Всем доброго времени суток!
Мы решили написать утилитку для работы с прибором, который подключается через USB-COM.
При подключении прибора ему назначается порт COM 3.

Для работы с ком-портом скачали библиотеку qextserialport 1.2 alpha
Начали разбирать примеры, и у меня оказалось, что пример Enumerator (который перечисляет доступные ком-порты) ничего не видит!
Создал свой собственный проект, и в нём такая же ситуация.

Причём у коллеги этот же пример полностью работоспособен.

Кто-нибудь сталкивался с такой проблемой?
Связано ли это с QT или ещё с чем-то?


Название: Re: QextSerialEnumerator не видит порты
Отправлено: lit-uriy от Сентябрь 22, 2009, 22:36
А ОСьки у вас одинаковые?


Название: Re: QextSerialEnumerator не видит порты
Отправлено: gf59 от Сентябрь 23, 2009, 03:01
Про ОС узнаю - напишу
Строка в примере такая:
Код:
QList<QextPortInfo> ports = QextSerialEnumerator::getPorts();
И после этого ports.size() возвращает 0.

Делаю всё в виртуальной ОС
Пробовал запустить в реальной - то же самое (и там, и там WinXP, только один хомяк, другой - профессионал)

Других ком-портов в системе нет, только COM3 от USB-COM на приборе


Название: Re: QextSerialEnumerator не видит порты
Отправлено: kuzulis от Сентябрь 23, 2009, 07:39
Попробуй библу QSerialDevice - там работает!

ЗЫ: не сочтите за PR :)


Название: Re: QextSerialEnumerator не видит порты
Отправлено: gf59 от Сентябрь 23, 2009, 11:32
lit-uriy, ОС у нас одинаковые

Цитировать
Попробуй библу QSerialDevice - там работает!
У неё лицензия GPL, а нам не хотелось бы исходники открывать

На реальной машине включил в биосе реальный COM1.
QextSerialEnumerator его увидел. Но прибор на COM3 всё равно не видит
Похоже, что он просто с первого начинает, а на втором заканчивает, если там пусто
Соответственно, если и COM1 нет, то заканчивает сразу

Нашёл вот на английском:
http://code.google.com/p/qextserialport/issues/detail?id=13 (http://code.google.com/p/qextserialport/issues/detail?id=13)
Там пишут, что устройство должно быть зарегистрировано с файлом serenum.sys, (видимо чтоб работала связка usb-com)
Советуют подправить inf-файл и GUID в исходниках библиотеки
Сделал, не помогло :(


Название: Re: QextSerialEnumerator не видит порты
Отправлено: FormatCft от Сентябрь 23, 2009, 14:26
kuzulis. А энумирацию делает вами предложенный инструмент?


Название: Re: QextSerialEnumerator не видит порты
Отправлено: pastor от Сентябрь 23, 2009, 14:38
2 gf59: Можешь сам самостоятельно вычитать информацию  о портах (в том числе и виртуальных) из реестра


Название: Re: QextSerialEnumerator не видит порты
Отправлено: gf59 от Сентябрь 23, 2009, 14:59
pastor, спасибо
А в реестре всегда актуальная информация об устройствах?


Название: Re: QextSerialEnumerator не видит порты
Отправлено: Prm от Сентябрь 23, 2009, 15:05
QextSerialEnumerator возвращает только те порты, которые видно в диспетчере устройств (они же и присутствуют в реестре).  Если портов нет - явно проблема в драйверах.

Был случай, стояла плата портов от Advantech, дрова, как в последствии выяснилось, установились криво. В результате, в диспетчере порты не отображались, а терминалка с портами работать могла (ComPump). QextSerialEnumerator также портов не видел. Установили дрова заново - все заработало как надо.

Если в преобразователе USB-COM используется микруха FT232... можно попробовать установить сертифицированные драйвера.


Название: Re: QextSerialEnumerator не видит порты
Отправлено: gf59 от Сентябрь 23, 2009, 15:17
Prm, в диспетчере устройств com-порт появился
и потом, другая программа (написанная в BDS) всё нормально видит


Название: Re: QextSerialEnumerator не видит порты
Отправлено: kuzulis от Сентябрь 23, 2009, 16:08
Цитировать
kuzulis. А энумирацию делает вами предложенный инструмент?
Должен. Он из реестра читает.


Название: Re: QextSerialEnumerator не видит порты
Отправлено: pastor от Сентябрь 23, 2009, 16:33
pastor, спасибо
А в реестре всегда актуальная информация об устройствах?

Да, актуальная. Можешь сам подключить девайс и глянуть ветвь "HKLM\HARDWARE\DEVICEMAP\SERIALCOMM"


Название: Re: QextSerialEnumerator не видит порты
Отправлено: gf59 от Сентябрь 23, 2009, 19:48
Проблему решил, всем спасибо!


Название: Re: QextSerialEnumerator не видит порты
Отправлено: pastor от Сентябрь 24, 2009, 09:31
Проблему решил, всем спасибо!

А поделиться решением с сообществом? ;)


Название: Re: QextSerialEnumerator не видит порты
Отправлено: gf59 от Сентябрь 24, 2009, 20:44
pastor, проблему решил не сам, а с помощью советов сообщества :)
Короче, использую QSerialDevice
Ну и из реестра наверное тоже придётся читать



Название: Re: QextSerialEnumerator не видит порты
Отправлено: kolob от Декабрь 18, 2012, 11:54
Такая же проблема. Но как то не охота на сторонние библиотеки переходить.
В диспетчер все порты видны. А в программе только COM1, Virtual COM не видит.


Название: Re: QextSerialEnumerator не видит порты
Отправлено: kuzulis от Декабрь 18, 2012, 12:05
Цитировать
Но как то не охота на сторонние библиотеки переходить.
Значит придется есть кактус :) , хотя, там были какие-то коммиты для расширенной поддержки устройств,
но я ХЗ, работает или нет.

UPD: Как будто, QextSerialPort - это "не сторонняя"...

UPD2: Но другая "сторонняя" либа QtSerialPort  (http://qt-project.org/wiki/QtSerialPort_Russian)точно поддерживает туеву хучу портов.  ::)


Название: Re: QextSerialEnumerator не видит порты
Отправлено: kolob от Декабрь 18, 2012, 12:14
Цитировать
UPD: Как будто, QextSerialPort - это "не сторонняя"...

дело в том что прога уже есть. придется наверно переписывать используя QtSerialPort.
Везде о ней только и говорят.


Название: Re: QextSerialEnumerator не видит порты
Отправлено: Bepec от Декабрь 18, 2012, 13:02
kuzulis преуспел в его создании :) виват ;)


Название: Re: QextSerialEnumerator не видит порты
Отправлено: kolob от Декабрь 18, 2012, 13:56
Какая то ерунда
прога с библиотекой qextserialport.1.2win-alpha2 не видит VCOM,
а прога с библиотекой qextserialport-1.2beta1 видит.


Название: Re: QextSerialEnumerator не видит порты
Отправлено: b-s-a от Декабрь 18, 2012, 14:51
kolob, а что собственно тебя удивляет? Было бы удивительно, если было наоборот.


Название: Re: QextSerialEnumerator не видит порты
Отправлено: kolob от Декабрь 18, 2012, 15:02
b-s-a, меня удивляет то что первая выпущена позже, чем вторая