code: def open_connection(self):
          
          self.logger.debug("Open CLI Process '%s'",
                            (self.comport), extra={'type': '<->'})
          self.cmd = self.comport if isinstance(self.comport, list) else [self.comport]
          if not self.comport:
              raise DutConnectionError("Process not defined!")
          try:
              self.build = Build.init(self.cmd[0])
          except NotImplementedError as error:
              self.logger.error("Build initialization failed. Check your build location.")
              self.logger.debug(error)
              raise DutConnectionError(error)
          # Start process&reader thread. Call Dut.process_dut() when new data is coming
          app = self.config.get("application")
          if app and app.get("bin_args"):
              self.cmd = self.cmd + app.get("bin_args")
          try:
              self.start_process(self.cmd, processing_callback=lambda: Dut.process_dut(self))
          except KeyboardInterrupt:
              raise
          except Exception as error:
              raise DutConnectionError("Couldn't start DUT target process {}".format(error))
docs: Open connection by starting the process.
  
          :raises: DutConnectionError