Как узнать физический адрес порта USB->RS232

appolinari

Имеется шнурок USB->RS232 (HL-340).

После установки драйвера в Device Manager пояпилось новое устройство - порт СОМ1. Поскольку порт виртуальный, в свойствах его в Device Manager не вижу его адрес.

В идеале требуется узнать физический адрес COM порта… 😕

mura
appolinari:

Имеется шнурок USB->RS232 (HL-340).

После установки драйвера в Device Manager пояпилось новое устройство - порт СОМ1. Поскольку порт виртуальный, в свойствах его в Device Manager не вижу его адрес.

В идеале требуется узнать физический адрес COM порта… 😕

Ответ в вопросе, поскольку порт ВИРТУАЛЬНЫЙ, то ФИЗИЧЕСКОГО адреса нет и быть не может - работайте через драйвер, а не напрямую.

appolinari

Дело в том, что я надеялся подключить станок к мач3 через сей девайс 😦

STEPMOTOR
appolinari:

Имеется шнурок USB->RS232 (HL-340).

После установки драйвера в Device Manager пояпилось новое устройство - порт СОМ1. Поскольку порт виртуальный, в свойствах его в Device Manager не вижу его адрес.

В идеале требуется узнать физический адрес COM порта… 😕

Адрес ком порта виртуальный ! зачем Вам физический если при программирование это не требуется ?

appolinari
STEPMOTOR:

Адрес ком порта виртуальный ! зачем Вам физический если при программирование это не требуется ?

Не всё так просто… в свойствах этого кабеля отсутствует вкладка ресурсы…
А следовательно я не вижу всю поднаготную сего прибамбаса…

toxa

у виртуального порта нет физического адреса, только имя устройства, например: “\\.\COM1”. вы не можете увидеть закладу “ресурсы”, потому что никаких “ресурсов” нет.

moon
toxa:

у виртуального порта нет физического адреса, только имя устройства, например: “\\.\COM1”. вы не можете увидеть закладу “ресурсы”, потому что никаких “ресурсов” нет.

Как может не быть ресурсов? если есть устройство, к нему ведь надо обращатся!
Адрес и прерывание порта USB к которому подключен кабель-переходник. 😃

toxa
moon:

Как может не быть ресурсов? если есть устройство, к нему ведь надо обращатся!

обращаться к нему по имени через стандартное api.

moon:

Адрес и прерывание порта USB к которому подключен кабель-переходник. 😃

это дело драйвера, который делает этот самый виртуальный com-порт. вы общаетесь с этим виртуальным ком-портом через стандартное api, а уж дальше - дело драйвера каким-то образом на аппаратном уровне взаимодействовать с переходником через usb.

moon
toxa:

а уж дальше - дело драйвера каким-то образом на аппаратном уровне взаимодействовать с переходником через usb.

Драйвер работает с USB портом, а в самом шнуре микроконтролёр который формат передачи данных USB преобразует
в формат COM, вот и все дела.

toxa

драйвер usb-шнура, который, собственно, создает виртуальное устройство, работает, в свою очередь, с драйвером usb-устройств windows. он не напрямую с железом общается. это все происходит на неком уровне абстракции, который позволяет создавать общее api для шин, классов устройств и отдельных устройств.

то что видно на закладке “ресурсы” у устройств - не более чем информация, предоставленная драйвером этого устройства. вы из своей программы не можете просто так использовать эту память, эти прерывания…

шнур не просто “преобразует один формат в другой”. у этого шнура свой собственный протокол общения со своим драйвером поверх стандартной передачи данных по шине usb, кроме того, возможно, у него есть аппаратный fifo-буфер, и вообще, не такое уж это простое устройство.

чтобы рабоать с виртуальным (и не виртуальным, любым, с точки зрения прикладного программиста windows это не имеет значения) ком-портом нужно открыть устройство \\.\COMn, где n - номер порта, через createfile, с помощью readfile/writefile - читать-писать, closehandle - закрывает порт. кроме того, можно управлять портом через функции setcomm*, а получать состояние - через getcomm* (например, getcommstate) и аналогичные функции winapi. ФИЗИЧЕСКИЕ АДРЕСА В ДАННОМ СЛУЧАЕ НЕ НУЖНЫ.

moon

Чтобы обратится к устройству, не факт по адресу, можно и \\.\COMn. (ясно)
Но унас может быть 256 виртуальных порта, как тогда, выделяется память под временные данные.
А она выделяется!
to Toxa: Где про это можно подробно посмотреть. 😵

toxa
moon:

Чтобы обратится к устройству, не факт по адресу, можно и \\.\COMn. (ясно)
Но унас может быть 256 виртуальных порта, как тогда, выделяется память под временные данные. А она выделяется!

по адресу, из обычной программы в windows обратиться к порту просто нельзя! под внутренние нужды память выделяется драйвером устройства. адреса, объем и формат данных определяется самим драйвером - сколько ему нужно, столько и драйвер выделяет. прямого доступа к этой памяти извне обычно нет.

есть еще такая вещь - vdm - virtual dos machine. для запуска дос-программ. dos-программа, работающая в vdm, может обращаться к портам по “физическому” адресу и использовать “прерывания”. но эти адреса, на самом деле, виртуальные, при обращении к ним управление перехватывается и происходит вызов драйвера windows. точно так же и эти преывания виртуальные - они эмулируются.

moon:

to Toxa: Где про это можно подробно посмотреть. 😵

В MSDN, конечно. Про драйверы - в DDK.

appolinari
toxa:

…В MSDN, конечно. Про драйверы - в DDK…

я так понимаю мачу3 ничто несветит…
100 еврейских рублёв пропали задаром…
жаль.