[英]How to find USB HID DevicePath?
我一直在研究嵌入式系統中的 USB HID 設備和 C# 一段時間。 我決定在 C# 中使用 USBHid 庫。我用這個庫得到了理想的結果。 但我有一個問題。 在USBHid庫中定義USB時,在我在inte.net上找到的庫的項目中,下面的代碼就足夠了。
public UsbHidDevice Device;
Device = new UsbHidDevice(vvvv,pppp);
但是,當我使用同一個庫時,它會要求我提供以下格式的表達式。
public UsbHidDevice Device; string vidandpid =
"\\hid#vid_0000&pid_0000&mi_00#a&0&000000000&1&0000#{eeof37d0-1963-47k4-aa41-74476db7uf49}";
Device = new UsbHidDevice(vidandpid);
我為我自己的 HID 設備改編了這種格式,但沒有成功。 這個字符串表達式應該如何? 我對你的觀點持開放態度。 從現在開始謝謝你。
如何找到 USB HID DevicePath?
我放棄了 USBHID 庫並找到了 HidLibrary 庫的解決方案。 據我了解,HidLibrary 在某些問題上存在不足。
在這里,我分享了我與 HidLibrary 鏈接的 C# 代碼。 謝謝大家的回復。
device = HidDevices.Enumerate(VendorID, ProductID).FirstOrDefault();
if (device != null)
{
device.OpenDevice();
device.Inserted += DeviceAttachedHandler;
device.Removed += DeviceRemovedHandler;
device.MonitorDeviceEvents = true;
device.ReadReport(myfunction);
}
else { RtBox_Feedback.AppendText("NOT DEVICE!"); }
\\hid#vid_0000&pid_0000&mi_00#a&0&000000000&1&0000#{eeof37d0-1963-47k4-aa41-74476db7uf49}
- 是{eeof37d0-1963-47k4-aa41-74476db7uf49}
接口的設備接口。 對於每個設備,它幾乎總是唯一的和半隨機的。 如果您將設備放在另一個 USB 插槽中,它也可能會發生變化。 此字符串可用作使用CreateFile
Win32 API 打開此“文件”的路徑,並通過特定於接口的 IOCTL 與設備對話。 更多信息在這里。
對於 HID 設備 Windows 有另一個設備接口 GUID - GUID_DEVINTERFACE_HID - {4D1E55B2-F16F-11CF-88CB-001111000030}
您可以使用CM_Get_Device_Interface_ListW或SetupDiGetClassDevs / SetupDiEnumDeviceInterfaces / SetupDiGetDeviceInterfaceDetail API 通過接口 GUID或設備實例 ID枚舉設備接口。
提到的“C# 中的 USBHid 庫”可能已經有通過 HID 設備 VID/PID 進行此類枚舉和過濾的代碼,但我不能肯定地說,因為您還沒有添加指向該庫代碼的鏈接。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.