XbeeException: не удалось найти порт: /dev/tty.usbserial-A6005uPi

Я пытаюсь запустить пример, используя API XBee.

Когда я выполняю программу в 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 ответа

Решение

, Шаги решения:
1, проверьте группу ttyUSB0: ls -la /dev/ttyUSB0 crwxrwx- x 1 корневой набор 188, 0 декабря 2 10:01 /dev/ttyUSB0

Затем проверьте, существует ли пользователь "sam" в той же группе (dialout) в этом случае: id -Gn sam sam adm cdrom sudo dip plugdev lpadmin sambashare,

В случае, если пользователь не входит в ту же группу, его необходимо добавить: sudo usermod -a -G dialout sam

Наконец, измените разрешение ttyUSB0 следующим образом: sudo chmod a+rw /dev/ttyUSB0

Теперь, если пример запущен, он будет выполнен правильно

Подсказка, возможно, заключается в том, что OP упоминает сначала о проблеме с устройством в /dev/tty.usbserial...., что указывает на использование в OSX, в то время как /dev/ttyUSB0 - это имя Linux для USB-портов, поэтому, возможно, оно работает на пи? Итак, пара вещей, которые нужно проверить: 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]', чтобы вы могли видеть все устройства tty (osx/*nix), которые связаны с USB в вашей системе (cmd будет работать на всех nix-подобных системах).

Похоже, вы используете неправильный путь к последовательному порту вашего модуля XBee: Could not find port: /dev/tty.usbserial-A6005uPi,

Если вы посмотрите в каталог dev, как называются ваши usbserial ttys?

ls /dev/tty.usbserial*

Вы передаете этот путь в программу или он жестко запрограммирован где-то в источнике? Что бы это ни было, вам просто нужно обновить его до соответствующего значения.

Другие вопросы по тегам