Russian Qt Forum
Ноябрь 27, 2024, 02:44 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как узнать доступные com порты (win/linux)?  (Прочитано 13817 раз)
yashaka
Гость
« : Март 23, 2010, 17:01 »

Интересует решение задачи ідентификации доступных в системе ком портов... Как это можно сделать?

В принципе можно вынести список потенциально доступных портов и пусть пользователь сам выбирает тот который у него на машине есть и будет использован. Но захотелось чисто с научным интересом вычислить это програмно...Улыбающийся
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Март 23, 2010, 17:04 »

если имеется ввиду - не занятые , то

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

ArchLinux x86_64 / Win10 64 bit
kostya2vntu
Гость
« Ответ #2 : Март 25, 2010, 19:52 »

Посмотри в сторону QSerialDevice, а именно QSerialDeviceWatcher. (Насколько я понял 'потенциально' == 'присутствуют в системе')
http://fireforge.net/projects/qserialdevice/
Записан
Sunder
Гость
« Ответ #3 : Март 25, 2010, 22:33 »

Возможно.
В Windows - в ветви реестра перечислены все порты системы - этим пользуется например компонент QSerialDevice
В Linux - можно маскировать в dev устройства  по например ttyS, ttyUSB ttyACM но способ ненадёжный.
Платы MOXA например имеют имена  ttyMI0-ttyMIX, платы Advantech - другие, и вообще можно создать порт с любым именем с помощью setserial

Мне кажется определять можно так, как определяет команда lshal - например наберите в консоли lshal |grep tty и все порты в системе будут отображены. Но как она это делает я пока не понял
Записан
yashaka
Гость
« Ответ #4 : Март 26, 2010, 09:14 »

Спасибо! Буду разбираться:) И з QSerialDevice и с lshal интересно стало:)
Записан
tim474
Гость
« Ответ #5 : Март 27, 2010, 15:21 »

А единого для всех платформ, на которых работает Qt, способа сделать сабж нет? Чтобы не подрывать кроссплатформенность программы, написанной с использованием Qt.
Записан
crossly
Гость
« Ответ #6 : Март 27, 2010, 15:40 »

нет... да и никто не мешает сделать кроссплатформенное решение.... 
Записан
tim474
Гость
« Ответ #7 : Март 28, 2010, 05:23 »

Цитировать
нет... да и никто не мешает сделать кроссплатформенное решение.... 
Сделать можно, но для этого надо писать её для каждой платформы отдельно. А если бы этот функционал был бы в Qt, то, если я пишу на qt программу, работающую с последовательными портами, то мне было бы не нужно заботиться о том, соберётся ли она на и будет ли работать на той или иной платформе, при условии что для этой платформы доступен Qt.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #8 : Март 28, 2010, 16:30 »

Цитировать
Сделать можно, но для этого надо писать её для каждой платформы отдельно. А если бы этот функционал был бы в Qt, то, если я пишу на qt программу, работающую с последовательными портами, то мне было бы не нужно заботиться о том, соберётся ли она на и будет ли работать на той или иной платформе, при условии что для этой платформы доступен Qt.

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

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


Записан

ArchLinux x86_64 / Win10 64 bit
yashaka
Гость
« Ответ #9 : Март 28, 2010, 17:59 »

Мда, повеселили вы меня, ребята:)

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

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

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

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.