我正在用usb4java編寫Java代碼,用於與使用控制傳輸(Windows)通過USB連接的測量儀器進行通信。數據使用填充了設備預期的十六進制值的ByteBuffer進行傳輸。是否可以將字節數組中的0xFF發送到USB設備?
這裏的代碼中的相關片段:
byte[] query = new byte[]{ 0x1d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
ByteBuffer buffer = ByteBuffer.allocateDirect(8);
buffer.put(query);
buffer.rewind();
int transferred = LibUsb.controlTransfer(handle, (byte)0x21, (byte)0x1, (short)0, (short)0, buffer, 1000);
的代碼工作正常,但每當在緩衝區內的任何值大於0x7F的(127),數量不正確傳遞和設備的響應不正確。
我明顯地達到了Java中使用的帶符號字節類型的限制。但是有沒有辦法繞過它併爲設備獲得正確的價值?
這幾天真的很艱難,就像問題似乎解決了一樣,我打破了字節大小的限制。 在此先感謝您的任何建議!