34 lines
909 B
Python
34 lines
909 B
Python
|
|
from .base import Monochromator
|
|
|
|
TYPENAME_DUMMY = "Dummy"
|
|
TYPENAME_BENTHAM = "Bentham"
|
|
|
|
try:
|
|
from .impl.sr830 import SR830
|
|
except ImportError:
|
|
pass
|
|
|
|
from .impl.dummy import DummyMonochromator
|
|
|
|
def list_devices() -> dict[str,list[str]]:
|
|
devices = {
|
|
TYPENAME_DUMMY: ["Dummy Monochromator"],
|
|
}
|
|
try:
|
|
from .impl.bentham_tmc300 import TMC300
|
|
devices[TYPENAME_BENTHAM] = ["Bentham TMC300"]
|
|
except ImportError:
|
|
pass
|
|
return devices
|
|
|
|
def connect_device(type_name: str, device_name: str) -> Monochromator:
|
|
if type_name == TYPENAME_DUMMY:
|
|
return DummyMonochromator()
|
|
elif type_name == TYPENAME_BENTHAM:
|
|
try:
|
|
from .impl.bentham_tmc300 import TMC300
|
|
return TMC300()
|
|
except ImportError as e:
|
|
raise ValueError(f"TMC300 not available: {e}")
|
|
raise ValueError(f"Unknown device type {type_name}") |