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.");

しかし、私は常に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

コード例で変換された整数を使用します。

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

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

Windows では、あらゆるタイプのハードウェアと通信するためにドライバーが必要です。このプロセスは、Linux でははるかに簡単です。リンク (connect hack)を参照してください。(これは Linux ベースですが、コアは同じままです)

于 2013-06-27T10:40:46.793 に答える