我需要能够记录通过 USB 物理连接到 PoS 等系统的打印机的所有打印请求。我不需要操作打印作业,我只需要打印请求的“副本”,并将其定期以小批量发送到远程计算机。打印机始终可用至关重要 - 独立于网络状态。我已经窥探了 BeagleBoard Black,因为它似乎能够同时在主机和设备模式下运行 USB。在我看来,应该可以将 Beagle 插入两个设备之间,并获取一些软件堆栈
- 主机和设备端之间的转发
- 创建收到的数据的副本
有没有现成的解决方案?实现这一目标的“基础”是什么?
答案1
有没有什么现成的解决方案可以解决这个问题?
我理解您的用例,您喜欢进行 USB 协议分析,特别是“嗅探”。所以,是的。
实现这一目标的“基础”是什么?
有很多可能性,取决于生成打印作业的系统类型、环境、预算、最终想要实现的目标等等。不幸的是,您目前的描述缺少很多细节。
- 在Linux下
usbmon
- 在 Windows 下
wireshark
,USBPcap
另请参阅USB 捕获设置 - FreeUSBAnalyzer、USBTrace、USB Data Monitor、USB Port Sniffer 或其他适用于 Windows 的系统
- 硬件 USB 采集卡或 USB TAP
- DIY 硬件便宜的 USB 嗅探器
- 和更多 ...
类似问答
答案2
https://github.com/nesto-software/USBProxy是我将使用的解决方案。它通过 ZeroMQ 管道传输串行通信,我可以编写一个简单的客户端来使用数据。我最后在查看我的问题评论中提到的 USB 代理的所有分支时找到了它们!