2013-10-11 6 views
4

Я работаю над скриптом Python для управления Mindstorms NXT с помощью малины Pi. Моя проблема в том, что NXT имеет ключ доступа Bluetooth. Вы можете изменить ключ доступа, но не удалить его.Python Bluetooth Passkey/Password Linux

Я хочу знать, как вы можете подключить гнездо PyBluez к устройству с ключом доступа.

Это текущая программа:

import bluetooth 
import socket 

target_name = "Jerry" 
target_address = None 

print "performing inquiry..." 
nearby_devices = bluetooth.discover_devices() 
print "found %d devices" % len(nearby_devices) 

for bdaddr in nearby_devices: 
    if target_name == bluetooth.lookup_name(bdaddr): 
     target_address = bdaddr 
     break 

if target_address is not None: 
    print "found target bluetooth device with address ", target_address 
else: 
    print "could not find target bluetooth device nearby" 

bluesock= socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM) 
bluesock.connect((target_address, 1)) 
+0

Markus Blechschmidt, какая точная проблема и в чем ваш вопрос? – osgx

+0

Я добавил щедрость, потому что у меня есть связанная с этим проблема. Ближайшим, что bluetooth (как описано выше) приходит к подключению к устройствам, является то, что пинг отправлен, NXT запрашивает пароль. (Предположительно, это связано с инициирующим компьютером контактом, а не с NXT). В документации NXT не было намека на какие-либо ключи доступа. Это выглядит связанным, но это не так: http://stackoverflow.com/questions/1972605/lego-mindstorm-nxt-2-0-error-nxt-bluetooth-passkey-confirmation-failed – Donnied

ответ

3

Я не уверен, что есть Python конкретный ответ. Поступы py-nxt, которые я видел, казалось, указывали на ОС.

Помогает ли вам начать этот фоновый процесс (на вашем компьютере) с помощью ключа доступа?

bluetooth-agent 1234 & 

Я нашел, что это полезно для сопряжения с NXT первым использованием:

hcitool cc 00:16:53:0A:17:16 

Причем, я нашел адрес MAC с:

hcitool scan 

Если вы hadn» t уже пробовал связанные с rfcomm биты для Linux, есть смысл ref here.

0

В Windows мне просто нужно было войти в настройки Bluetooth и установить соединение с устройством, введя ключ доступа в Windows, а затем в NXT. Он никогда не показывал экран, в котором говорилось, что он был сопряжен, казалось бы, застрял в спаривании, но он действительно работал, и я смог подключиться к nxt-python.