[Python] 纯文本查看 复制代码import gc
import sys
import network as n
import gc
import time
b = n.Bluetooth()
found = {}
complete = True
connectname = ""
mac=b'\x00\x00\x00\x00\x00\x00'
def bcb(b,e,d,u):
global complete
global found
global connectname
global mac
if e == b.CONNECT:
print("CONNECT")
elif e == b.DISCONNECT:
print("DISCONNECT")
elif e == b.SCAN_RES:
if complete:
found = {}
adx, name,ssic= d
if connectname == str(name):
mac = adx
print(d)
if adx not in found:
found[adx] = name
else:
print('else')
print(d)
elif e == b.SCAN_CMPL:
ok = True
print("Scan Complete")
complete = True
print ('\nFinal List:')
for adx, name in found.items():
print ('Found:' + ':'.join(['%02X' % i for i in adx]), name)
print('connect ',name)
else:
print ('Unknown event', e,d)
def cb (cb, event, value, userdata):
print('charcb ', cb, userdata, ' ', end='')
if event == b.READ:
print('Read')
return 'ABCDEFG'
elif event == b.WRITE:
print ('Write', value)
elif event == b.NOTIFY:
print ('Notify', value)
def conn(bda):
b.ble_settings(adv_is_scan_rsp = False)
conn = b.connect(bda)
i=0
while not conn.is_connected():
i=i+1
time.sleep(.1)
print ('Connected')
time.sleep(2) # Wait for services
service = ([s for s in conn.services() if s.uuid()[0:4] == b'\x00\x00\xDF\xB0'] + [None])[0]
if service:
print(service.chars())
char = ([c for c in service.chars() if c.uuid()[0:4] == b'\x00\x00\xDF\xB1'] + [None])[0]
char.callback(cb)
if char:
char.callback(cb)
if i == 10:
print('time out')
break
return conn
def onScanComplete():
time.sleep(2)
def set_connetname(name):
return "b'%s'" % name
def scan():
global connectname
connectname = set_connetname("Bluno")
b.ble_settings(adv_is_scan_rsp = True)
b.scan_start(5)
time.sleep(10)
b.callback(bcb)
scan()
print('mac:',mac)
conn(mac)