如何为不同供应商的打印机编写通用USB主机驱动程序?

如何为不同供应商的打印机编写通用USB主机驱动程序?,usb,driver,printing,device,host,Usb,Driver,Printing,Device,Host,我想在一个嵌入式设备上开发一个USB主机,它可以与来自不同供应商的打印机进行通信。供应商特定打印机的驱动程序将在最终与打印机通信的PC上提供,但我的设备促进了这种通信,需要执行打印机的基本握手/设置,即需要知道打印机何时连接,CTRL和数据传输等需要打开哪些套接字ID。所有这些打印机都应该符合IEEE 1284.4标准,但我发现其中许多有点不同 我的一种方法是从每台打印机上提取握手的USB痕迹,然后分别编写我知道的不同部分的代码,这听起来很可笑!。有没有一种通用的方法可以做到这一点?有没有提到这

我想在一个嵌入式设备上开发一个USB主机,它可以与来自不同供应商的打印机进行通信。供应商特定打印机的驱动程序将在最终与打印机通信的PC上提供,但我的设备促进了这种通信,需要执行打印机的基本握手/设置,即需要知道打印机何时连接,CTRL和数据传输等需要打开哪些套接字ID。所有这些打印机都应该符合IEEE 1284.4标准,但我发现其中许多有点不同

我的一种方法是从每台打印机上提取握手的USB痕迹,然后分别编写我知道的不同部分的代码,这听起来很可笑!。有没有一种通用的方法可以做到这一点?有没有提到这些标准信息的论坛?例如:爱普生使用“EPSON-CTRL”和“EPSON-DATA”作为其控制和数据服务,需要提供这些服务来获取这些服务的套接字ID。我很肯定HPs、佳能等也会有自己的服务名称。按照标准,这应该在IANA中捕获,但我没有看到任何东西。在此方面的任何帮助都将不胜感激

感谢和问候,
Ullas

不,您不能这样做,因为爱普生和惠普将以不同的方式实施打印机,即使他们做完全相同的事情。您的通用驱动程序必须明确说明每种类型的打印机


也就是说,从理论上讲,您可以在通用驱动程序套件中实现每种驱动程序类型,并让它在打印机可用时确定使用哪种驱动程序。但是,这似乎有点过分了,因为你可以在制造商的网站上免费获取驱动程序。

不,你不能这样做,因为爱普生和惠普将以不同的方式实施打印机,即使他们做完全相同的事。您的通用驱动程序必须明确说明每种类型的打印机


也就是说,从理论上讲,您可以在通用驱动程序套件中实现每种驱动程序类型,并让它在打印机可用时确定使用哪种驱动程序。但是,这似乎有点过分了,因为你可以在制造商的网站上免费获取驱动程序。

即使我必须明确地这样做,获取这些信息的唯一方法是从成功的握手中获取USB记录?问题是我无法在我的嵌入式设备中安装这些驱动程序,因为我的嵌入式设备没有足够的内存来安装这些驱动程序。此外,我的设备运行在专有RTOS上。非常感谢您的建议,即使我必须明确地执行这些操作,获取这些信息的唯一方法是从成功的握手中获取USB跟踪?问题是我无法在我的嵌入式设备中安装这些驱动程序,因为我的嵌入式设备没有足够的内存来安装这些驱动程序。此外,我的设备运行在专有RTOS上。不过非常感谢你的建议