Как подключить виртуальный COM-порт к физическому USB-порту?

64412
Rick Downer

Мой вопрос похож на Настройка виртуального Com-порта? , который не имеет ответов.

У меня есть программное обеспечение, которое может печатать только на принтере COMx, принтер с USB-портом и компьютер с USB-портом, но без последовательных портов, поэтому часто предлагаемый физический адаптер Serial-to-USB не является решением. Я ищу программное обеспечение, которое обманывает Windows 7 в преобразование виртуального COM-порта в физический порт USB. Я уверен, что если программное обеспечение, которое я использую, отправляет свой поток битов на порт USB, то принтер будет работать нормально. Как заставить программное обеспечение думать, что оно печатает на COMx, когда оно на самом деле печатает на USBx?

Поиски в Интернете приводят к появлению драйверов только для какого-то конкретного аппаратного адаптера Serial-to-USB, но это не то, что я ищу, поскольку у меня нет этого оборудования. Я нашел форум Microsoft, где они предложили изменить метку USB-порта в диспетчере устройств, но мы никогда не находили ничего похожего на то, что они описали; возможно, это возможно с другим контроллером USB, чем у нас.

5
Просто чтобы уточнить, у вас есть программное обеспечение, которое может печатать только на порт COM / LPT. У вашего компьютера нет LPT / последовательных портов, и вы хотите печатать через USB-кабель на USB-принтер. Lee Harrison 8 лет назад 2
* «У меня есть ... принтер с портом USB» * - Вы не упоминаете, есть ли у вас какие-либо драйверы устройств для этого принтера, и какое устройство этот принтер устанавливает сам, как при подключении. * «Как обмануть программное обеспечение заставляет думать, что оно печатает на COMx, когда оно на самом деле печатает на USBx? "* - Это не так, как работает USB. USB - это шина, поэтому приложения пишут не на USB-порт напрямую, а на «устройство». sawdust 8 лет назад 1

4 ответа на вопрос

1
Francisco Tapia

Мы используем это решение в компании.

FTDI Virtual COM USB

Драйверы виртуального COM-порта (VCP) приводят к тому, что устройство USB отображается как дополнительный COM-порт, доступный для ПК. Прикладное программное обеспечение может обращаться к USB-устройству так же, как к стандартному COM-порту.

Вот руководство по установке.

1
hdhondt

Есть простой способ сделать это, используя стандартные команды Windows. Ссылка Ли Харрисона показывает эту команду, но вот краткое описание. Начните с предоставления общего доступа к принтеру (откройте вкладку «Свойства принтера»> «Общий доступ»).

Теперь запустите командную строку и введите:

NET USE COM1: //pc_name/printer_share_name /persistent:yes 

Здесь pc_name- имя компьютера с общим доступом, а также имя общего printer_share_nameресурса, которое вы дали принтеру при настройке общего ресурса.

С этого момента все, что вы отправляете на COM1, будет перенаправлено на принтер.

Однако есть одно условие - и оно применяется независимо от того, какой метод вы используете для передачи данных на принтер, аппаратное или программное обеспечение:

Поскольку ваша программа знает только о COM1, я предполагаю, что она отправит на принтер простой текст. Многие USB-принтеры НЕ понимают простой текст и просто полностью его игнорируют. Принтеры, которые делают это, называются хост-принтерами, где графический движок Windows преобразует страницу в точки на бумаге, а не позволяет принтеру выполнять преобразование. В основном это недорогие принтеры, особенно струйные, а также некоторые лазеры. Принтеры, которые понимают текст, должны поддерживать язык PCL5. Принтеры PCL6 обычно также поддерживают PCL5, но принтеры PCL3 - нет.

Если вы сообщите мне свою модель принтера, я могу проверить, какой язык он поддерживает.

удалена ссылка на DOS, потому что в DOS нет `net use` phuclv 5 лет назад 0
@phuclv: Технически вы не правы, но здесь это не актуально. В противном случае я согласен с правкой. Ignacio Vazquez-Abrams 5 лет назад 0
0
Lee Harrison

Это очень специфический сценарий, но следующие направления могут работать для вас: 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-последовательный / параллельный и дешевый принтер, который соответствует спецификациям. Если вы используете это программное обеспечение в бизнесе, я думаю, что это легко оправданные расходы.

Этот пост http://superuser.com/questions/182655/how-do-i-simulate-a-parallel-lpt-printer-with-a-usb-printer попробовал нечто подобное. Этот парень http://superuser.com/questions/360332/how-do-i-use-a-usb-printer-as-a-com-port?rq=1 имеет мою проблему и ссылается на другой пост. Но он нашел, и я подтвердил, что когда вы заменяете COM1 на LPT1, он не работает. Rick Downer 8 лет назад 0
Что касается элегантности, я бы подумал, что драйвер устройства, который выглядит как COM-порт, но общается с USB-портом, будет довольно элегантным. Я думаю, что я мог бы начать искать советы о том, как писать драйверы устройств, так как кажется, что это необходимо. Я не единственный, кто задает этот вопрос. Rick Downer 8 лет назад 0
Согласен. Я столкнулся с этой проблемой до того, как закончил тем, что просто использовал переходный кабель и купил принтер. Определенно, существует потребность в программном решении для этого. Lee Harrison 8 лет назад 0
0
Pablo Reviosa

Если вам нужно эмулировать последовательный порт, это программное обеспечение сделает такую ​​работу https://www.eltima.com/products/vspdxp/ Но я понятия не имею, можете ли вы разговаривать с USB через эмулируемый COM ...