code: def open(self, access_mode=constants.AccessModes.no_lock, open_timeout=5000):
          
  
          logger.debug('%s - opening ...', self._resource_name, extra=self._logging_extra)
          with self._resource_manager.ignore_warning(constants.VI_SUCCESS_DEV_NPRESENT):
              self.session, status = self._resource_manager.open_bare_resource(self._resource_name, access_mode, open_timeout)
  
              if status == constants.VI_SUCCESS_DEV_NPRESENT:
                  # The device was not ready when we opened the session.
                  # Now it gets five seconds more to become ready.
                  # Every 0.1 seconds we probe it with viClear.
                  start_time = time.time()
                  sleep_time = 0.1
                  try_time = 5
                  while time.time() - start_time < try_time:
                      time.sleep(sleep_time)
                      try:
                          self.clear()
                          break
                      except errors.VisaIOError as error:
                          if error.error_code != constants.VI_ERROR_NLISTENERS:
                              raise
  
          self._logging_extra['session'] = self.session
          logger.debug('%s - is open with session %s',
                       self._resource_name, self.session,
                       extra=self._logging_extra)
docs: Opens a session to the specified resource.
  
          :param access_mode: Specifies the mode by which the resource is to be accessed.
          :type access_mode: :class:`pyvisa.constants.AccessModes`
          :param open_timeout: Milliseconds before the open operation times out.
          :type open_timeout: int