Source code for prsctrl_gui.devices

"""
Add setup specific devices.
If you change instruments, you might need to change IP/GPIB/USB addresses in this file.
"""
from devctrl import devices as d

# LAMPS
try:
    d.lamp.BenthamPsu610.add_device("name=Xenon-Lamp serial_number=32540/2 default_current=5.4000"),
    d.lamp.BenthamPsu610.add_device("name=Halogen-Lamp serial_number=32540/1 default_current=8.5000"),
except AttributeError:  # bendev not installed
    pass

# SHUTTERS
try:
    d.shutter.ShutterDAQ.add_device(f"name=TAS-Lamp-Shutter channel=ao0")
    d.shutter.ShutterDAQ.add_device(f"name=TAS-Pump-Shutter channel=ao1")
except AttributeError:
    pass

# MONOCHROMATOR
try:
    d.monochromator.TMC300.add_device("name=TMC300")
except AttributeError:
    pass
try:
    d.monochromator.Kymera.add_device("name=Kymera")
except AttributeError:
    pass

# LASER
try: 
    d.laser.Cobolt.add_device(f"name=Cobolt-405nm port=COM5")
except AttributeError:
    pass

# DAQ - SAM
try:
    d.switch.NIDAQ.add_device("name=SAM device=Dev1 channel=port1/line3")
except AttributeError:
    pass


import logging
log = logging.getLogger(__name__)
[docs] class DebugShutter(d.Shutter): _CLASS_TYPE = "implementation" def __init__(self) -> None: super().__init__() self._open = False def open(self): log.info(f"DebugShutter open") self._open = True def close(self): log.info(f"DebugShutter close") self._open = False def is_open(self): return self._open
[docs] def is_connected(self) -> bool: return True
[docs] @classmethod def connect_device(cls, device_name): return DebugShutter()
@staticmethod def _enumerate_devices() -> list[str]: return ["Shutter Instance 1"] def __repr__(self) -> str: return "DebugShutter instance"
# d.Shutter._add_implementation(DebugShutter)