from .detector import Detector
from .utils import element_if_equal
from .dacs import DetectorDacs
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
class Ctb(Detector):
    def __init__(self, id = 0):
        super().__init__(id)
        self._frozen = False 
        self._dacs = CtbDacs(self)
    
    @property
    def dacs(self):
        return self._dacs