2013-10-11 110 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連接。