1

简单地说:我想知道是否可以使用 LibUsbDotNet 来读取和写入 HID 功能报告。

首先,我尝试使用带有以下示例代码的 vid/pid 找到我的设备

class Program
    {
        public static UsbDevice MyUsbDevice;
        public static UsbDeviceFinder uFind = new UsbDeviceFinder(1234,4321);

        static void Main(string[] args)
        {
            ErrorCode ec = ErrorCode.None;

            try
            {
                // Find and open the usb device.
                MyUsbDevice = UsbDevice.OpenUsbDevice(uFind);

                // If the device is open and ready
                if (MyUsbDevice == null) throw new Exception("Device Not Found.");

但我总是会得到未找到设备。

我已经在“设备管理器 > 人机接口设备”下检查了我的设备是否存在。

如果有人可以建议在 c# 中实现相同目标的正确方法是什么,那将会很有帮助。

以前我试图在 python(使用 PyUsb )中实现相同的目标,但缺乏示例和文档让我绝望。

4

1 回答 1

0

在 libUsbDotNet 的安装文件夹中有一个名为“inf-wizard.exe”的文件,运行该应用程序并安装 libUsbDotNet 使用的“假驱动程序”来查找驱动程序。

如果找不到“inf-wizard.exe”,请尝试从此处下载 libUsbDotNet:http: //sourceforge.net/projects/libusbdotnet/

您可能必须使用设备管理器查找特定驱动程序的 Pid 和 Vid(即使没有找到驱动程序,也应显示 Vid 和 Pid)

安装将 Pid 和 Vid 转换为整数后,此站点可能会有所帮助http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

在代码 ex 中使用转换后的整数:

//Hex Values: Pid = 4D9; Vid = 1605; 

public static UsbDeviceFinder uFind = new UsbDeviceFinder(1241, 5637);

Windows 需要一个驱动程序才能与任何类型的硬件通信,这个过程在 linux 中要简单得多,请参阅链接 (connect hack)以很好地简化 USB 通信的工作原理。(这是基于 linux 的,但核心保持不变)

于 2013-06-27T10:40:46.793 回答