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)