Я пытаюсь установить светодиоды моей RGB-клавиатуры, отправляя ей пакеты HID через мою программу Java, с найденной оболочкой Java HIDAPI здесь .
До сих пор я был успешным, но только на моем ноутбуке с 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");
}
Я пытался работать от имени администратора, к сожалению, без разницы ...
Если мой вопрос недостаточно ясен, дайте мне знать, и я попытаюсь прояснить его дальше.
Любая помощь будет принята с благодарностью! Я отчаянно пытаюсь найти решение этой проблемы! :)
Версии ОС, если это имеет значение:
Linux Ubuntu 18.04
Windows 8.1