2013-10-11 70 views
4

我正在使用Python脚本来控制我的Mindstorms NXT与Raspberry Pi。 我的问题是,NXT有一个蓝牙密钥。您可以更改密码但不删除它。Python蓝牙密码/密码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

我添加了一个赏金,因为我有一个相关的问题。最接近蓝牙(如上所述)连接到设备的是发送ping命令,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已经尝试了Linux的rfcomm相关位,值得参考here

0

在Windows上,我只需进入蓝牙设置并与设备配对,在Windows上输入密钥,然后在NXT上输入密钥。它从来没有显示过屏幕显示它已经配对,似乎陷入了困境,但它确实有效,并且能够与nxt-python连接。