code: def connect_async(self, connection_id, connection_string, callback):
          
          self._try_connect(connection_string)
  
          def _on_finished(_name, control_info, exception):
              if exception is not None:
                  callback(connection_id, self.id, False, str(exception))
                  return
  
              if control_info is not None:
                  self._control_info = control_info
  
              callback(connection_id, self.id, True, None)
              self._connection_id = connection_id
  
          self._control_thread.command(JLinkControlThread.VERIFY_CONTROL, _on_finished, self._device_info, self._control_info)
docs: Connect to a device by its connection_string
  
          This function asynchronously connects to a device by its BLE address
          passed in the connection_string parameter and calls callback when
          finished.  Callback is called on either success or failure with the
          signature:
  
          callback(conection_id, adapter_id, success: bool, failure_reason: string or None)
  
          Args:
              connection_string (string): A unique connection string that identifies
                  which device to connect to, if many are possible.
              connection_id (int): A unique integer set by the caller for
                  referring to this connection once created
              callback (callable): A callback function called when the
                  connection has succeeded or failed