Russian Qt Forum

Qt => Общие вопросы => Тема начата: yashaka от Март 23, 2010, 17:01



Название: Как узнать доступные com порты (win/linux)?
Отправлено: yashaka от Март 23, 2010, 17:01
Интересует решение задачи ідентификации доступных в системе ком портов... Как это можно сделать?

В принципе можно вынести список потенциально доступных портов и пусть пользователь сам выбирает тот который у него на машине есть и будет использован. Но захотелось чисто с научным интересом вычислить это програмно...:)


Название: Re: Как узнать доступные com порты (win/linux)?
Отправлено: kuzulis от Март 23, 2010, 17:04
если имеется ввиду - не занятые , то

в винде - пробовать открывать
в линухе - смотреть наличие LoCK файла и/или тоже открывать


Название: Re: Как узнать доступные com порты (win/linux)?
Отправлено: kostya2vntu от Март 25, 2010, 19:52
Посмотри в сторону QSerialDevice, а именно QSerialDeviceWatcher. (Насколько я понял 'потенциально' == 'присутствуют в системе')
http://fireforge.net/projects/qserialdevice/ (http://fireforge.net/projects/qserialdevice/)


Название: Re: Как узнать доступные com порты (win/linux)?
Отправлено: Sunder от Март 25, 2010, 22:33
Возможно.
В Windows - в ветви реестра перечислены все порты системы - этим пользуется например компонент QSerialDevice
В Linux - можно маскировать в dev устройства  по например ttyS, ttyUSB ttyACM но способ ненадёжный.
Платы MOXA например имеют имена  ttyMI0-ttyMIX, платы Advantech - другие, и вообще можно создать порт с любым именем с помощью setserial

Мне кажется определять можно так, как определяет команда lshal - например наберите в консоли lshal |grep tty и все порты в системе будут отображены. Но как она это делает я пока не понял


Название: Re: Как узнать доступные com порты (win/linux)?
Отправлено: yashaka от Март 26, 2010, 09:14
Спасибо! Буду разбираться:) И з QSerialDevice и с lshal интересно стало:)


Название: Re: Как узнать доступные com порты (win/linux)?
Отправлено: tim474 от Март 27, 2010, 15:21
А единого для всех платформ, на которых работает Qt, способа сделать сабж нет? Чтобы не подрывать кроссплатформенность программы, написанной с использованием Qt.


Название: Re: Как узнать доступные com порты (win/linux)?
Отправлено: crossly от Март 27, 2010, 15:40
нет... да и никто не мешает сделать кроссплатформенное решение.... 


Название: Re: Как узнать доступные com порты (win/linux)?
Отправлено: tim474 от Март 28, 2010, 05:23
Цитировать
нет... да и никто не мешает сделать кроссплатформенное решение.... 
Сделать можно, но для этого надо писать её для каждой платформы отдельно. А если бы этот функционал был бы в Qt, то, если я пишу на qt программу, работающую с последовательными портами, то мне было бы не нужно заботиться о том, соберётся ли она на и будет ли работать на той или иной платформе, при условии что для этой платформы доступен Qt.


Название: Re: Как узнать доступные com порты (win/linux)?
Отправлено: kuzulis от Март 28, 2010, 16:30
Цитировать
Сделать можно, но для этого надо писать её для каждой платформы отдельно. А если бы этот функционал был бы в Qt, то, если я пишу на qt программу, работающую с последовательными портами, то мне было бы не нужно заботиться о том, соберётся ли она на и будет ли работать на той или иной платформе, при условии что для этой платформы доступен Qt.

Несовсем понятно что вы имеете ввиду!? Что значит если бы функционал был в Qt ?

В исходниках Qt оно итак написано для разных платформ отдельно!!! Например смотрите QtNetwork, т.е. перечислены "все" платформы! В чем проблема то?




Название: Re: Как узнать доступные com порты (win/linux)?
Отправлено: yashaka от Март 28, 2010, 17:59
Мда, повеселили вы меня, ребята:)

Цитировать
А если бы этот функционал был бы в Qt
- это как раз и значит:
Цитировать
В исходниках Qt оно итак написано для разных платформ отдельно!!!

Когда появился вопрос о том есть ли единое решение. Появился ответ что "единое" решение это только: "если бы этот функционал был бы в Qt", и даже там оно было: "надо писать её для каждой платформы отдельно", - что есть то же что и в последнем посте: "В исходниках Qt оно итак написано для разных платформ отдельно!!!"

P.S. (Извиняюсь за Офтоп:))
За это и не люблю форумы:) - за то что вокруг простых вещей много шума поднимается изза того что каждый видит в написаным то что хочет увидеть, а не сперва думает что автор этим хотел сказать... С другой стороны как бы и писать лучше стараться так чтобы всем было понятно... что, кстати, и приводит к тому что становится скучно иногда... Но все это относительно... "Ребята, давайте жить дружно!" :)))))))))))))))))