簡體   English   中英

CommPortIdentifier.getPortIdentifiers() RXTX 未列出所有端口

[英]CommPortIdentifier.getPortIdentifiers() RXTX not listing all ports

我首先嘗試列出 Ubuntu 14.04 LTS 上的所有端口,但並未檢測到所有端口,它僅顯示 tty。 我想訪問 hidraw 一個,見下文。

我對每個人的鎖定文件都有讀/寫權限。

  • 文件 RXTXcomm.jar 應該在 JDKDIR/jre/lib/ext/ 下
  • 必要的庫(例如,對於 Linux 32 位,librxtxSerial.so)應該在 JDKDIR/jre/bin/ 下
  • lib/bin 中的 librxtxSerial.so 也是

librxtxSerial.so 適用於 x86_64(我的電腦:Intel i7 4790k 運行 Ubuntu 64 位)

dpkg --print-architecture
amd64

uname -a 
Linux KrantzUbuntu 3.13.0-65-generic #106-Ubuntu SMP Fri Oct 222:08:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

當我在終端中列出連接的端口時,我得到了這些:

/dev/hidraw4 - Broadcom_Corp_BCM20702A0_54271EFCD756
/dev/input/event14 - Broadcom_Corp_BCM20702A0_54271EFCD756
/dev/input/mouse1 - Broadcom_Corp_BCM20702A0_54271EFCD756
/dev/input/event2 - Logitech_Gaming_Mouse_G400
/dev/input/mouse0 - Logitech_Gaming_Mouse_G400
/dev/hidraw0 - Logitech_Gaming_Mouse_G400
/dev/usb/hiddev0 - Logitech_Gaming_Mouse_G400
/dev/hidraw1 - Logitech_Gaming_Mouse_G400
/dev/input/event3 - CM_Storm_Quickfire_TKL_6keys
/dev/hidraw2 - CM_Storm_Quickfire_TKL_6keys
/dev/input/event4 - CM_Storm_Quickfire_TKL_6keys
/dev/hidraw3 - CM_Storm_Quickfire_TKL_6keys

后面我想用的那個是/dev/hidraw4,是藍牙手機。

我重新編譯了 RXTXCommDriver 類在 Linux 上搜索更多端口並添加:

if(osName.equals("Linux"))
                {
                    String[] Temp = {
                    "sr",
                    "hidraw",
                    "usb",
                    "input",
                    "sr0",
                    "ttyS", // linux Serial Ports
                    "ttySA", // for the IPAQs
                    "ttyUSB", // for USB frobs
                    "rfcomm",       // bluetooth serial device
                    "ttyircomm", // linux IrCommdevices (IrDA serial emu)
                    };
                    CandidatePortPrefixes=Temp;
                }

但仍然沒有列出hidraw。

嘗試以下步驟(我希望它們能幫助您解決問題):

  • 檢查 .so 文件是否在您的類路徑中。 您可以下載 32 位和 64 位預構建的二進制文件。 鏈接可以在這個線程中找到: RXTX can't list port on ubuntu
  • 驗證您確實擁有所需的權限(例如 USB0):

     sudo chmod 666 /dev/ttyUSB0

    注意:這只會在您重新啟動計算機之前處於活動狀態,因此如果它解決了您的問題,您可能需要創建一個 udev 規則(谷歌: udev usb 權限)來永久解決該問題。

我很確定你已經找到了這個片段,但萬一你沒有找到,我會把它留在這里:發現通信端口

來源(以防萬一有人想閱讀完整的文章/問題/答案):

RXTX 無法在 ubuntu 上列出端口

Linux 上具有零端口的 CommPortIdentifier.getPortIdentifiers

重啟后 ttyUSB0 權限更改

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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