nibcq.switch.SwitchCapability

class nibcq.switch.SwitchCapability(config: SwitchConfiguration = None)

Bases: abc.ABC, SwitchCapable

Base class for switch control functionality.

Parameters:

config (SwitchConfiguration)

classmethod create_for_device_family(device_family: nibcq.enums.DeviceFamily, config: SwitchConfiguration) SwitchCapability

Factory function to create appropriate switch capability.

Parameters:
Returns:

SwitchCapability instance appropriate for the device family.

Raises:

ValueError – If device family is not supported for switching or config is None.

Return type:

SwitchCapability

abstractmethod initialize_switches() None

Initialize switch sessions based on device family requirements.

Return type:

None

abstractmethod connect_channel(cell: str | SMUCellData) None

Connect the current device to the specified Cell DUT on the switch.

Parameters:

cell (str | SMUCellData) – Channel name string or SMUCellData containing connection information

Return type:

None

disconnect_all() None

Disconnect all channels concurrently.

Return type:

None

wait_for_debounce() None

Wait for all the switch relays to settle concurrently.

Return type:

None

close() None

Close all switch sessions.

Return type:

None