Название: [РЕШЕНО]QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 12, 2013, 15:35 Добрый день, форумчане. Подскажите пожалуйста как исправить такое (на рисунке). Виртуальные порты с 7-го по 10-ый создаются программой TelitSerialPortMux. Можно конечно убрать эти непонятные задвоения программно, но может быть я неправильно получаю список портов? Вот код:
Код: void CGPSTerminal::slotUpdateListPorts() m_ui->m_cbPortList - QComboBox. Название: Re: QtSerialPort и виртуальные порты Отправлено: kuzulis от Апрель 12, 2013, 16:03 А диспетчер устройств что показывает?
UPD: Дай ссылку где скачать TelitSerialPortMux Название: Re: QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 12, 2013, 16:25 вот диспетчер задач..
Название: Re: QtSerialPort и виртуальные порты Отправлено: Bepec от Апрель 12, 2013, 16:25 У меня такое было правда с другой программкой. Не публичной.
Она создавала 1 виртуальный и 1 замкнутый на него порт. Название: Re: QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 12, 2013, 16:35 вот ссылка на программу: http://www.roundsolutions.com/techdocs/driver_tools/SerialPortMux1.09.zip
Название: Re: QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 12, 2013, 16:39 здесь получается прямой порт, тот что отмечен как третий - через него мы работаем напрямую с устройством (прошивка, обновление скриптов), когда в нем программа не запустилась и виртуальные через которые идет работа с запущенным устройством.
Название: Re: QtSerialPort и виртуальные порты Отправлено: kuzulis от Апрель 12, 2013, 19:02 Нужно ли наличие реального оборудования для того чтобы создать и открыть виртуальные порты?
Или можно просто установить эту программулину, насоздавать порты и типа пользоваться ими? Название: Re: QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 12, 2013, 20:52 Извините не смог сразу ответить, младшую укладывал. Наличие реального оборудования не надо, они и так будут присутствовать в системе после запуска...мы работаем с модемами GE863-GPS (GPS-трекеры). Просто установите эту программу и запустите ее и можно будет посмотреть что не так.
Название: Re: QtSerialPort и виртуальные порты Отправлено: kuzulis от Апрель 12, 2013, 20:57 Итак, посмотрел я как там что.
Оказывается, что реально устройства типа NULL_COMx реально присутствуют в системе. Имеют "дружественное имя" типа "Eltima VSPort Controlling Device for COMx". Реально эти устройства могут и не являться последовательными портами, определить это невозможно в силу того, что действительные "виртуальные" порты (с именами COMx) и эти "контрол" девайсы (с именами NULL_COMx) имеют один и тот же GUID. Цитировать // Eltima Virtual Serial Port Driver v4 GUID { 0xCC0EF009, 0xB820, 0x42F4, { 0x95, 0xA9, 0x9B, 0xFA, 0x6A, 0x5A, 0xB7, 0xAB } }, Этот GUID не является стандартным для последовательных портов или модемов (см. MSDN), а является "высером" фирмы-производителя драйвера/тулзы TelitSerialPortMux. Энумерация устройств осуществляется по предопределенным GUID-ам. Цитировать // Windows Ports Class GUID { 0x4D36E978, 0xE325, 0x11CE, { 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18 } }, // Virtual Ports Class GUID (i.e. com0com and etc) { 0xDF799E12, 0x3C56, 0x421B, { 0xB2, 0x98, 0xB6, 0xD3, 0x64, 0x2B, 0xC8, 0x78 } }, // Windows Modems Class GUID { 0x4D36E96D, 0xE325, 0x11CE, { 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18 } }, // Eltima Virtual Serial Port Driver v4 GUID { 0xCC0EF009, 0xB820, 0x42F4, { 0x95, 0xA9, 0x9B, 0xFA, 0x6A, 0x5A, 0xB7, 0xAB } }, // Advanced Virtual COM Port GUID { 0x9341CD95, 0x4371, 0x4A37, { 0xA5, 0xAF, 0xFD, 0xB0, 0xA9, 0xD1, 0x96, 0x31 } }, Из которых первый и третий - стандартные. Остальные - это "высеры" производителей, поэтому я ничего сделать не могу в этой ситуации. Ты сам отсеивай "левые " девайсы. Название: Re: QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 12, 2013, 21:09 спасибо большое, значит будем выкидывать их выкидывать так, не сложно :), тогда будем считать, что вопрос решен :)...еще раз спасибо.
Название: Re: [РЕШЕНО]QtSerialPort и виртуальные порты Отправлено: kuzulis от Апрель 12, 2013, 22:33 Похоже, все-таки, что эти NULL_COMx устройства все-таки являются последовательными портами.
Я сделал патч для енумерации с использованием через GUID интерфейсы, что более корректно. Парни, проверьте кто-нибудь у себя, правильно ли оно теперь перечисляет, все-ли находит как раньше? Патч: https://codereview.qt-project.org/#change,53725 Нужно статистику набрать :) Название: Re: [РЕШЕНО]QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 12, 2013, 23:36 есть вопрос: а как применить патч ???, правда опробовать смогу только в понедельник....
Название: Re: [РЕШЕНО]QtSerialPort и виртуальные порты Отправлено: kuzulis от Апрель 13, 2013, 09:03 Нужен Git:
Цитировать $git clone git://gitorious.org/qt/qtserialport.git $cd qtserialport $git fetch https://codereview.qt-project.org/p/qt/qtserialport refs/changes/25/53725/2 && git checkout FETCH_HEAD И пересобрать. Или вручную копипастить, там изменений мало: https://codereview.qt-project.org/#patch,sidebyside,53725,2,src/serialport/qserialportinfo_win.cpp Название: Re: [РЕШЕНО]QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 13, 2013, 10:52 спасибо, в понедельник попробую...git я тоже использую, очень удобно, когда и на работе и дома что-то делаешь...в команде пока не работал :)
Название: Re: [РЕШЕНО]QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 15, 2013, 11:04 Пересобрал библиотеку и вроде бы все осталось по старому, т.е. все то что было, так и осталось...значит почищу ручками:)
Название: Re: [РЕШЕНО]QtSerialPort и виртуальные порты Отправлено: kuzulis от Апрель 15, 2013, 15:21 Ну да, должно остаться.
Просто по-новому реализация более правильная. И теперь, раз она показывает у-ва NULL_COMx - то с большой вероятностью это последовательные порты. Название: Re: [РЕШЕНО]QtSerialPort и виртуальные порты Отправлено: Larry от Апрель 15, 2013, 15:55 спасибо, понял..я уже руками убрал в две строчки...сейчас все нормально работает :)...спасибо...
|