![Как сопоставить виртуальный COM-порт с физическим USB-портом?](https://rvso.com/image/1452847/%D0%9A%D0%B0%D0%BA%20%D1%81%D0%BE%D0%BF%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%B2%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20COM-%D0%BF%D0%BE%D1%80%D1%82%20%D1%81%20%D1%84%D0%B8%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%BC%20USB-%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%BC%3F.png)
Мой вопрос похож наНастраиваете виртуальный Com-порт?, на который нет ответов.
У меня есть программное обеспечение, которое может печатать только на принтере на COMx, принтер с портом USB и компьютер с портом USB, но без последовательных портов, поэтому часто предлагаемый физический адаптер Serial-to-USB не является решением. Я ищу программное обеспечение, которое обманом заставляет Windows 7 сопоставлять виртуальный COM-порт с физическим USB-портом. Я уверен, что если используемое мной программное обеспечение отправляет свой поток битов на USB-порт, то принтер будет работать нормально. Как обмануть программное обеспечение, заставив его думать, что оно печатает на COMx, когда на самом деле оно печатает на USBx?
Поиск в Интернете выдает только драйверы для определенного аппаратного адаптера Serial-to-USB, но это не то, что я ищу, поскольку у меня нет этого оборудования. Я нашел форум Microsoft, где они предложили изменить метку порта USB в диспетчере устройств, но мы так и не нашли ничего похожего на то, что они описали; возможно, это возможно с другим контроллером USB, чем у нас.
решение1
Есть простой способ сделать это с помощью стандартных команд Windows. Ссылка Ли Харрисона показывает эту команду, но вот краткое описание. Начните с того, чтобы сделать принтер общим (из свойств принтера > вкладка Общий доступ).
Теперь запустите командную строку и введите:
NET USE COM1: //pc_name/printer_share_name /persistent:yes
Здесь pc_name
— имя ПК, к которому предоставлен общий доступ, а printer_share_name
— имя общего ресурса, которое вы дали принтеру при настройке общего ресурса.
С этого момента все, что вы отправляете на COM1, будет перенаправляться на принтер.
Однако есть одно условие, и оно применяется независимо от того, какой метод передачи данных на принтер вы используете — аппаратное или программное обеспечение:
Поскольку ваша программа знает только о COM1, я предполагаю, что она отправит на принтер простой текст. Многие принтеры, работающие только с USB, НЕ понимают простой текст и просто игнорируют его. Принтеры, которые делают это, называютсяхост-принтеры, где графический движок Windows преобразует страницу в точки на бумаге, а не позволяет принтеру выполнять преобразование. В основном это недорогие принтеры, особенно струйные, но также и некоторые лазерные. Принтеры, которые понимают текст, должны поддерживать язык PCL5. Принтеры PCL6 обычно также поддерживают PCL5, но принтеры PCL3 — нет.
Если вы сообщите мне модель вашего принтера, я смогу проверить, какой язык он поддерживает.
решение2
Мы используем это решение в компании.
Драйверы виртуального COM-порта (VCP) заставляют USB-устройство отображаться как дополнительный COM-порт, доступный ПК. Прикладное программное обеспечение может получить доступ к USB-устройству так же, как оно получило бы доступ к стандартному COM-порту.
ЗдесьРуководство по установке.
решение3
Это очень специфический сценарий, но следующие указания могут вам подойти: http://www.decompile.com/dataflex/tips/usb_printer.htm
Прямо по этой ссылке:
The solution is to assign the USB-connected printer a network name, and
then to associate that network name with an unused LPT port. The
***** program will print to the LPT port and Windows will
automatically redirect the job to the USB printer port.
Однако я не знаю, будут ли вообще доступны для выбора COM-соединения в вашем случае, поскольку на вашем ПК их изначально нет. Возможно, вы сможете приобрестиUSB/COM-адаптерЧтобы получить доступ к этим значениям, воспользуйтесь приведенными выше инструкциями для пересылки их на ваш USB-принтер.
Звучит как хак, но когда вы используете старое программное обеспечение, иногда это то, что происходит. Каким бы ни было решение, я не знаю, будет ли оно выглядеть элегантным!
Последнее, что можно сделать, это просто купить USB-адаптер для последовательного/параллельного порта и дешевый принтер, который соответствует спецификациям. Если вы используете это программное обеспечение в бизнесе, я думаю, что это легко оправданные расходы.
решение4
Если вам нужно эмулировать последовательный порт, это программное обеспечение сделает эту работу. https://www.eltima.com/products/vspdxp/ Но я понятия не имею, можно ли подключить USB к эмулированному COM...