code: def _read_response(self):
          
          try:
              line = self.readline()
          except RuntimeError:
              Dut._logger.warning("Failed to read PIPE", extra={'type': '!<-'})
              return -1
          if line:
              if self.store_traces:
                  self.traces.append(line)
                  self.response_traces.append(line)
              EventObject(EventTypes.DUT_LINE_RECEIVED, self, line)
              match = re.search(r"^\[([\w\W]{4})\]\[([\W\w]{4,}?)\]\: (.*)", line)
              if match:
                  self.logger.debug(line, extra={'type': '<<<'})
              else:
                  self.logger.info(line, extra={'type': '<--'})
  
              retcode = self.check_retcode(line)
              if retcode is not None:
                  resp = CliResponse()
                  resp.retcode = retcode
                  resp.traces = self.response_traces
                  resp.lines = self.response_traces
                  self.response_traces = []
                  return resp
          return None
docs: Internal response reader.
  
          :return: CliResponse or None