我有一块通过以太网发送USB数据的硬件(只会发送存储在包中的数据)。在远程PC上,数据通过以太网接收。如何将此数据发送到USB驱动程序,以便将数据转换为应用程序可以使用的命令?
答案 0 :(得分:1)
你最好得到相反的硬件,将基于IP的USB信息发送到USB子系统,而不是试图破解软件驱动程序本身。我无法想象你的硬件供应商没有这样做的设备。
答案 1 :(得分:0)
您需要服务器侦听您尝试连接的任何端口/套接字。 Twisted Matrix为网络通信提供了不错的Python库。
答案 2 :(得分:0)
我认为这会很麻烦。
USB通常设置为根据设备的各种ID号将驱动程序与连接的设备相关联,如在总线遍历期间发现的那样。
您的数据是通过以太网进行的,因此平台的USB驱动程序堆栈对相关设备一无所知。这意味着你需要直接与正确的驱动程序通信,并且还准备好处理来自(从它的角度来看)非连接设备的事件。
我可以想到为什么即使是设计良好的USB堆栈也无法愉快地处理这个问题。
在Linux上,你可能会通过自己解释数据并使用相同的API发送它来“欺骗”:实际的驱动程序会使用它。当然,这对任何USB设备都不起作用,它需要你知道设备是什么。
答案 3 :(得分:0)
在Windows上也是doable,但是你需要很多内核/ usb知识才能使它工作我不认为我会错误估计这个任务很少人(你可以减少这个如果您选择有限的设备/类型的设备来支持,估计会有很大的影响
你需要开发一个总线驱动程序来模拟主机控制器驱动程序到本机usb主机,不幸的是这个接口不公开,我们没有设法得到MS合作。
还有其他选项可以在集线器级别上工作,而不是在控制器级别上,此接口可用,但我没有设法找到我的注释。
您可以下载evaluation version并调查驱动程序堆栈,它可能会为您提供从哪里开始的线索。