[英]Read data from usb device in libusb with java(usb4java)
我正在使用libusb api從java中的usb設備讀取數據。 我能夠將數據寫入設備但我無法從設備讀取數據。 我可以讀取第一個數據組(大小:1個字節),但是當我想讀取第二個數據組(大小:2個字節)時,我收到超時錯誤(USB錯誤7:控制傳輸失敗:操作超時)。
我的代碼就是這樣;
buffer = ByteBuffer.allocateDirect(1);
//03
LibUsb.controlTransfer(handle,(byte) (LibUsb.REQUEST_TYPE_VENDOR | LibUsb.ENDPOINT_IN), (byte) 0xdb, (short) 0, (short) 0, buffer, 0);
//00 04
buffer.rewind();
buffer = ByteBuffer.allocateDirect(2);
transferred = LibUsb.controlTransfer(handle,(byte) (LibUsb.REQUEST_TYPE_VENDOR | LibUsb.ENDPOINT_IN), (byte) 0xf0, (short) 0x1c30, (short) 0, buffer, 0);
if(transferred < 0){
throw new LibUsbException("Control Transfer Failed", transferred);
}
我用C語言實現了這種數據傳輸,但我必須在java中實現。 請幫我。
編輯:我正在更改超時但我的應用程序沒有變化。
編輯:我可以讀取1字節數據。 當我想讀取2字節數據時,我收到錯誤。
USB打印機設備創建多個端點,很可能您正在尋址可能是只讀的端點。 使用USB診斷免費軟件了解將設備連接到主機時的終點。 其中一個端點是讀寫,這是為了從設備讀取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.