Как написать универсальный драйвер USB-хоста для принтеров разных производителей? - PullRequest
2 голосов
/ 25 мая 2010

Я хочу разработать USB-хост на встроенном устройстве, которое будет общаться с принтерами разных производителей. Драйверы для принтеров конкретного производителя будут доступны на ПК, который в конечном итоге обменивается данными с принтером, но мое устройство облегчает эту связь и должно выполнить базовое установление связи / настройку принтера (т. Е. Ему нужно знать, когда принтер подключен, что являются идентификаторами сокетов, которые должны быть открыты для передач CTRL, DATA и т. д.). Все эти принтеры должны соответствовать стандартам IEEE 1284.4, но я вижу, что многие из них немного отличаются друг от друга.

Один из подходов, которые у меня есть, заключается в том, чтобы брать следы рукопожатия USB от каждого из этих принтеров и писать различные разделы кода соответственно (я знаю, это звучит смешно!). Есть ли общий способ сделать это? Есть ли доступный форум, где упоминается эта стандартная информация? Например: EPSON использует «EPSON-CTRL» и «EPSON-DATA» для своих услуг управления и передачи данных, которые необходимо предоставить для получения идентификатора сокета для этих услуг. Я уверен, что HP, Canon и т. Д. Также будут иметь свои собственные названия сервисов. Согласно стандартам, это должно было быть зафиксировано в IANA, но я ничего там не вижу. Любая помощь по этому вопросу будет принята с благодарностью.

Спасибо и всего наилучшего, Уллас

1 Ответ

0 голосов
/ 25 мая 2010

Нет, вы не можете сделать это, потому что EPSON и HP будут реализовывать свои принтеры по-разному, даже если они делают то же самое. Ваш «универсальный» драйвер должен будет явно учитывать каждый тип принтера.

Тем не менее, теоретически вы можете реализовать каждый тип драйвера в своем общем наборе драйверов и определить, какой драйвер использовать, когда принтер станет доступным. Но это кажется излишним, поскольку вы можете просто бесплатно загрузить драйверы на веб-сайте производителя.

...