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

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

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

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

www說(shuō) 2023-04-26 16:19:03
我正在嘗試從通過(guò) USB 連接到帶有usb4java庫(kù)的 Windows 10pro 機(jī)器的 RFID 閱讀器讀取消息。我已經(jīng)設(shè)法聲明了接口、打開(kāi)了管道并為數(shù)據(jù)注冊(cè)了偵聽(tīng)器,但是從未觸發(fā)過(guò)偵聽(tīng)器。閱讀器充當(dāng)鍵盤(pán),它讀取的任何內(nèi)容最終都會(huì)出現(xiàn)在活動(dòng)應(yīng)用程序中,例如我打開(kāi)的 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);} }和聽(tīng)眾: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);失敗:USB error1: Transfer error on interrupt endpoint: Input/Output error有一些庫(kù)支持的特定于 Windows 的屬性:org.usb4java.javax.useUSBDK = true 但是當(dāng)我嘗試將它設(shè)置為異常時(shí),這失敗了。我對(duì) USB 設(shè)備沒(méi)有任何經(jīng)驗(yàn),所以不確定如何從這里開(kāi)始。代碼有問(wèn)題嗎,我需要 USBDK 還是設(shè)備不支持 libUSB 驅(qū)動(dòng)程序?遺憾的是,這不是我的設(shè)備,我無(wú)法訪問(wèn)該設(shè)備的文檔,因此無(wú)法確定它是否是設(shè)備驅(qū)動(dòng)程序問(wèn)題。
查看完整描述

2 回答

?
手掌心

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

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

所以,基本上,windows 不允許直接讀/寫(xiě)鍵盤(pán)設(shè)備,要這樣做,你必須覆蓋它的驅(qū)動(dòng)程序(這就是你得到的原因,它寫(xiě)在 hid4java 的常見(jiàn)問(wèn)題解答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)程序開(kāi)發(fā)工具包)。它通過(guò)分離內(nèi)核驅(qū)動(dòng)程序并在您玩完之后將其重新連接回去,使您可以訪問(wèn)該設(shè)備。

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

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

  2. 在您的系統(tǒng)上下載并安裝 UsbDk(最簡(jiǎn)單的方法是下載具有 GUI 且完全自動(dòng)化的 x64 或 x86 版本的 msi 安裝程序),遺憾的是手冊(cè)中沒(méi)有(對(duì)于某些人來(lái)說(shuō)這可能是顯而易見(jiàn)的,但花了我很多時(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 閱讀器以鍵盤(pán)仿真模式運(yùn)行。您通??梢詮闹圃焐痰木W(wǎng)站獲取工具來(lái)配置 RFID 閱讀器。這將允許您將閱讀器更改為 HID 模式。這應(yīng)該可以解決您的問(wèn)題。抱歉回復(fù)晚了,但我希望它能幫助其他人。



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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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