我已经搜索过这些答案,但没有运气:(我一直在使用来自中国的RFID设备,所以我几乎一无所知。我正在尝试编写一个程序(实际上我正在尝试使用)当一个标签越过RFID设备时,设备会输出数字,如HID键盘,然后按下回车键并等待下一个。(我使用的是Windows 7顺便说一句) 我的问题是这些:
除了知道VID(供应商ID)和PID(产品ID)还有什么我需要了解的设备才能开始阅读它。
在我看到的一个例子中,在读取设备之前,示例程序首先写入设备,在数组中发送8个字节(字节[8]),每个字节类似于[0] = 60,[ 1] = 0,[2] = 20,依此类推。当设备停止读取时,它还发送了一堆停止字节。有人可以向我解释这一点,并且这是必要的天气,这些开始/停止字节是否是特定于设备的,或者它是USB的一般启动/停止的东西?
有没有人知道任何好的,简单的来源(或应用程序)设置为我想做的事情?
感谢任何问题的答案,谢谢。
答案 0 :(得分:3)
在尝试部分逆向工程基本USB协议之前,您可以阅读(开放)USB规范(请参阅http://www.usb.org/)并熟悉关键字(端点,URB,管道)和原理控制/批量/同步/中断传输)。
我非常喜欢linux-usb-implementation,因为它实现简单易读:linux / include / usb.h。
要从用户空间处理USB设备,您可以使用libusb(适用于Windows和Linux)。这样,您无需编写内核驱动程序即可访问USB设备。
答案 1 :(得分:1)
如果您的RFID阅读器确实是虚拟USB HID键盘,那么您可能只需注册RawInput并侦听数据。在这种情况下,你真的不关心下面的硬件,我认为其他人已经在这里做了如何回应。
如果这种方法不起作用,则意味着您的RFID阅读器不是真正的USB HID键盘设备,您应该向供应商询问驱动程序或通过USB发送的数据结构。
如果在这种情况下找不到驱动程序或某些规格,则必须开始对USB设备进行逆向工程。你可以从它开始的一个工具是来自Microsoft的USBView.exe你可以找到它的Windows驱动程序工具包 - 源代码,你只需构建它并拥有应用程序。在此之后你应该尝试获取USB描述符结构并进行分析,你会发现很多有价值的信息可以帮助你理解数据的发送方式。
正如你看到许多Ifs ......