QtSerialPort, Проблема сборки QtSerialPort под Windows |
Здравствуйте, гость ( Вход | Регистрация )
QtSerialPort, Проблема сборки QtSerialPort под Windows |
kuzulis |
21.10.2014, 10:23
Сообщение
#111
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Блин, что за ересь... Я даже не буду комментировать эту кашу в голове...
|
|
|
ahalaj |
21.10.2014, 14:01
Сообщение
#112
|
Студент Группа: Участник Сообщений: 47 Регистрация: 14.6.2014 Пользователь №: 4166 Спасибо сказали: 13 раз(а) Репутация: 1 |
А, что? QSerialPortInfo::availablePorts() возвращает вообще все устройства которые определились в системе. Именно, определилИСЬ. А если в данный момент к виртуальному порту ничего не подключено, то его нет в диспетчере устройств, соотвественно, и в списке его тоже нет. Знакомо. Я в своё время использовал SetupAPI чтобы найти устройства, которых нет в диспетчере устройств потому как физическое устройство не подключено, но фактически такое устройства в системе имеются потому как были однажды подключены. Конечно это далеко не Qt и далеко не переносимо, будет работать только под виндами, но работать будет. И найдёт все устройства. Копай в сторону тут и далее. |
|
|
kuzulis |
21.10.2014, 18:57
Сообщение
#113
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Ах, если имелось ввиду найти все у-ва которые когда-либо были подключены и определены, а теперь являются "скрытыми" hidden (т.к. их например, выдернули из USB) и кстати, их можно отобразить в диспетчере устройств.
То это не проблема, достаточно удалить (закомментировать) DIGCF_PRESENT в qserialportinfo_win.cpp и пересобрать. Но это не Цитата "а мне нужно все вообще". как говорит ТС. Да и непонятно зачем это вообще надо. |
|
|
borune |
22.10.2014, 6:09
Сообщение
#114
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
Но это не Цитата "а мне нужно все вообще". как говорит ТС. именно то, все установленные виртуальные порты. Внимательнее читайте вопрос прежде, чем делать какие-то заключения. Да и непонятно зачем это вообще надо Зачем нужно? Да вариантов можно придумать много, зачем это может быть нужно. Объясняю, зачем нужно именно мне. Разрабатываю программу, которая должна автоматически подхватывать устройство при его подключении. Для этого требуется постоянно опрашивать все установленные порты. Сообщение отредактировал borune - 22.10.2014, 10:41 |
|
|
kuzulis |
22.10.2014, 19:42
Сообщение
#115
|
Активный участник Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: 7 |
Изначальный вопрос был некорректен.
|
|
|
borune |
22.10.2014, 20:17
Сообщение
#116
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
borune |
23.10.2014, 19:37
Сообщение
#117
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
Господа, вопрос актуален, ибо тов. kuzulis мало того, что не понимает русского языка, так еще и дает неверные советы. Как получить список всех когда-либо установленных ком портов средствами QSerialPort?
|
|
|
ahalaj |
23.10.2014, 21:13
Сообщение
#118
|
Студент Группа: Участник Сообщений: 47 Регистрация: 14.6.2014 Пользователь №: 4166 Спасибо сказали: 13 раз(а) Репутация: 1 |
Господа, вопрос актуален, ибо тов. kuzulis мало того, что не понимает русского языка, так еще и дает неверные советы. Как получить список всех когда-либо установленных ком портов средствами QSerialPort? Единственное что лично я могу предложить, это мой маленький кусочек из исходника 10-тилетней давности. Но он на Delphi и естественно никаким QSerialPort там и не пахнет. Мне в то время надо было ловить подключение мобильных телефонов Nokia через интерфейс DKU-2. При каждом подключении создавался виртуальный ком-порт, при первом подключении система его у себя прописывала и запоминала, при отключении этот виртуальный ком-порт из диспетчера задач пропадал, но система созданную запись о нём не забывала и в системе он всё равно присутствовал, правда был hidden пока телефон физически не подключишь. И вот мне надо было ловить и видимые в диспетчере устройства, подключенные реально, и невидимые, но про которые система знала. Использовался SetupApi.pas из JEDI Visual Component Library (в 2004-м году этот юнит назывался SetupApi.pas, сейчас он же называется по-моему JvSetupApi.pas, я с тех пор в эту библиотеку не лазил, как 10 лет назад сделал так и забыл, принцип программиста "работает -- не трожь!" ) Вот моя функция на Delphi, которая этот SetupApi.pas использует. Раскрывающийся текст
Расчитано именно на DKU-2 и именно для мобильных телефонов Nokia, но по аналогии думаю можно разобраться что там к чему. Больше помочь ничем не могу, извини. |
|
|
ahalaj |
23.10.2014, 22:27
Сообщение
#119
|
Студент Группа: Участник Сообщений: 47 Регистрация: 14.6.2014 Пользователь №: 4166 Спасибо сказали: 13 раз(а) Репутация: 1 |
Единственное что лично я могу предложить, это мой маленький кусочек из исходника 10-тилетней давности. Но он на Delphi и естественно никаким QSerialPort там и не пахнет. [...] Нашёл ещё кое-что. Докопался я тогда до этого дела путём наглого и бессовестного реверсинга trial копии LogoManager For Nokia phones. В те времена это был единственный софт помимо родной для телефонов Nokia программы Nokia PC Suite который умел находить виртуальные порты DKU-2 как для подключенных, так и для неподключенных физически телефонов. Весь путь реверсинга я сохранял в C со своими коментариями по ходу чтобы после было легче понять что там к чему. Потом уже переделал на Delphi потому что в продакшн надо было на Delphi отдавать. Так что вот то, из чего после был сделан предыдущий паскальный исходник. Опять не Qt, но думаю что C всё же поближе должно быть чем Pascal. Тут и коментариев чуть больше, и SetupApi.pas не требуется, всё в обычном стандартном Microsoft Windows SDK имеется. Ищутся исключительно виртуальные порты DKU-2 для мобильных телефонов Nokia как и реально подключенные, так и hidden, которые в диспетчере устройств не показаны, но в системе тем не менее есть. Стиль кода, определение ошибок и сами ошибки -- это всё не моё, данная функция отреверсена из LogoManager For Nokia phones практически "один в один", в оригинале не было только никаких вызовов logData(const char *format, ...), а всё остальное оттуда © 2004 год. Раскрывающийся текст
Сообщение отредактировал ahalaj - 23.10.2014, 23:19 |
|
|
borune |
24.10.2014, 7:28
Сообщение
#120
|
Участник Группа: Участник Сообщений: 152 Регистрация: 1.1.2011 Пользователь №: 2314 Спасибо сказали: 0 раз(а) Репутация: 0 |
ahalaj, спасибо большое, но мне хотелось бы все же через QSerialPort сделать. В такие дебри лезть неохота, если честно, но за помощь спасибо тебе.
|
|
|
Текстовая версия | Сейчас: 22.11.2024, 10:53 |