temperature reading for eiger

This commit is contained in:
Erik Frojdh
2020-08-20 11:46:35 +02:00
parent 9b26f5a6c8
commit a7cc2b38d8
7 changed files with 114 additions and 226 deletions

View File

@ -1,23 +1,33 @@
from functools import partial
class Adc:
def __init__(self, name, detector):
def __init__(self, name, enum, detector):
self.name = name
self.enum = enum
self._detector = detector
self.get_nmod = self._detector._api.getNumberOfDetectors
self.get_nmod = self._detector.size
# Bind functions to get and set the dac
self.get = partial(self._detector._api.getAdc, self.name)
self.get = partial(self._detector.getAdc, self.enum)
def __getitem__(self, key):
"""
Get dacs either by slice, key or list
"""
if key == slice(None, None, None):
return [self.get(i) / 1000 for i in range(self.get_nmod())]
return self.get()
elif isinstance(key, Iterable):
return [self.get(k) / 1000 for k in key]
return self.get(list(key))
else:
return self.get(key) / 1000
return self.get([key])[0] #No list for single value
# def __getitem__(self, key):
# """
# Get dacs either by slice, key or list
# """
# if key == slice(None, None, None):
# return [self.get(i) / 1000 for i in range(self.get_nmod())]
# elif isinstance(key, Iterable):
# return [self.get(k) / 1000 for k in key]
# else:
# return self.get(key) / 1000
def __repr__(self):
"""String representation for a single adc in all modules"""