第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

java usb4java在windows 10平臺(tái)上讀取usb設(shè)備

java usb4java在windows 10平臺(tái)上讀取usb設(shè)備

www說 2023-04-26 16:19:03
我正在嘗試從通過 USB 連接到帶有usb4java庫(kù)的 Windows 10pro 機(jī)器的 RFID 閱讀器讀取消息。我已經(jīng)設(shè)法聲明了接口、打開了管道并為數(shù)據(jù)注冊(cè)了偵聽器,但是從未觸發(fā)過偵聽器。閱讀器充當(dāng)鍵盤,它讀取的任何內(nèi)容最終都會(huì)出現(xiàn)在活動(dòng)應(yīng)用程序中,例如我打開的 IDE,而不是在listener中。UsbInterface usbInterface = activeInteface(device);// there is only one endpoint in the listUsbEndpoint endpoint = (UsbEndpoint)usbInterface.getUsbEndpoints().get(0);UsbPipe pipe = endpoint.getUsbPipe();try {     usbInterface.claim();     // true     System.out.println("claimed usb interface: " + usbInterface.isClaimed());     pipe.open();     // true     System.out.println("pipe open: " + pipe.isOpen());     pipe.addUsbPipeListener(new MessageListener());     // true     System.out.println("pipe active: " + pipe.isActive());     // keep main thread alive, async call should be done from another thread i guess     Thread.sleep(15000);    }   catch (Exception any) {System.out.println(any);} }和聽眾:private static class MessageListener implements UsbPipeListener {    @Override    public void errorEventOccurred(UsbPipeErrorEvent event) {        System.out.println(event.toString() + " , " +event.getUsbException());    }    @Override    public void dataEventOccurred(UsbPipeDataEvent event) {        // this code block never triggers        System.out.println("listener ...);        int actualLength = event.getActualLength();        System.out.println("length: " + actualLength);        byte[] data = event.getData();        System.out.println("data length " + data.length);    }}我還在上面的塊中嘗試了同步讀取而不是異步讀取,如下所示:byte[] buffer = new data[8];// this fails on its own, don't even need to read something with RFID readerint received = pipe.syncSubmit(buffer);失?。篣SB error1: Transfer error on interrupt endpoint: Input/Output error有一些庫(kù)支持的特定于 Windows 的屬性:org.usb4java.javax.useUSBDK = true 但是當(dāng)我嘗試將它設(shè)置為異常時(shí),這失敗了。我對(duì) USB 設(shè)備沒有任何經(jīng)驗(yàn),所以不確定如何從這里開始。代碼有問題嗎,我需要 USBDK 還是設(shè)備不支持 libUSB 驅(qū)動(dòng)程序?遺憾的是,這不是我的設(shè)備,我無(wú)法訪問該設(shè)備的文檔,因此無(wú)法確定它是否是設(shè)備驅(qū)動(dòng)程序問題。
查看完整描述

2 回答

?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

我知道這是 2 歲,但我遇到過類似的問題,這是我在尋找解決方案時(shí)遇到的第一個(gè)問題,這花了我?guī)讉€(gè)小時(shí)。

所以,基本上,windows 不允許直接讀/寫鍵盤設(shè)備,要這樣做,你必須覆蓋它的驅(qū)動(dòng)程序(這就是你得到的原因,它寫在 hid4java 的常見問題解答Input/Output error中)。

libusb wiki中描述了覆蓋設(shè)備驅(qū)動(dòng)程序的第一種方法。據(jù)我所知,每次將設(shè)備連接到新的 USB 端口時(shí)都必須安裝新的驅(qū)動(dòng)程序,這就是我建議您進(jìn)一步閱讀的原因。

第二種方法是您已經(jīng)提到的,即使用UsbDk(適用于 Windows 的 USB 驅(qū)動(dòng)程序開發(fā)工具包)。它通過分離內(nèi)核驅(qū)動(dòng)程序并在您玩完之后將其重新連接回去,使您可以訪問該設(shè)備。

為了使用它,你需要做兩件事:

  1. 按照手冊(cè)org.usb4java.javax.useUSBDK = true中的說明設(shè)置javax.usb.properties文件

  2. 在您的系統(tǒng)上下載并安裝 UsbDk(最簡(jiǎn)單的方法是下載具有 GUI 且完全自動(dòng)化的 x64 或 x86 版本的 msi 安裝程序),遺憾的是手冊(cè)中沒有(對(duì)于某些人來(lái)說這可能是顯而易見的,但花了我很多時(shí)間我并不以意識(shí)到這一點(diǎn)為榮)。

我猜想缺少第二步是 OP 出現(xiàn)異常的原因。

希望這會(huì)對(duì)某人有所幫助,兩天前知道這一切會(huì)讓我頭疼很多。


查看完整回答
反對(duì) 回復(fù) 2023-04-26
?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

默認(rèn)情況下,RFID 閱讀器以鍵盤仿真模式運(yùn)行。您通常可以從制造商的網(wǎng)站獲取工具來(lái)配置 RFID 閱讀器。這將允許您將閱讀器更改為 HID 模式。這應(yīng)該可以解決您的問題。抱歉回復(fù)晚了,但我希望它能幫助其他人。



查看完整回答
反對(duì) 回復(fù) 2023-04-26
  • 2 回答
  • 0 關(guān)注
  • 1068 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)