code: def connect_direct(self, connection_string, no_rpc=False, force=False):
          
  
          if not force and self.connected:
              raise HardwareError("Cannot connect when we are already connected to '%s'" % self.connection_string)
  
          self._loop.run_coroutine(self.adapter.connect(0, connection_string))
  
          try:
              if no_rpc:
                  self._logger.info("Not opening RPC interface on device %s", self.connection_string)
              else:
                  self._loop.run_coroutine(self.adapter.open_interface(0, 'rpc'))
          except HardwareError as exc:
              self._logger.exception("Error opening RPC interface on device %s", connection_string)
              self._loop.run_coroutine(self.adapter.disconnect(0))
              raise exc
          except Exception as exc:
              self._logger.exception("Error opening RPC interface on device %s", connection_string)
              self._loop.run_coroutine(self.adapter.disconnect(0))
              raise HardwareError("Could not open RPC interface on device due to an exception: %s" % str(exc)) from exc
  
          self.connected = True
          self.connection_string = connection_string
          self.connection_interrupted = False
docs: Directly connect to a device using its stream specific connection string.
  
          Normally, all connections to a device include opening the RPC
          interface to send RPCs.  However, there are certain, very specific,
          circumstances when you would not want to or be able to open the RPC
          interface (such as when you are using the debug interface on a bare
          MCU that has not been programmed yet).  In those cases you can pass
          no_rpc=True to not attempt to open the RPC interface.  If you do not
          open the RPC interface at connection time, there is no public
          interface to open it later, so you must disconnect and reconnect to
          the device in order to open the interface.
  
          Args:
              connection_string (str): The connection string that identifies the desired device.
              no_rpc (bool): Do not open the RPC interface on the device (default=False).
              force (bool): Whether to force another connection even if we think we are currently
                  connected.  This is for internal use and not designed to be set externally.