code: def enable_tracing(self):
          
  
          if not self.connected:
              raise HardwareError("Cannot enable tracing if we are not in a connected state")
  
          if self._traces is not None:
              _clear_queue(self._traces)
              return self._traces
  
          self._traces = queue.Queue()
          self._loop.run_coroutine(self.adapter.open_interface(0, 'tracing'))
  
          return self._traces
docs: Open the tracing interface and accumulate traces in a queue.
  
          This method is safe to call multiple times in a single device
          connection. There is no way to check if the tracing interface is
          opened or to close it once it is opened (apart from disconnecting from
          the device).
  
          The first time this method is called, it will open the tracing
          interface and return a queue that will be filled asynchronously with
          reports as they are received.  Subsequent calls will just empty the
          queue and return the same queue without interacting with the device at
          all.
  
          Returns:
              queue.Queue: A queue that will be filled with trace data from the device.
  
              The trace data will be in disjoint bytes objects in the queue