Ошибки при подключении к кирпичу nxt
Я использую nxt-python для подключения к моему кирпичу nxt из моего Raspberry Pi.
После некоторой борьбы с версиями библиотек bluetooth и usb на python 3.2 мне удалось установить соединение через bluetooth и запросить пароль. После некоторой борьбы я обнаружил, что могу печатать bluetooth-agent PASSKEY &
(и замените PASSKEY на пароль) в терминале перед запуском скрипта python, который соединяется с кирпичом nxt, и, насколько я знаю, работает нормально. Но сейчас выдает ошибку. Подключение через USB выдает другую ошибку.
Вот ошибка, которую я получаю с обоими методами (USB и BT) и включенной отладкой:
USB: True BT: True Fantom: False FUSB: False FBT: False
Traceback (most recent call last):
File "/usr/local/lib/python3.2/dist-packages/nxt/locator.py", line 138, in find_one_brick
if name and info[0].strip('\0') != name:
TypeError: Type str doesn't support the buffer API
Failed to connect to possible brick
Traceback (most recent call last):
File "/usr/local/lib/python3.2/dist-packages/nxt/locator.py", line 131, in find_one_brick
info = b.get_device_info()
File "/usr/local/lib/python3.2/dist-packages/nxt/brick.py", line 27, in poll
self.sock.send(ogram.bytes())
File "/usr/local/lib/python3.2/dist-packages/nxt/bluesock.py", line 57, in send
l0 = len(data.encode('utf-8')) & 0xFF
AttributeError: 'bytes' object has no attribute 'encode'
Failed to connect to possible brick
No brick was found.
Is the brick turned on?
For more diagnosing use the debug=True argument or
try the 'nxt_test' script located in /bin or ~/.local/bin
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/dist-packages/nxt/locator.py", line 154, in find_one_brick
raise BrickNotFoundError
nxt.locator.BrickNotFoundError
Поскольку я знаю Python, я мог бы, вероятно, исправить ошибки, просто отредактировав исходный код, но я боюсь, что что-то сломаю. Я попытался отредактировать его (сохраняя резервные копии каждого файла, который я редактирую), а затем он проходит несколько строк, прежде чем выдать другую ошибку.
РЕДАКТИРОВАТЬ
Когда я пытаюсь импортировать с помощью Python 2, это дает мне эту ошибку:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/nxt/__init__.py", line 15, in <module>
from nxt.locator import find_one_brick, Method
File "/usr/local/lib/python2.7/dist-packages/nxt/locator.py", line 49
if not silent: print("USB module unavailable, not searching there", file=sys.stderr)
^
SyntaxError: invalid syntax
1 ответ
Я скачал стабильную версию v2.2.2 вместо клонирования главного коммита, и он прекрасно работает под python2. Жаль, что это не Python3.