Files
slsDetectorPackage/python/slsdet/registers.py
froejdh_e 38bc600dc9 first try
2025-12-11 15:42:20 +01:00

34 lines
1.0 KiB
Python
Executable File

# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from ._slsdet import RegisterValue, RegisterAddress
class Register:
def __init__(self, detector):
self._detector = detector
def __getitem__(self, key):
if isinstance(key, str):
key = self._detector.getRegisterDefinition(key)
return self._detector.readRegister(key)
def __setitem__(self, key, value):
if isinstance(key, str):
key = self._detector.getRegisterDefinition(key)
elif isinstance(key, int):
key = RegisterAddress(key)
if isinstance(value, int):
value = RegisterValue(value)
self._detector.writeRegister(key, value, False)
class Adc_register:
def __init__(self, detector):
self._detector = detector
def __setitem__(self, key, value):
self._detector.writeAdcRegister(key, value)
def __getitem__(self, key):
raise ValueError('Adc registers cannot be read back')