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

时间:2015-11-02 15:09:57

标签: java bluetooth serial-port rxtx

我首先尝试在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。

1 个答案:

答案 0 :(得分:1)

尝试以下步骤(我希望他们能帮助您解决问题):

  • 检查.so文件是否在您的类路径中。你可以下载prebuilt  二进制文件,32位和64位。可在此主题中找到链接:RXTX can't list port on ubuntu
  • 确认您确实拥有所需的权限(例如USB0):

    sudo chmod 666 /dev/ttyUSB0
    

    注意:这只会在您重新启动计算机之前有效,因此如果它解决了您的问题,您可能想要创建一个udev规则(Google: udev usb权限)永久照顾这个问题。

我很确定你已经找到了这个片段,但万一你还没有把它留在这里:Discovering comm ports

来源(以防万一有人想阅读完整的文章/问题/答案):

RXTX can't list port on ubuntu

CommPortIdentifier.getPortIdentifiers with zero ports on Linux

ttyUSB0 permission changes after restart