40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
|
|
from .base import MeasurementDevice
|
|
|
|
TYPENAME_TEST = "Test"
|
|
TYPENAME_SR830 = "SR830"
|
|
TYPENAME_MODEL7260 = "Model7260"
|
|
|
|
try:
|
|
from .impl.sr830 import SR830
|
|
except ImportError:
|
|
pass
|
|
|
|
from .impl.test import TestVoltageMeasurementDevice
|
|
|
|
def list_devices() -> dict[str,list[str]]:
|
|
devices = {
|
|
TYPENAME_TEST: ["Measurement Dummy Device"],
|
|
}
|
|
try:
|
|
from .impl.sr830 import SR830
|
|
devices[TYPENAME_SR830] = SR830.enumerate_devices()
|
|
except ImportError:
|
|
pass
|
|
try:
|
|
from .impl.model7260 import Model7260
|
|
devices[TYPENAME_MODEL7260] = Model7260.enumerate_devices()
|
|
except ImportError:
|
|
pass
|
|
return devices
|
|
|
|
def connect_device(type_name: str, device_name: str) -> MeasurementDevice:
|
|
if type_name == TYPENAME_TEST:
|
|
return TestVoltageMeasurementDevice()
|
|
elif type_name == TYPENAME_SR830:
|
|
try:
|
|
from .impl.sr830 import SR830
|
|
return SR830.connect_device(device_name)
|
|
except ImportError as e:
|
|
raise ValueError(f"SR830 not available: {e}")
|
|
raise ValueError(f"Unknown device type {type_name}") |