<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def enable_tracing(self):
 """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 """


        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