Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Нумерация портов  (Прочитано 16067 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Cristianu
Интересующийся

ua
Offline Offline

« : 14-03-2011 10:19 » new

Народ, помогите пожалуйста, кто может.
Насколько я понял, из своего задания:
На компе с ОС Windows XP присутствует множество портов, например LPT1, LPT2, COM1, COM2, COM3, USB1, USB2, USB3.
К каждому из портов привязано устройство по физическому расположению разъема. Например, если представить, что все 3 порта USB расположены вертикально, верхний USB - одно устройство, средний - другое, нижний - третье.  Аналогично и с COM, LPT - портами.
Таким образом может получиться такая нумерация(изначальная):
Port1 - COM1
Port2 - COM2
Port3 - LPT1
Port4 - USB3
Port5 - LPT2
Port6 - COM3
Port7 - USB1
Port8 - USB2
(Список 1)

И, насколько я понял, windows самопроизвольно может перенумеровать эти порты, в произвольном порядке.
Допустим так:
Port1 - LPT2
Port2 - USB1
Port3 - LPT1
Port4 - USB3
Port5 - COM1
Port6 - COM3
Port7 - COM2
Port8 - USB2
(Список 2)

Специализированное ПО думает, что Port1 - COM1, а в результате, на самом деле Port1 - LPT2, и соответственно ПО не запускается.
Моя задача, насколько я понял, - написать программу, которая составит актуальный список портов(обязательно посредством WinApi), чтобы ПО знало, где какой из портов находится в текущий момент времени - то есть заменить (список 1) на (список 2).
Я не могу ничего найти о том, как нумеруются порты в Винде, не знаю даже какую литературу почитать. Уже неделю в инете роюсь безрезультатно. (( 
Насколько я понял из найденного за это время, нет единой нумерации всех портов COM, LPT, USB сразу. Может я что-то не верно понял - хз.
Существует ли вообще такая нумерация, как в (список 1) и в (список 2)? Если да, то какие есть варианты решения этой задачи?
Заранее благодарю за помощь.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 14-03-2011 10:32 » 

Физическое расположение портов на плате (корпусе) ни как не связанно с реальным расположением портов в системе.

Чтобы понять адресацию портов, и принцип работы с портами ввода/вывода - нужно почитать какую-нибудь  статью (а лучше с десяток) про Архитектуру PC, начиная с самых элементарных
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 14-03-2011 10:48 » 

Почитай, может, еще вот эту тему: определить СОМ порты под разными версиями Windows
Может что и прояснится...

Но на 100% прав Sla - система ничего не знает про физическое раположение - она ориентируется на порядок подключения.
Кстати понятие порт выходит далеко за границы Serial+LPT+USB. Так что в лучшем случае если ты и найдешь сквозную нумерацию портов в системе - то получишь список с промежутками:
101 - COM1
211 - COM2
235 - USB1
...

Скорее всего указанный список задан где-то в настройках твоего "Специализированного ПО" и Windows тут ни при чем
Записан
Cristianu
Интересующийся

ua
Offline Offline

« Ответ #3 : 14-03-2011 11:31 » 

Kivals
А как получить сквозную нумерации портов посредством WinApi?


Sla
Не могли бы вы посоветовать какую-нибудь книгу, или хотя бы сайт, где можно вникнуть в суть работы портов PC, как с ними работает ОС Windows. Я даже не знаю с чего начать, а время уже поджимает.   Жаль
Записан
Kivals
Команда клуба

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 14-03-2011 11:52 » 

Cristianu, читай внимательно:
... если ты и найдешь сквозную нумерацию ...

ИМХО сквозная нумерация - это философский вопрос. Ты можешь выбрать порядок нумерации портов:
а) по имени
б) по пользовательскому представлению
в) по времени создания ключа в реестре
....
и получишь абсолютно разную нумерацию. Система не оперирует с понятием сквозной нумерации портов - ей это не нужно.
Потому смотри лучше в сторону настроек твоего "Специализированного ПО": где оно их хранит (реестр или какой-то файл) и в каком формате - и попытайся исходя из этого понять как нумеруются порты в специализированном ПО (а не в системе)...
Записан
Cristianu
Интересующийся

ua
Offline Offline

« Ответ #5 : 14-03-2011 11:56 » 

Kivals
понятно, как я и подозревал, нужно узнавать как работает та прога с портами
спасибо за ответ  Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines