2010-05-25 21 views
2

Je veux développer un hôte USB sur un périphérique intégré qui parlera aux imprimantes de divers fournisseurs. Les pilotes pour les imprimantes spécifiques au fournisseur sont disponibles sur PC qui communique finalement avec l'imprimante, mais mon périphérique facilite cette communication et doit effectuer la configuration de base de l'imprimante (c'est-à-dire, il doit savoir quand l'imprimante est connectée, sont les ID de socket qui doivent être ouverts pour les transmissions CTRL et DATA, etc.). Toutes ces imprimantes sont censées être conformes aux normes IEEE 1284.4 mais je vois que beaucoup d'entre elles varient un peu. Une approche que j'ai est de prendre les traces USB de handshaking de chacune de ces imprimantes et écrire différentes sections de code respectivement (je sais, cela semble ridicule!). Existe-t-il une façon générique de le faire? Y a-t-il un forum disponible où ces informations standard sont mentionnées? Par exemple: EPSON utilise 'EPSON-CTRL' et 'EPSON-DATA' pour ses services de contrôle et de données qui doivent être fournis pour obtenir l'ID de socket pour ces services. Je suis sûr que les HP, Canon, etc. auraient leurs propres noms de service. Selon les standards, c'était censé être capturé dans l'IANA mais je ne vois rien là-bas. Toute aide à ce sujet serait grandement appréciée.Comment écrire un pilote hôte USB générique pour les imprimantes de divers fournisseurs?

Merci et salutations, Ullas

Répondre

0

Non, vous ne pouvez pas le faire parce que EPSON et HP mettront en œuvre leurs imprimantes différemment, même si elles font exactement la même chose. Votre pilote "générique" devra explicitement tenir compte de chaque type d'imprimante. Ceci étant dit, vous pouvez théoriquement implémenter chaque type de pilote dans votre suite de pilotes génériques et lui faire déterminer quel pilote utiliser lorsque l'imprimante devient disponible. Mais, cela semble un peu exagéré puisque vous pouvez simplement obtenir les pilotes en ligne gratuitement sur le site Web du fabricant.

+0

Même si je dois les faire explicitement, la seule façon d'obtenir ces informations serait de prendre des traces USB de poignées de main réussies? – Ullas

+0

Le problème avec cela est que je ne peux pas installer ces pilotes dans mon périphérique intégré qui n'a pas assez de mémoire (entre autres choses) pour installer ces pilotes. Aussi mon appareil fonctionne sur un RTOS propriétaire. Merci beaucoup pour votre suggestion si – Ullas