nibcq.switch.SwitchCapability ============================= .. py:class:: nibcq.switch.SwitchCapability(config: SwitchConfiguration = None) Bases: :py:obj:`abc.ABC`, :py:obj:`SwitchCapable` Base class for switch control functionality. .. py:method:: create_for_device_family(device_family: nibcq.enums.DeviceFamily, config: SwitchConfiguration) -> SwitchCapability :classmethod: Factory function to create appropriate switch capability. :param device_family: The device family (DMM or SMU) :param config: SwitchConfiguration object :returns: SwitchCapability instance appropriate for the device family. :raises ValueError: If device family is not supported for switching or config is None. .. py:method:: initialize_switches() -> None :abstractmethod: Initialize switch sessions based on device family requirements. .. py:method:: connect_channel(cell: str | SMUCellData) -> None :abstractmethod: Connect the current device to the specified Cell DUT on the switch. :param cell: Channel name string or SMUCellData containing connection information .. py:method:: disconnect_all() -> None Disconnect all channels concurrently. .. py:method:: wait_for_debounce() -> None Wait for all the switch relays to settle concurrently. .. py:method:: close() -> None Close all switch sessions.