簡體   English   中英

在C#中使用LibUsbDotNet與HID設備進行交互

[英]Interacting with HID devices using LibUsbDotNet in C#

簡而言之: 我想知道是否可以通過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)中實現相同的功能,但是由於缺少示例和文檔,這使我無望。

在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中此過程要簡單得多,請參閱鏈接(連接hack)以更好地簡化USB通信的工作方式。 (這是基於linux的,但核心保持不變)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM