2016-04-02 4 views
2

私のAndroid AppとRaspberry Pi 3の間にブルートゥース通信リンクを構築しようとしています。私は私のRaspberry Piでpybluezを使用しようとしています。python-bluez RFCOMMサーバーのサンプルスクリプトを実行できません

Traceback (most recent call last): 
    File "/usr/share/doc/python-bluez/examples/simple/rfcomm-server.py", line 20, in <module> 
    profiles = [ SERIAL_PORT_PROFILE ], 
    File "/usr/lib/python2.7/dist-packages/bluetooth/bluez.py", line 176, in advertise_service 
    raise BluetoothError (str (e)) 
BluetoothError: (2, 'No such file or directory') 

これは私が実行しようとしているスクリプトは次のとおりです:私の問題は、私はpybluezに含まれている例コードを実行しようとすると、私は、次のエラーメッセージが表示されます(下記参照)ということであることが問題と思われます... advertise_service方法で

# file: rfcomm-server.py 
# auth: Albert Huang <[email protected]> 
# desc: simple demonstration of a server application that uses RFCOMM sockets 
# 
# $Id: rfcomm-server.py 518 2007-08-10 07:20:07Z albert $ 


from bluetooth import * 

server_sock=BluetoothSocket(RFCOMM) 
server_sock.bind(("",PORT_ANY)) 
server_sock.listen(1) 

port = server_sock.getsockname()[1] 

uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee" 

advertise_service(server_sock, "SampleServer", 
        service_id = uuid, 
        service_classes = [ uuid, SERIAL_PORT_CLASS ], 
        profiles = [ SERIAL_PORT_PROFILE ], 
#     protocols = [ OBEX_UUID ] 
        ) 

print "Waiting for connection on RFCOMM channel %d" % port 

client_sock, client_info = server_sock.accept() 
print "Accepted connection from ", client_info 

try: 
    while True: 
     data = client_sock.recv(1024) 
     if len(data) == 0: break 
     print "received [%s]" % data 
except IOError: 
    pass 

print "disconnected" 

client_sock.close() 
server_sock.close() 
print "all done" 

ある興味深いことに、次のスクリプトは完璧に動作しますが、私は、Androidでのソケットのポートなどを設定することはできませんだから、私は、Androidから接続することはできません。

import bluetooth 

server_sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM) 

port = 1 
server_sock.bind(("",port)) 
server_sock.listen(1) 

client_sock,address = server_sock.accept() 
print("Accepted connection from ",address) 

data = client_sock.recv(1024) 
print("received [%s]" % data) 

client_sock.close() 
server_sock.close() 

私が公式のサンプルスクリプトのために得るエラーメッセージの理由は何ですか?私はすでにここに記載されている手順に従っています:https://stackoverflow.com/a/14827036/6149322

ありがとうございました!

答えて

0

この質問は古いかもしれませんが、おそらくこれが誰かに役立つかもしれません。私はあなたがインストールする必要があるものすべてを持っていないと思います。 pybluezが正常に動作するためには、2つのパッケージbluetoothlibbluetooth-devが必要です。

sudo apt-get install bluetooth libbluetooth-dev 
関連する問題