2016-04-02 6 views
2

Ich versuche, eine Bluetooth-Kommunikationsverbindung zwischen meiner Android App und einem Raspberry Pi 3 zu bauen. Ich versuche, pybluez auf meinem Raspberry Pi zu verwenden. Mein Problem ist, dass, wenn ich versuche, den Beispiel-Code mit pybluez (siehe unten) enthielt ausführen ich die folgende Fehlermeldung:Kann Python-Bluez nicht ausführen RFCOMM Server Beispiel Skript

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') 

Dies ist das Skript, das ich zu laufen bin versucht: Es scheint, dass das Problem ist in der advertise_service Methode ...

# 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" 

Interessanterweise funktioniert das folgende Skript einwandfrei, aber ich kann von Android nicht anschließen, weil ich den Port usw. einzustellen für die Steckdose in Android nicht in der Lage bin.

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() 

Was könnte der Grund für die Fehlermeldung sein, die ich für das offizielle Beispielskript bekomme ??? Ich habe bereits die hier beschriebenen Schritte befolgt: https://stackoverflow.com/a/14827036/6149322

Danke für Ihre Hilfe!

Antwort

0

Diese Frage mag alt sein, aber vielleicht hilft das jemandem: Ich glaube, Sie haben einfach nicht alles, was Sie installieren müssen. Damit pybluez richtig funktioniert, benötigen Sie die beiden Pakete bluetooth und libbluetooth-dev.

sudo apt-get install bluetooth libbluetooth-dev 
Verwandte Themen