Source code for semi_cr.core.lab.pins.pins

from __future__ import annotations
from typing import TYPE_CHECKING

if TYPE_CHECKING:

    from semi_cr.core.lab.devices.rf_device import BaseRFDevice 
    from semi_cr.core.lab.devices.semiconductor import BaseSemiConductingDevice

from semi_cr.core.lab.pins.base import BasePinChannel

[docs] class DCPinChannel(BasePinChannel): def __post_init__(self): try: super().__post_init__() except AttributeError: pass self.parent = BaseSemiConductingDevice
[docs] class Gate(DCPinChannel): pass
[docs] class Ohmic(DCPinChannel): pass
[docs] class Source(Ohmic): def __init__( self, parent, name: str, instruments=None, **kwargs ): super().__init__( parent, name, instruments=instruments, **kwargs, )
[docs] class Drain(Ohmic): def __init__( self, parent, name: str, instruments=None, **kwargs, ): super().__init__( parent, name, instruments=instruments, **kwargs, )
[docs] class Plunger(Gate): pass
[docs] class Screening(Gate): pass
[docs] class Cutter(Gate): pass
[docs] class Barrier(Gate): pass
[docs] class RFPinChannel(BasePinChannel): def __post_init__(self): try: super().__post_init__() except AttributeError: pass self.parent = BaseRFDevice
[docs] class RFInput(RFPinChannel): @property def rf_drive(self): return self._rf_drive @rf_drive.setter def rf_drive(self, value): self._rf_drive = value
[docs] def update_frequency(self, frequency): self.rf_drive.update_frequency(frequency)
[docs] class RFOutput(RFPinChannel): pass