only get dacnames if modules are attached (#550)

This commit is contained in:
Erik Fröjdh 2022-09-08 13:48:05 +02:00 committed by GitHub
parent afff85b44b
commit 236f00c810
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 29 deletions

View File

@ -7,30 +7,6 @@ import _slsdet
dacIndex = _slsdet.slsDetectorDefs.dacIndex
from .detector_property import DetectorProperty
# class CtbDacs(DetectorDacs):
# """
# Ctb dacs
# """
# _dacs = [('dac0', dacIndex(0), 0, 4000, 1400),
# ('dac1', dacIndex(1), 0, 4000, 1200),
# ('dac2', dacIndex(2), 0, 4000, 900),
# ('dac3', dacIndex(3), 0, 4000, 1050),
# ('dac4', dacIndex(4), 0, 4000, 1400),
# ('dac5', dacIndex(5), 0, 4000, 655),
# ('dac6', dacIndex(6), 0, 4000, 2000),
# ('dac7', dacIndex(7), 0, 4000, 1400),
# ('dac8', dacIndex(8), 0, 4000, 850),
# ('dac9', dacIndex(9), 0, 4000, 2000),
# ('dac10', dacIndex(10), 0, 4000, 2294),
# ('dac11', dacIndex(11), 0, 4000, 983),
# ('dac12', dacIndex(12), 0, 4000, 1475),
# ('dac13', dacIndex(13), 0, 4000, 1200),
# ('dac14', dacIndex(14), 0, 4000, 1600),
# ('dac15', dacIndex(15), 0, 4000, 1455),
# ('dac16', dacIndex(16), 0, 4000, 0),
# ('dac17', dacIndex(17), 0, 4000, 1000),
# ]
# _dacnames = [_d[0] for _d in _dacs]
from .utils import element
@freeze
@ -38,7 +14,6 @@ class Ctb(Detector):
def __init__(self, id = 0):
super().__init__(id)
self._frozen = False
# self._dacs = CtbDacs(self)
self._dacs = NamedDacs(self)
@property

View File

@ -38,7 +38,7 @@ class Dac(DetectorProperty):
class NamedDacs:
"""
New implementation of the detector dacs. Used at the momen for
New implementation of the detector dacs. Used at the moment for
Ctb but should replace the old one for all detectors
"""
_frozen = False
@ -47,8 +47,13 @@ class NamedDacs:
self._detector = detector
self._current = 0
self._dacnames = [n.replace(" ", "") for n in detector.getDacNames()]
# # Populate the dacs
#only get the dacnames if we have modules attached
if detector.size() == 0:
self._dacnames = [f"dac{i}" for i in range(18)]
else:
self._dacnames = [n.replace(" ", "") for n in detector.getDacNames()]
# Populate the dacs
for i,name in enumerate(self._dacnames):
#name, enum, low, high, default, detector
setattr(self, name, Dac(name, dacIndex(i), 0, 4000, 1000, detector))
@ -60,7 +65,7 @@ class NamedDacs:
def __setattr__(self, name, value):
if not self._frozen:
#durining init we need to be able to set up the class
#durning init we need to be able to set up the class
super().__setattr__(name, value)
else:
#Later we restrict us to manipulate dacs and a few fields

View File

@ -115,6 +115,11 @@ class Detector(CppDetectorApi):
fname = ut.make_string_path(fname)
self.loadConfig(fname)
#create a new object to replace the old, allow us to
#do a new initialization of dacs etc.
new_object = self.__class__(self.getShmId())
self.__dict__.update(new_object.__dict__)
@property
def parameters(self):
"""Sets detector measurement parameters to those contained in fname.