XbeeException:找不到端口:/dev/tty.usbserial-A6005uPi

时间:2015-12-01 17:12:37

标签: java eclipse xbee

我尝试使用XBee的API运行一个示例。

当我在Eclipse中执行程序时,我得到了这个错误:

Stable Library
=========================================
Native lib Version = RXTX-2.2pre2
Java lib Version   = RXTX-2.1-7
WARNING:  RXTX Version mismatch
    Jar version = RXTX-2.1-7
    native lib Version = RXTX-2.2pre2
[2015-12-01 08:56:35,652] [main] [ERROR] [com.rapplogic.xbee.examples.ApiAtExample] at command failed 
com.rapplogic.xbee.api.XBeeException: Could not find port: /dev/tty.usbserial-A6005uPi
    at com.rapplogic.xbee.SerialPortConnection.openSerialPort(SerialPortConnection.java:94)
    at com.rapplogic.xbee.SerialPortConnection.openSerialPort(SerialPortConnection.java:61)
    at com.rapplogic.xbee.api.XBee.open(XBee.java:132)
    at com.rapplogic.xbee.examples.ApiAtExample.<init>(ApiAtExample.java:53)
    at com.rapplogic.xbee.examples.ApiAtExample.main(ApiAtExample.java:76)

请有人解释这个错误的含义吗?有人可以帮我找到解决方案吗?

提前致谢:)

3 个答案:

答案 0 :(得分:0)

您的XBee模块的串行端口看起来使用了错误的路径名:Could not find port: /dev/tty.usbserial-A6005uPi

如果你查看dev目录,你的usbserial ttys的名字是什么?

ls /dev/tty.usbserial*

您是将该路径名传递给程序,还是在源代码中的某处硬编码?无论是什么,您只需要将其更新为适当的值。

答案 1 :(得分:0)

。解决方案的步骤是:
 1,验证ttyUSB0的组:  ls -la / dev / ttyUSB0 crwxrwx - x 1 root dialout 188,0 Dec 2 10:01 / dev / ttyUSB0

然后在这种情况下验证用户“sam”是否存在于同一组(拨出)中:id -Gn sam sam adm cdrom sudo dip plugdev lpadmin sambashare,

如果用户不在同一组中,则添加它是最原始的:sudo usermod -a -G dialout sam

最后,像这样更改ttyUSB0的权限: sudo chmod a + rw / dev / ttyUSB0

现在如果要运行示例,它将正确执行

答案 2 :(得分:0)

这里的一个线索可能是OP首先提到/dev/tty.usbserial上的设备问题....这表明在OSX上使用而/ dev / ttyUSB0是Linux命名的USB端口,所以也许是在pi上运行这个? 所以要检查的几件事是: 1.在Mac上,FTDI设备的热插拔存在问题。搜索与使用KEXT加载/卸载正确的驱动程序相关的解决方案。 2.我已经在pi中随机发现USB设备被重新分配,所以我的/ dev / ttyUSB0昨天可能是我的/ dev / ttyUSB1,当我有多个USB设备连接到集线器时。如果你不是Pi,而是另一个Linux盒,请检查是否会发生这种情况。

通常,在使用USB设备时,没有可靠的枚举。不要指望每小时或每天都能保持USB连接保持不变。尝试在Windows上使用,并在连接/断开同一设备时观察COM端口号。

您可以通过执行与tomlogic建议类似的操作来手动枚举并始终运行: ls / dev / tty * | grep'[usb | USB]' 所以你可以在你的系统上看到所有与USB相关的tty设备(osx / * nix)(cmd可以在所有类似nix的系统上运行)。