Files
slsDetectorPackage/python/slsdet/ctb.py
T
mazzol_a bc86449652
Build on RHEL9 docker image / build (push) Successful in 4m33s
Build on RHEL8 docker image / build (push) Successful in 5m10s
Build and Deploy on local RHEL9 / build (push) Successful in 2m0s
Build and Deploy on local RHEL8 / build (push) Successful in 5m0s
Run Simulator Tests on local RHEL9 / build (push) Successful in 18m17s
Run Simulator Tests on local RHEL8 / build (push) Successful in 21m50s
Dev/doc/add ctb to doc (#1455)
* added numpy for patterngenerator

* treat warnings as errors

* fix warnings during docu build

* added power and ctb to documentation
2026-05-12 09:25:35 +02:00

117 lines
2.9 KiB
Python

# SPDX-License-Identifier: LGPL-3.0-or-other
# Copyright (C) 2021 Contributors to the SLS Detector Package
from .detector import Detector, freeze
from .utils import element_if_equal
from .dacs import NamedDacs
from .powers import NamedPowers
from .proxy import SlowAdcProxy
from . import _slsdet
dacIndex = _slsdet.slsDetectorDefs.dacIndex
from .detector_property import DetectorProperty
import numpy as np
from .utils import element
@freeze
class Ctb(Detector):
def __init__(self, id = 0):
super().__init__(id)
self._frozen = False
self._dacs = NamedDacs(self)
self._powers = NamedPowers(self)
@property
def dacs(self):
return self._dacs
@property
def powers(self):
"""
[Chiptestboard][Xilinx CTB] Power names and values of all power supplies.
Example
-----------
>>> # print all powers with DAC and info if enabled
>>> d.powers
>>> # set DAC or enables for power supply VA
>>> d.powers.VA = 1200
>>> # enable or disable power subbly VA
>>> d.powers.VA.enable()
>>> d.powers.VA.disable()
>>> # get dac value of power supply VA
>>> d.powers.VA.dac
>>> # check if power supply VA is enabled
>>> d.powers.VA.enabled
>>> # print both enabled and dac value of power supply VA
>>> d.powers.VA
"""
return self._powers
@property
def powerlist(self):
"""
List of power supply names on the Chip Test Board.
:setter: List of custom power supply names to set.
"""
return self.getPowerNames()
@powerlist.setter
def powerlist(self, value):
self.setPowerNames(value)
@property
def adclist(self):
return self.getAdcNames()
@adclist.setter
def adclist(self, value):
self.setAdcNames(value)
@property
def signallist(self):
return self.getSignalNames()
@signallist.setter
def signallist(self, value):
self.setSignalNames(value)
@property
def slowadc(self):
"""
[Ctb] Slow ADC channel in uV of all channels or specific ones from 0-7.
Example
-------
>>> d.slowadc
0: 0 uV
1: 0 uV
2: 0 uV
3: 0 uV
4: 0 uV
5: 0 uV
6: 0 uV
7: 0 uV
>>> d.slowadc[3]
0
"""
return SlowAdcProxy(self)
@property
def slowadclist(self):
return self.getSlowADCNames()
@slowadclist.setter
def slowadclist(self, value):
self.setSlowADCNames(value)
@property
def slowadcvalues(self):
"""[Chiptestboard][Xilinx CTB] Gets the slow adc values for every slow adc for this detector."""
return {
slowadc.name.lower(): element_if_equal(np.array(self.getSlowADC(slowadc)))
for slowadc in self.getSlowADCList()
}