mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-01 00:51:18 +01:00
34 lines
1.0 KiB
Python
Executable File
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') |