簡體   English   中英

使用java(usb4java)從libusb中的usb設備讀取數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM