Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
fac = event_loop._create_connection_transport(mysocket, aiobs.BLEScanRequester, None, None)
conn, btctrl = event_loop.run_until_complete(fac) # Start the bluetooth control loop
btctrl.process=processBLEBeacon # Attach the handler to the bluetooth control loop
# Begin probing
btctrl.send_scan_request()
try:
event_loop.run_forever()
except KeyboardInterrupt:
if verbose:
LOG.info('Keyboard interrupt')
finally:
if verbose:
LOG.info('Closing event loop')
btctrl.stop_scan_request()
command = aiobs.HCI_Cmd_LE_Advertise(enable=False)
btctrl.send_command(command)
conn.close()
event_loop.close()
event_loop = asyncio.get_event_loop()
#First create and configure a raw socket
mysocket = aiobs.create_bt_socket(opts.device)
#create a connection with the raw socket
#This used to work but now requires a STREAM socket.
#fac=event_loop.create_connection(aiobs.BLEScanRequester,sock=mysocket)
#Thanks to martensjacobs for this fix
fac=event_loop._create_connection_transport(mysocket,aiobs.BLEScanRequester,None,None)
#Start it
conn,btctrl = event_loop.run_until_complete(fac)
#Attach your processing
btctrl.process=my_process
if opts.advertise:
command = aiobs.HCI_Cmd_LE_Advertise(enable=False)
btctrl.send_command(command)
command = aiobs.HCI_Cmd_LE_Set_Advertised_Params(interval_min=opts.advertise,interval_max=opts.advertise)
btctrl.send_command(command)
if opts.url:
myeddy = EddyStone(param=opts.url)
else:
myeddy = EddyStone()
if opts.txpower:
myeddy.power=opts.txpower
command = aiobs.HCI_Cmd_LE_Set_Advertised_Msg(msg=myeddy)
btctrl.send_command(command)
command = aiobs.HCI_Cmd_LE_Advertise(enable=True)
btctrl.send_command(command)
#Probe
btctrl.send_scan_request()