Як зіставити віртуальний COM-порт на фізичний порт USB?


5

Моє запитання схоже на Налаштування віртуального Com Port? , на який немає відповідей.

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

Інтернет-пошуки шукають лише драйвери для певного апаратного адаптера послідовного до USB, але це не те, що я шукаю, оскільки у мене немає цього обладнання. Я знайшов форум Microsoft, де вони запропонували змінити мітку порту USB у Диспетчері пристроїв, але ми ніколи не знайшли нічого подібного до того, що описали; можливо, це можливо за допомогою іншого USB-контролера, ніж у нас.


2
Для уточнення, у вас є програмне забезпечення, яке може друкувати тільки на COM / LPT-порт. На вашому ПК не вистачає LPT / послідовних портів, і ви хочете друкувати через USB-кабель на USB-принтері.
Лі Гаррісон

1
"У мене ... принтер з портом USB" - Ви нехтуєте зазначенням, чи є у вас драйвери пристроїв для цього принтера, і який пристрій цей принтер встановлює сам, коли він підключений. "Як я обманюю програмне забезпечення думаєте, що це друк на COMx, коли він насправді друкує на USBx? " - Так не працює USB. USB - це шина, тому програми записують не на USB-порт безпосередньо, а на «пристрій».
тирса

Відповіді:


2

Існує простий спосіб зробити це за допомогою стандартних команд 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, оскільки його немає net useв DOS
phuclv

@phuclv: Технічно ви неправі, але це не стосується тут. Я інакше погоджуюся з редагуванням.
Ігнасіо Васкес-Абрамс

1

Ми використовуємо це рішення в компанії.

FTDI Virtual COM USB

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

Ось посібник із встановлення.


0

Це дуже специфічний сценарій, але для вас можуть працювати наступні вказівки: 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 для послідовного / паралельного адаптера та дешевий принтер, який відповідає специфікаціям. Якщо ви використовуєте це програмне забезпечення в бізнесі, я думаю, що це легко виправдані витрати.


Цей пост superuser.com/questions/182655/… спробував щось подібне. У цього хлопця superuser.com/questions/360332/… є моя проблема і посилався на інший пост. Але він виявив, і я підтвердив, що коли ви замінюєте COM1 на LPT1, це не працює.
Рік Даунер

Що стосується елегантності, я думаю, що драйвер пристрою, схожий на COM-порт, але розмова з USB-портом була б досить елегантною. Думаю, я можу почати шукати поради щодо того, як писати драйвери пристроїв, оскільки, мабуть, у цьому є потреба. Я не єдиний, хто задає це питання.
Рік Даунер

Я згоден. Натрапивши на цю проблему, перш ніж я закінчився лише за допомогою адаптерного кабелю та придбання принтера. Однозначно існує потреба в програмному рішенні для цього.
Лі Харрісон

0

Якщо вам потрібно емулювати послідовний порт, це програмне забезпечення робить таку роботу https://www.eltima.com/products/vspdxp/ Але я поняття не маю, чи можете ви спілкуватися на своєму USB із емуляційним COM ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.