def run(self): """Run HCIdump thread.""" _LOGGER.debug("HCIdump thread: Run") try: mysocket = aiobs.create_bt_socket(self._interface) except OSError as error: _LOGGER.error("HCIdump thread: OS error: %s", error) else: self._event_loop = asyncio.new_event_loop() asyncio.set_event_loop(self._event_loop) fac = self._event_loop._create_connection_transport( mysocket, aiobs.BLEScanRequester, None, None) _LOGGER.debug("HCIdump thread: Connection") conn, btctrl = self._event_loop.run_until_complete(fac) _LOGGER.debug("HCIdump thread: Connected") btctrl.process = self.process_hci_events btctrl.send_command( aiobs.HCI_Cmd_LE_Set_Scan_Params(scan_type=self._active)) btctrl.send_scan_request() _LOGGER.debug("HCIdump thread: start main event_loop") try: self._event_loop.run_forever() finally: _LOGGER.debug( "HCIdump thread: main event_loop stopped, finishing", ) btctrl.stop_scan_request() conn.close() self._event_loop.run_until_complete(asyncio.sleep(0)) self._event_loop.close() _LOGGER.debug("HCIdump thread: Run finished")
def connection_made(self, transport): self.transport = transport command = aiobs.HCI_Cmd_LE_Set_Scan_Params(0x1) self.transport.write(command.encode())