3

ここにあるJava HIDAPIラッパーを使用して、Javaプログラムを介してHIDパケットをRGBキーボードに送信することにより、RGBキーボードのLEDを設定しようとしています。

これまでのところ成功していますが、Linux ラップトップでのみです。Windows でコードを実行しようとすると、「無効な関数」というエラーが表示されます。これは、システム エラー 0x1, ERROR_INVALID_FUNCTIONと同等であると想定しています。

このサンプル コードは Windows では動作しませんが、Linux では動作します。(コマンドの先頭に「sudo」を付けて端末から実行した場合。)

// Device is found prior to this...

if (device != null) {
    device.disableBlocking();

    // Initialise the buffer, and send it. PACKET_SIZE is 264
    byte[] buffer = new byte[PACKET_SIZE];
    for (int i = 0; i < PACKET_SIZE; i++) { buffer[i] = (byte)0x00; }

    // These bytes are required for it to actually change the LED's.
    buffer[0] = 0x07;
    buffer[1] = 0x0E;
    buffer[2] = 0x01;
    buffer[3] = 0x01;

    try {
        // Actually send the data.
        device.sendFeatureReport(buffer);
    }
    // Handle I/O exceptions
    catch (IOException e) {
        e.printStackTrace(); 
    }

    // Close the device.
    device.close();
}
else {
    System.err.println("DEVICE IS NULL");
}

管理者として実行してみましたが、残念ながら違いはありません...

私の質問が十分に明確でない場合は、お知らせください。さらに明確にするよう努めます。

どんな助けでも大歓迎です!私はこれに対する解決策を見つけるために必死になっています!:)


OS のバージョン (重要な場合):
Linux Ubuntu 18.04
Windows 8.1

4

1 に答える 1