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