Revert "Added Thorlabs DC2200 support"

This reverts commit f69e3d8b727c37d9b556a036b7de606d566bfeaa.
This commit is contained in:
CPD 2025-03-12 16:44:55 +01:00
parent ffd613c2d9
commit 84fe8980d9
2 changed files with 6 additions and 108 deletions

View File

@ -1,64 +1,25 @@
from cpdctrl.led_control_device.base import LedControlDevice
from cpdctrl.led_control_device.impl.test import TestLedControlDevice
# can not use a static class member as name since the import might fail
TYPENAME_DC2200 = "Thorlabs DC2200"
TYPENAME_LEDD1B = "Thorlabs LEDD1B"
TYPENAME_TEST = "Test"
def list_devices() -> dict[str,list[str]]:
"""
Get a list of all devices that are available to connect
The returned device names may be passed to connect_device() to connect the device and acquire the handle
If a module is not installed, it will not be listed.
Returns
-------
dict[str,list[str]]
A dictionary with keys being the typename and values being a list of device names
"""
devices = {
TYPENAME_TEST: ["Led Control Dummy Device"],
"TEST": ["Led Control Dummy Device"],
}
try:
from .impl import thorlabs_ledd1b as th
devices[TYPENAME_LEDD1B] = ["Thorlabs LEDD1B"] #keithley2700.enumerate_devices()
except ImportError:
pass
try:
from .impl.thorlabs_dc2200 import DC2200
devices[TYPENAME_DC2200] = DC2200.enumerate_devices()
devices["ARDUINO"] = ["Thorlabs LEDD1B"] #keithley2700.enumerate_devices()
except ImportError:
pass
return devices
def connect_device(type_name: str, device_name: str) -> LedControlDevice:
"""
Connect to a device
Parameters
----------
type_name
Type of the device, first key of the dictionary returned by list_devices()
device_name
Name of the device, element of the list belonging to <type_name> in the dictionary returned by list_devices()
Returns
-------
An LedControlDevice object
"""
if type_name == TYPENAME_TEST:
def connect_device(typename: str, devicename: str) -> LedControlDevice:
if typename == "TEST":
return TestLedControlDevice()
elif type_name == TYPENAME_LEDD1B:
elif typename == "ARDUINO":
try:
from .impl import thorlabs_ledd1b as th
return th.LEDD1B()
except ImportError as e:
raise ValueError(f"Arduino devices not available: {e}")
elif type_name == TYPENAME_DC2200:
try:
from .impl.thorlabs_dc2200 import DC2200
return DC2200.connect_device(device_name)
except ImportError as e:
raise ValueError(f"DC2200 devices not available: {e}")
raise ValueError(f"Unknown device type {type_name}")
raise ValueError(f"Unknown device type {typename}")

View File

@ -1,63 +0,0 @@
from ..base import LedControlDevice
import logging
log = logging.getLogger(__name__)
import pyvisa
class DC2200(LedControlDevice):
"""
Class for controlling Thorlabs DC2200 LED controller.
This works only when the LED is connected to Terminal 2
Args:
instr (pyvisa.Resource): pyvisa resource object for the LED controller.
"""
def __init__(self, instr: pyvisa.Resource):
super().__init__()
self.instr = instr
# Led name, format:
# "<vendor_name_string>,<led_head_model_name_string >, < led_head_serial_no_string >, < fw_version_major_num >, < fw_version_minor_num >, < fw_version_subminor_num > "
self.name = instr.query('SYSTem:TERMinal2:HTYPe?')
# led presence test
self.instr.write('OUTPut[1]:TERMinal2:TEST:INITiate')
# constant brightness
self.instr.write('SOURCE1:MODE CB')
# turn off
self.instr.write(f'SOURCE1:CBRightness:BRIGhtness 0')
self.instr.write('OUTPUT1:STATE ON')
def on(self):
self.instr.write(f'SOURCE1:CBRightness:BRIGhtness 100')
def off(self):
self.instr.write(f'SOURCE1:CBRightness:BRIGhtness 0')
def set_level(self, level:int):
self.instr.write(f'SOURCE1:CBRightness:BRIGhtness {level}')
@staticmethod
def enumerate_devices(query="(GPIB)|(USB)?*::INSTR"):
rm = pyvisa.ResourceManager()
res = []
for r in rm.list_resources(query):
try:
instr = rm.open_resource(r)
name = instr.query('*IDN?')
if 'DC2200' in name:
res.append(r)
instr.close()
except:
log.debug(f"Could not open Visa resources {r}")
return res
@staticmethod
def connect_device(name):
rm = pyvisa.ResourceManager()
instr = rm.open_resource(name)
return DC2200(instr)