В настоящее время я пытаюсь установить связь с контроллером CP2112 USB-SMBUS через HID.
Это происходило в основном нормально, пока я не попытался прочитать состояние GPIO CP2112. Согласно AN495 это делается с помощью запроса HID 0x03 с длиной запроса 2.
byte[] data = new byte[] {0x03, 0};
int bulkInputResult = usbDeviceConnection.bulkTransfer(endpointInput,
data,
data.length,
5000);
При использовании конечной точки ввода я получаю -1 в качестве кода возврата, который, как я понимаю, является состоянием ошибки. при использовании конечной точки вывода я получаю ожидаемую длину запроса.
Использование большего размера буфера возвращает данные, и я вижу заполненный байтовый массив, но он заполнен мусорными данными.
byte[] data = new byte[64];
data[0] = 0x03;
int bulkInputResult = usbDeviceConnection.bulkTransfer(endpointInput,
data,
data.length,
5000);
Должен ли я вместо этого использовать выходную конечную точку?