diff --git a/python/sls_detector/experimental.py b/python/sls_detector/experimental.py index cd87b3c74..1f37c49e4 100755 --- a/python/sls_detector/experimental.py +++ b/python/sls_detector/experimental.py @@ -176,21 +176,7 @@ class ExperimentalDetector(CppDetectorApi): else: self.setPeriod(dt.timedelta(seconds=t)) # Acq - @property - def rx_status(self): - """ - Read the status of the receiver - """ - return element_if_equal(self.getReceiverStatus()) - - @rx_status.setter - def rx_status(self, status_str): - if status_str == "start": - self.startReceiver() - elif status_str == "stop": - self.stopReceiver() - else: - raise NotImplementedError("Unknown argument to rx_status") + @property def busy(self): @@ -228,8 +214,133 @@ class ExperimentalDetector(CppDetectorApi): # Configuration + + # Time + @property + def rx_status(self): + """ + Read the status of the receiver + """ + return element_if_equal(self.getReceiverStatus()) + + @rx_status.setter + def rx_status(self, status_str): + if status_str == "start": + self.startReceiver() + elif status_str == "stop": + self.stopReceiver() + else: + raise NotImplementedError("Unknown argument to rx_status") + + #TODO! Rename to rx_framescaught + @property + def framescaught(self): + return element_if_equal(self.getFramesCaught()) + + + @property + def startingfnum(self): + return element_if_equal(self.getStartingFrameNumber()) + + @startingfnum.setter + def startingfnum(self, value): + self.setStartingFrameNumber(value) + + #TODO! testing switches on automatically? + @property + def flowcontrol_10g(self): + return element_if_equal(self.getTenGigaFlowControl()) + + @flowcontrol_10g.setter + def flowcontrol_10g(self, enable): + self.setTenGigaFlowControl(enable) + + #TODO! add txdelay + + @property + def use_receiver(self): + return element_if_equal(self.getUseReceiverFlag()) + + @property + def rx_hostname(self): + return element_if_equal(self.getRxHostname()) + + @rx_hostname.setter + def rx_hostname(self, hostname): + self.setRxHostname(hostname) + + @property + def rx_tcpport(self): + return element_if_equal(self.getRxPort()) + + @rx_tcpport.setter + def rx_tcpport(self, port): + self.setRxPort(port) + + @property + def rx_fifodepth(self): + return element_if_equal(self.getRxFifoDepth()) + + @rx_fifodepth.setter + def rx_fifodepth(self, frames): + self.setRxFifoDepth(frames) + + @property + def rx_silent(self): + return element_if_equal(self.getRxSilentMode()) + + @rx_silent.setter + def rx_silent(self, value): + self.setRxSilentMode(value) + + @property + def rx_discardpolicy(self): + return element_if_equal(self.getRxFrameDiscardPolicy()) + + @rx_discardpolicy.setter + def rx_discardpolicy(self, policy): + self.setRxFrameDiscardPolicy() + + @property + def rx_padding(self): + return element_if_equal(self.getPartialFramesPadding()) + + @rx_padding.setter + def rx_padding(self, policy): + self.setPartialFramesPadding(policy) + + @property + def rx_lock(self): + """Lock the receiver to a specific IP""" + return element_if_equal(self.getRxLock()) + + @rx_lock.setter + def rx_lock(self, value): + self.setRxLock(value) + + @property + def rx_lastclient(self): + return element_if_equal(self.getRxLastClientIP()) + + + #FILE + + @property + def fformat(self): + return element_if_equal(self.getFileFormat()) + + @fformat.setter + def fformat(self, format): + self.setFileFormat(format) + + @property + def findex(self): + return element_if_equal(self.getAcquisitionIndex()) + + @findex.setter + def findex(self, index): + self.setAcquisitionIndex(index) - # File @property def fname(self): return element_if_equal(self.getFileNamePrefix()) @@ -262,15 +373,60 @@ class ExperimentalDetector(CppDetectorApi): def foverwrite(self, value): self.setFileOverWrite(value) - # Time - + @property + def fmaster(self): + return element_if_equal(self.getMasterFileWrite()) - + @fmaster.setter + def fmaster(self, enable): + self.setMasterFileWrite(enable) @property - def startingfnum(self): - return element_if_equal(self.getStartingFrameNumber()) + def rx_framesperfile(self): + return element_if_equal(self.getFramesPerFile()) - @startingfnum.setter - def startingfnum(self, value): - self.setStartingFrameNumber(value) \ No newline at end of file + @rx_framesperfile.setter + def rx_framesperfile(self, n_frames): + self.setFramesPerFile(n_frames) + + # ZMQ Streaming Parameters (Receiver<->Client) + + @property + def rx_zmqdatastream(self): + return element_if_equal(self.getRxZmqDataStream()) + + @rx_zmqdatastream.setter + def rx_zmqdatastream(self, enable): + self.setRxZmqDataStream(enable) + + @property + def rx_readfreq(self): + return element_if_equal(self.getRxZmqFrequency()) + + @rx_readfreq.setter + def rx_readfreq(self, nth_frame): + self.setRxZmqFrequency(nth_frame) + + @property + def rx_zmqport(self): + return element_if_equal(self.getRxZmqPort()) + + @rx_zmqport.setter + def rx_zmqport(self, port): + self.setRxZmqPort(port) + + @property + def zmqport(self): + return element_if_equal(self.getClientZmqPort()) + + @zmqport.setter + def zmqport(self, port): + self.setClientZmqPort(port) + + @property + def zmqip(self): + return element_if_equal(self.getClientZmqIp()) + + @zmqip.setter + def zmqip(self, ip): + self.setClientZmqIp(ip) \ No newline at end of file diff --git a/python/src/enums.cpp b/python/src/enums.cpp index 0f5c15704..a6a1c9e91 100644 --- a/python/src/enums.cpp +++ b/python/src/enums.cpp @@ -1,5 +1,4 @@ -/* WARINING This file is auto generated any edits might be overwritten without - * warning */ +/* WARINING This file is auto generated any edits might be overwritten without warning */ #include #include @@ -11,377 +10,308 @@ namespace py = pybind11; void init_enums(py::module &m) { py::class_ Defs(m, "slsDetectorDefs"); py::class_ xy(m, "xy"); + xy.def(py::init()); + xy.def(py::init()); xy.def_readwrite("x", &slsDetectorDefs::xy::x); xy.def_readwrite("y", &slsDetectorDefs::xy::y); - py::enum_(Defs, "detectorType") - .value("GET_DETECTOR_TYPE", - slsDetectorDefs::detectorType::GET_DETECTOR_TYPE) - .value("GENERIC", slsDetectorDefs::detectorType::GENERIC) - .value("EIGER", slsDetectorDefs::detectorType::EIGER) - .value("GOTTHARD", slsDetectorDefs::detectorType::GOTTHARD) - .value("JUNGFRAU", slsDetectorDefs::detectorType::JUNGFRAU) - .value("CHIPTESTBOARD", slsDetectorDefs::detectorType::CHIPTESTBOARD) - .value("MOENCH", slsDetectorDefs::detectorType::MOENCH) - .value("MYTHEN3", slsDetectorDefs::detectorType::MYTHEN3) - .value("GOTTHARD2", slsDetectorDefs::detectorType::GOTTHARD2) - .export_values(); +py::enum_(Defs, "detectorType") + .value("GET_DETECTOR_TYPE", slsDetectorDefs::detectorType::GET_DETECTOR_TYPE) + .value("GENERIC", slsDetectorDefs::detectorType::GENERIC) + .value("EIGER", slsDetectorDefs::detectorType::EIGER) + .value("GOTTHARD", slsDetectorDefs::detectorType::GOTTHARD) + .value("JUNGFRAU", slsDetectorDefs::detectorType::JUNGFRAU) + .value("CHIPTESTBOARD", slsDetectorDefs::detectorType::CHIPTESTBOARD) + .value("MOENCH", slsDetectorDefs::detectorType::MOENCH) + .value("MYTHEN3", slsDetectorDefs::detectorType::MYTHEN3) + .value("GOTTHARD2", slsDetectorDefs::detectorType::GOTTHARD2) +.export_values(); - py::enum_(Defs, "timerIndex") - .value("FRAME_NUMBER", slsDetectorDefs::timerIndex::FRAME_NUMBER) - .value("ACQUISITION_TIME", - slsDetectorDefs::timerIndex::ACQUISITION_TIME) - .value("FRAME_PERIOD", slsDetectorDefs::timerIndex::FRAME_PERIOD) - .value("DELAY_AFTER_TRIGGER", - slsDetectorDefs::timerIndex::DELAY_AFTER_TRIGGER) - .value("CYCLES_NUMBER", slsDetectorDefs::timerIndex::CYCLES_NUMBER) - .value("ACTUAL_TIME", slsDetectorDefs::timerIndex::ACTUAL_TIME) - .value("MEASUREMENT_TIME", - slsDetectorDefs::timerIndex::MEASUREMENT_TIME) - .value("PROGRESS", slsDetectorDefs::timerIndex::PROGRESS) - .value("FRAMES_FROM_START", - slsDetectorDefs::timerIndex::FRAMES_FROM_START) - .value("FRAMES_FROM_START_PG", - slsDetectorDefs::timerIndex::FRAMES_FROM_START_PG) - .value("ANALOG_SAMPLES", slsDetectorDefs::timerIndex::ANALOG_SAMPLES) - .value("DIGITAL_SAMPLES", slsDetectorDefs::timerIndex::DIGITAL_SAMPLES) - .value("SUBFRAME_ACQUISITION_TIME", - slsDetectorDefs::timerIndex::SUBFRAME_ACQUISITION_TIME) - .value("STORAGE_CELL_NUMBER", - slsDetectorDefs::timerIndex::STORAGE_CELL_NUMBER) - .value("SUBFRAME_DEADTIME", - slsDetectorDefs::timerIndex::SUBFRAME_DEADTIME) - .value("MEASURED_PERIOD", slsDetectorDefs::timerIndex::MEASURED_PERIOD) - .value("MEASURED_SUBPERIOD", - slsDetectorDefs::timerIndex::MEASURED_SUBPERIOD) - .value("STORAGE_CELL_DELAY", - slsDetectorDefs::timerIndex::STORAGE_CELL_DELAY) - .value("MAX_TIMERS", slsDetectorDefs::timerIndex::MAX_TIMERS) - .export_values(); +py::enum_(Defs, "timerIndex") + .value("FRAME_NUMBER", slsDetectorDefs::timerIndex::FRAME_NUMBER) + .value("ACQUISITION_TIME", slsDetectorDefs::timerIndex::ACQUISITION_TIME) + .value("FRAME_PERIOD", slsDetectorDefs::timerIndex::FRAME_PERIOD) + .value("DELAY_AFTER_TRIGGER", slsDetectorDefs::timerIndex::DELAY_AFTER_TRIGGER) + .value("CYCLES_NUMBER", slsDetectorDefs::timerIndex::CYCLES_NUMBER) + .value("ACTUAL_TIME", slsDetectorDefs::timerIndex::ACTUAL_TIME) + .value("MEASUREMENT_TIME", slsDetectorDefs::timerIndex::MEASUREMENT_TIME) + .value("PROGRESS", slsDetectorDefs::timerIndex::PROGRESS) + .value("FRAMES_FROM_START", slsDetectorDefs::timerIndex::FRAMES_FROM_START) + .value("FRAMES_FROM_START_PG", slsDetectorDefs::timerIndex::FRAMES_FROM_START_PG) + .value("ANALOG_SAMPLES", slsDetectorDefs::timerIndex::ANALOG_SAMPLES) + .value("DIGITAL_SAMPLES", slsDetectorDefs::timerIndex::DIGITAL_SAMPLES) + .value("SUBFRAME_ACQUISITION_TIME", slsDetectorDefs::timerIndex::SUBFRAME_ACQUISITION_TIME) + .value("STORAGE_CELL_NUMBER", slsDetectorDefs::timerIndex::STORAGE_CELL_NUMBER) + .value("SUBFRAME_DEADTIME", slsDetectorDefs::timerIndex::SUBFRAME_DEADTIME) + .value("MEASURED_PERIOD", slsDetectorDefs::timerIndex::MEASURED_PERIOD) + .value("MEASURED_SUBPERIOD", slsDetectorDefs::timerIndex::MEASURED_SUBPERIOD) + .value("STORAGE_CELL_DELAY", slsDetectorDefs::timerIndex::STORAGE_CELL_DELAY) + .value("MAX_TIMERS", slsDetectorDefs::timerIndex::MAX_TIMERS) +.export_values(); - py::enum_(Defs, "runStatus") - .value("IDLE", slsDetectorDefs::runStatus::IDLE) - .value("ERROR", slsDetectorDefs::runStatus::ERROR) - .value("WAITING", slsDetectorDefs::runStatus::WAITING) - .value("RUN_FINISHED", slsDetectorDefs::runStatus::RUN_FINISHED) - .value("TRANSMITTING", slsDetectorDefs::runStatus::TRANSMITTING) - .value("RUNNING", slsDetectorDefs::runStatus::RUNNING) - .value("STOPPED", slsDetectorDefs::runStatus::STOPPED) - .export_values(); +py::enum_(Defs, "runStatus") + .value("IDLE", slsDetectorDefs::runStatus::IDLE) + .value("ERROR", slsDetectorDefs::runStatus::ERROR) + .value("WAITING", slsDetectorDefs::runStatus::WAITING) + .value("RUN_FINISHED", slsDetectorDefs::runStatus::RUN_FINISHED) + .value("TRANSMITTING", slsDetectorDefs::runStatus::TRANSMITTING) + .value("RUNNING", slsDetectorDefs::runStatus::RUNNING) + .value("STOPPED", slsDetectorDefs::runStatus::STOPPED) +.export_values(); - py::enum_(Defs, "frameDiscardPolicy") - .value("GET_FRAME_DISCARD_POLICY", - slsDetectorDefs::frameDiscardPolicy::GET_FRAME_DISCARD_POLICY) - .value("NO_DISCARD", slsDetectorDefs::frameDiscardPolicy::NO_DISCARD) - .value("DISCARD_EMPTY_FRAMES", - slsDetectorDefs::frameDiscardPolicy::DISCARD_EMPTY_FRAMES) - .value("DISCARD_PARTIAL_FRAMES", - slsDetectorDefs::frameDiscardPolicy::DISCARD_PARTIAL_FRAMES) - .value("NUM_DISCARD_POLICIES", - slsDetectorDefs::frameDiscardPolicy::NUM_DISCARD_POLICIES) - .export_values(); +py::enum_(Defs, "frameDiscardPolicy") + .value("GET_FRAME_DISCARD_POLICY", slsDetectorDefs::frameDiscardPolicy::GET_FRAME_DISCARD_POLICY) + .value("NO_DISCARD", slsDetectorDefs::frameDiscardPolicy::NO_DISCARD) + .value("DISCARD_EMPTY_FRAMES", slsDetectorDefs::frameDiscardPolicy::DISCARD_EMPTY_FRAMES) + .value("DISCARD_PARTIAL_FRAMES", slsDetectorDefs::frameDiscardPolicy::DISCARD_PARTIAL_FRAMES) + .value("NUM_DISCARD_POLICIES", slsDetectorDefs::frameDiscardPolicy::NUM_DISCARD_POLICIES) +.export_values(); - py::enum_(Defs, "fileFormat") - .value("GET_FILE_FORMAT", slsDetectorDefs::fileFormat::GET_FILE_FORMAT) - .value("BINARY", slsDetectorDefs::fileFormat::BINARY) - .value("HDF5", slsDetectorDefs::fileFormat::HDF5) - .value("NUM_FILE_FORMATS", - slsDetectorDefs::fileFormat::NUM_FILE_FORMATS) - .export_values(); +py::enum_(Defs, "fileFormat") + .value("GET_FILE_FORMAT", slsDetectorDefs::fileFormat::GET_FILE_FORMAT) + .value("BINARY", slsDetectorDefs::fileFormat::BINARY) + .value("HDF5", slsDetectorDefs::fileFormat::HDF5) + .value("NUM_FILE_FORMATS", slsDetectorDefs::fileFormat::NUM_FILE_FORMATS) +.export_values(); - py::enum_(Defs, "networkParameter") - .value("DETECTOR_MAC", slsDetectorDefs::networkParameter::DETECTOR_MAC) - .value("DETECTOR_IP", slsDetectorDefs::networkParameter::DETECTOR_IP) - .value("RECEIVER_HOSTNAME", - slsDetectorDefs::networkParameter::RECEIVER_HOSTNAME) - .value("RECEIVER_UDP_IP", - slsDetectorDefs::networkParameter::RECEIVER_UDP_IP) - .value("RECEIVER_UDP_PORT", - slsDetectorDefs::networkParameter::RECEIVER_UDP_PORT) - .value("RECEIVER_UDP_MAC", - slsDetectorDefs::networkParameter::RECEIVER_UDP_MAC) - .value("RECEIVER_UDP_PORT2", - slsDetectorDefs::networkParameter::RECEIVER_UDP_PORT2) - .value("DETECTOR_TXN_DELAY_LEFT", - slsDetectorDefs::networkParameter::DETECTOR_TXN_DELAY_LEFT) - .value("DETECTOR_TXN_DELAY_RIGHT", - slsDetectorDefs::networkParameter::DETECTOR_TXN_DELAY_RIGHT) - .value("DETECTOR_TXN_DELAY_FRAME", - slsDetectorDefs::networkParameter::DETECTOR_TXN_DELAY_FRAME) - .value("FLOW_CONTROL_10G", - slsDetectorDefs::networkParameter::FLOW_CONTROL_10G) - .value("FLOW_CONTROL_WR_PTR", - slsDetectorDefs::networkParameter::FLOW_CONTROL_WR_PTR) - .value("FLOW_CONTROL_RD_PTR", - slsDetectorDefs::networkParameter::FLOW_CONTROL_RD_PTR) - .value("RECEIVER_STREAMING_PORT", - slsDetectorDefs::networkParameter::RECEIVER_STREAMING_PORT) - .value("CLIENT_STREAMING_PORT", - slsDetectorDefs::networkParameter::CLIENT_STREAMING_PORT) - .value("RECEIVER_STREAMING_SRC_IP", - slsDetectorDefs::networkParameter::RECEIVER_STREAMING_SRC_IP) - .value("CLIENT_STREAMING_SRC_IP", - slsDetectorDefs::networkParameter::CLIENT_STREAMING_SRC_IP) - .value("ADDITIONAL_JSON_HEADER", - slsDetectorDefs::networkParameter::ADDITIONAL_JSON_HEADER) - .value("RECEIVER_UDP_SCKT_BUF_SIZE", - slsDetectorDefs::networkParameter::RECEIVER_UDP_SCKT_BUF_SIZE) - .value( - "RECEIVER_REAL_UDP_SCKT_BUF_SIZE", - slsDetectorDefs::networkParameter::RECEIVER_REAL_UDP_SCKT_BUF_SIZE) - .export_values(); +py::enum_(Defs, "networkParameter") + .value("DETECTOR_MAC", slsDetectorDefs::networkParameter::DETECTOR_MAC) + .value("DETECTOR_IP", slsDetectorDefs::networkParameter::DETECTOR_IP) + .value("RECEIVER_HOSTNAME", slsDetectorDefs::networkParameter::RECEIVER_HOSTNAME) + .value("RECEIVER_UDP_IP", slsDetectorDefs::networkParameter::RECEIVER_UDP_IP) + .value("RECEIVER_UDP_PORT", slsDetectorDefs::networkParameter::RECEIVER_UDP_PORT) + .value("RECEIVER_UDP_MAC", slsDetectorDefs::networkParameter::RECEIVER_UDP_MAC) + .value("RECEIVER_UDP_PORT2", slsDetectorDefs::networkParameter::RECEIVER_UDP_PORT2) + .value("DETECTOR_TXN_DELAY_LEFT", slsDetectorDefs::networkParameter::DETECTOR_TXN_DELAY_LEFT) + .value("DETECTOR_TXN_DELAY_RIGHT", slsDetectorDefs::networkParameter::DETECTOR_TXN_DELAY_RIGHT) + .value("DETECTOR_TXN_DELAY_FRAME", slsDetectorDefs::networkParameter::DETECTOR_TXN_DELAY_FRAME) + .value("FLOW_CONTROL_10G", slsDetectorDefs::networkParameter::FLOW_CONTROL_10G) + .value("FLOW_CONTROL_WR_PTR", slsDetectorDefs::networkParameter::FLOW_CONTROL_WR_PTR) + .value("FLOW_CONTROL_RD_PTR", slsDetectorDefs::networkParameter::FLOW_CONTROL_RD_PTR) + .value("RECEIVER_STREAMING_PORT", slsDetectorDefs::networkParameter::RECEIVER_STREAMING_PORT) + .value("CLIENT_STREAMING_PORT", slsDetectorDefs::networkParameter::CLIENT_STREAMING_PORT) + .value("RECEIVER_STREAMING_SRC_IP", slsDetectorDefs::networkParameter::RECEIVER_STREAMING_SRC_IP) + .value("CLIENT_STREAMING_SRC_IP", slsDetectorDefs::networkParameter::CLIENT_STREAMING_SRC_IP) + .value("ADDITIONAL_JSON_HEADER", slsDetectorDefs::networkParameter::ADDITIONAL_JSON_HEADER) + .value("RECEIVER_UDP_SCKT_BUF_SIZE", slsDetectorDefs::networkParameter::RECEIVER_UDP_SCKT_BUF_SIZE) + .value("RECEIVER_REAL_UDP_SCKT_BUF_SIZE", slsDetectorDefs::networkParameter::RECEIVER_REAL_UDP_SCKT_BUF_SIZE) +.export_values(); - py::enum_(Defs, "numberOf") - .value("MAXMODX", slsDetectorDefs::numberOf::MAXMODX) - .value("MAXMODY", slsDetectorDefs::numberOf::MAXMODY) - .value("NMODX", slsDetectorDefs::numberOf::NMODX) - .value("NMODY", slsDetectorDefs::numberOf::NMODY) - .value("NCHANSX", slsDetectorDefs::numberOf::NCHANSX) - .value("NCHANSY", slsDetectorDefs::numberOf::NCHANSY) - .value("NCHIPSX", slsDetectorDefs::numberOf::NCHIPSX) - .value("NCHIPSY", slsDetectorDefs::numberOf::NCHIPSY) - .export_values(); +py::enum_(Defs, "numberOf") + .value("MAXMODX", slsDetectorDefs::numberOf::MAXMODX) + .value("MAXMODY", slsDetectorDefs::numberOf::MAXMODY) + .value("NMODX", slsDetectorDefs::numberOf::NMODX) + .value("NMODY", slsDetectorDefs::numberOf::NMODY) + .value("NCHANSX", slsDetectorDefs::numberOf::NCHANSX) + .value("NCHANSY", slsDetectorDefs::numberOf::NCHANSY) + .value("NCHIPSX", slsDetectorDefs::numberOf::NCHIPSX) + .value("NCHIPSY", slsDetectorDefs::numberOf::NCHIPSY) +.export_values(); - py::enum_(Defs, "dimension") - .value("X", slsDetectorDefs::dimension::X) - .value("Y", slsDetectorDefs::dimension::Y) - .export_values(); +py::enum_(Defs, "dimension") + .value("X", slsDetectorDefs::dimension::X) + .value("Y", slsDetectorDefs::dimension::Y) +.export_values(); - py::enum_(Defs, "externalSignalFlag") - .value("GET_EXTERNAL_SIGNAL_FLAG", - slsDetectorDefs::externalSignalFlag::GET_EXTERNAL_SIGNAL_FLAG) - .value("SIGNAL_OFF", slsDetectorDefs::externalSignalFlag::SIGNAL_OFF) - .value("GATE_IN_ACTIVE_HIGH", - slsDetectorDefs::externalSignalFlag::GATE_IN_ACTIVE_HIGH) - .value("GATE_IN_ACTIVE_LOW", - slsDetectorDefs::externalSignalFlag::GATE_IN_ACTIVE_LOW) - .value("TRIGGER_IN_RISING_EDGE", - slsDetectorDefs::externalSignalFlag::TRIGGER_IN_RISING_EDGE) - .value("TRIGGER_IN_FALLING_EDGE", - slsDetectorDefs::externalSignalFlag::TRIGGER_IN_FALLING_EDGE) - .value("RO_TRIGGER_IN_RISING_EDGE", - slsDetectorDefs::externalSignalFlag::RO_TRIGGER_IN_RISING_EDGE) - .value("RO_TRIGGER_IN_FALLING_EDGE", - slsDetectorDefs::externalSignalFlag::RO_TRIGGER_IN_FALLING_EDGE) - .value("GATE_OUT_ACTIVE_HIGH", - slsDetectorDefs::externalSignalFlag::GATE_OUT_ACTIVE_HIGH) - .value("GATE_OUT_ACTIVE_LOW", - slsDetectorDefs::externalSignalFlag::GATE_OUT_ACTIVE_LOW) - .value("TRIGGER_OUT_RISING_EDGE", - slsDetectorDefs::externalSignalFlag::TRIGGER_OUT_RISING_EDGE) - .value("TRIGGER_OUT_FALLING_EDGE", - slsDetectorDefs::externalSignalFlag::TRIGGER_OUT_FALLING_EDGE) - .value("RO_TRIGGER_OUT_RISING_EDGE", - slsDetectorDefs::externalSignalFlag::RO_TRIGGER_OUT_RISING_EDGE) - .value("RO_TRIGGER_OUT_FALLING_EDGE", - slsDetectorDefs::externalSignalFlag::RO_TRIGGER_OUT_FALLING_EDGE) - .value("OUTPUT_LOW", slsDetectorDefs::externalSignalFlag::OUTPUT_LOW) - .value("OUTPUT_HIGH", slsDetectorDefs::externalSignalFlag::OUTPUT_HIGH) - .value( - "MASTER_SLAVE_SYNCHRONIZATION", - slsDetectorDefs::externalSignalFlag::MASTER_SLAVE_SYNCHRONIZATION) - .export_values(); +py::enum_(Defs, "externalSignalFlag") + .value("GET_EXTERNAL_SIGNAL_FLAG", slsDetectorDefs::externalSignalFlag::GET_EXTERNAL_SIGNAL_FLAG) + .value("SIGNAL_OFF", slsDetectorDefs::externalSignalFlag::SIGNAL_OFF) + .value("GATE_IN_ACTIVE_HIGH", slsDetectorDefs::externalSignalFlag::GATE_IN_ACTIVE_HIGH) + .value("GATE_IN_ACTIVE_LOW", slsDetectorDefs::externalSignalFlag::GATE_IN_ACTIVE_LOW) + .value("TRIGGER_IN_RISING_EDGE", slsDetectorDefs::externalSignalFlag::TRIGGER_IN_RISING_EDGE) + .value("TRIGGER_IN_FALLING_EDGE", slsDetectorDefs::externalSignalFlag::TRIGGER_IN_FALLING_EDGE) + .value("RO_TRIGGER_IN_RISING_EDGE", slsDetectorDefs::externalSignalFlag::RO_TRIGGER_IN_RISING_EDGE) + .value("RO_TRIGGER_IN_FALLING_EDGE", slsDetectorDefs::externalSignalFlag::RO_TRIGGER_IN_FALLING_EDGE) + .value("GATE_OUT_ACTIVE_HIGH", slsDetectorDefs::externalSignalFlag::GATE_OUT_ACTIVE_HIGH) + .value("GATE_OUT_ACTIVE_LOW", slsDetectorDefs::externalSignalFlag::GATE_OUT_ACTIVE_LOW) + .value("TRIGGER_OUT_RISING_EDGE", slsDetectorDefs::externalSignalFlag::TRIGGER_OUT_RISING_EDGE) + .value("TRIGGER_OUT_FALLING_EDGE", slsDetectorDefs::externalSignalFlag::TRIGGER_OUT_FALLING_EDGE) + .value("RO_TRIGGER_OUT_RISING_EDGE", slsDetectorDefs::externalSignalFlag::RO_TRIGGER_OUT_RISING_EDGE) + .value("RO_TRIGGER_OUT_FALLING_EDGE", slsDetectorDefs::externalSignalFlag::RO_TRIGGER_OUT_FALLING_EDGE) + .value("OUTPUT_LOW", slsDetectorDefs::externalSignalFlag::OUTPUT_LOW) + .value("OUTPUT_HIGH", slsDetectorDefs::externalSignalFlag::OUTPUT_HIGH) + .value("MASTER_SLAVE_SYNCHRONIZATION", slsDetectorDefs::externalSignalFlag::MASTER_SLAVE_SYNCHRONIZATION) +.export_values(); - py::enum_(Defs, "timingMode") - .value("GET_TIMING_MODE", slsDetectorDefs::timingMode::GET_TIMING_MODE) - .value("AUTO_TIMING", slsDetectorDefs::timingMode::AUTO_TIMING) - .value("TRIGGER_EXPOSURE", - slsDetectorDefs::timingMode::TRIGGER_EXPOSURE) - .value("GATED", slsDetectorDefs::timingMode::GATED) - .value("BURST_TRIGGER", slsDetectorDefs::timingMode::BURST_TRIGGER) - .export_values(); +py::enum_(Defs, "timingMode") + .value("GET_TIMING_MODE", slsDetectorDefs::timingMode::GET_TIMING_MODE) + .value("AUTO_TIMING", slsDetectorDefs::timingMode::AUTO_TIMING) + .value("TRIGGER_EXPOSURE", slsDetectorDefs::timingMode::TRIGGER_EXPOSURE) + .value("GATED", slsDetectorDefs::timingMode::GATED) + .value("BURST_TRIGGER", slsDetectorDefs::timingMode::BURST_TRIGGER) +.export_values(); - py::enum_(Defs, "idMode") - .value("DETECTOR_SERIAL_NUMBER", - slsDetectorDefs::idMode::DETECTOR_SERIAL_NUMBER) - .value("DETECTOR_FIRMWARE_VERSION", - slsDetectorDefs::idMode::DETECTOR_FIRMWARE_VERSION) - .value("DETECTOR_SOFTWARE_VERSION", - slsDetectorDefs::idMode::DETECTOR_SOFTWARE_VERSION) - .value("THIS_SOFTWARE_VERSION", - slsDetectorDefs::idMode::THIS_SOFTWARE_VERSION) - .value("RECEIVER_VERSION", slsDetectorDefs::idMode::RECEIVER_VERSION) - .value("SOFTWARE_FIRMWARE_API_VERSION", - slsDetectorDefs::idMode::SOFTWARE_FIRMWARE_API_VERSION) - .value("CLIENT_SOFTWARE_API_VERSION", - slsDetectorDefs::idMode::CLIENT_SOFTWARE_API_VERSION) - .value("CLIENT_RECEIVER_API_VERSION", - slsDetectorDefs::idMode::CLIENT_RECEIVER_API_VERSION) - .export_values(); +py::enum_(Defs, "idMode") + .value("DETECTOR_SERIAL_NUMBER", slsDetectorDefs::idMode::DETECTOR_SERIAL_NUMBER) + .value("DETECTOR_FIRMWARE_VERSION", slsDetectorDefs::idMode::DETECTOR_FIRMWARE_VERSION) + .value("DETECTOR_SOFTWARE_VERSION", slsDetectorDefs::idMode::DETECTOR_SOFTWARE_VERSION) + .value("THIS_SOFTWARE_VERSION", slsDetectorDefs::idMode::THIS_SOFTWARE_VERSION) + .value("RECEIVER_VERSION", slsDetectorDefs::idMode::RECEIVER_VERSION) + .value("SOFTWARE_FIRMWARE_API_VERSION", slsDetectorDefs::idMode::SOFTWARE_FIRMWARE_API_VERSION) + .value("CLIENT_SOFTWARE_API_VERSION", slsDetectorDefs::idMode::CLIENT_SOFTWARE_API_VERSION) + .value("CLIENT_RECEIVER_API_VERSION", slsDetectorDefs::idMode::CLIENT_RECEIVER_API_VERSION) +.export_values(); - py::enum_(Defs, "digitalTestMode") - .value("DETECTOR_FIRMWARE_TEST", - slsDetectorDefs::digitalTestMode::DETECTOR_FIRMWARE_TEST) - .value("DETECTOR_BUS_TEST", - slsDetectorDefs::digitalTestMode::DETECTOR_BUS_TEST) - .value("IMAGE_TEST", slsDetectorDefs::digitalTestMode::IMAGE_TEST) - .export_values(); +py::enum_(Defs, "digitalTestMode") + .value("DETECTOR_FIRMWARE_TEST", slsDetectorDefs::digitalTestMode::DETECTOR_FIRMWARE_TEST) + .value("DETECTOR_BUS_TEST", slsDetectorDefs::digitalTestMode::DETECTOR_BUS_TEST) + .value("IMAGE_TEST", slsDetectorDefs::digitalTestMode::IMAGE_TEST) +.export_values(); - py::enum_(Defs, "dacIndex") - .value("THRESHOLD", slsDetectorDefs::dacIndex::THRESHOLD) - .value("CALIBRATION_PULSE", - slsDetectorDefs::dacIndex::CALIBRATION_PULSE) - .value("TRIMBIT_SIZE", slsDetectorDefs::dacIndex::TRIMBIT_SIZE) - .value("PREAMP", slsDetectorDefs::dacIndex::PREAMP) - .value("SHAPER1", slsDetectorDefs::dacIndex::SHAPER1) - .value("SHAPER2", slsDetectorDefs::dacIndex::SHAPER2) - .value("TEMPERATURE_ADC", slsDetectorDefs::dacIndex::TEMPERATURE_ADC) - .value("TEMPERATURE_FPGA", slsDetectorDefs::dacIndex::TEMPERATURE_FPGA) - .value("HUMIDITY", slsDetectorDefs::dacIndex::HUMIDITY) - .value("DETECTOR_BIAS", slsDetectorDefs::dacIndex::DETECTOR_BIAS) - .value("VA_POT", slsDetectorDefs::dacIndex::VA_POT) - .value("VDD_POT", slsDetectorDefs::dacIndex::VDD_POT) - .value("VSH_POT", slsDetectorDefs::dacIndex::VSH_POT) - .value("VIO_POT", slsDetectorDefs::dacIndex::VIO_POT) - .value("G_VREF_DS", slsDetectorDefs::dacIndex::G_VREF_DS) - .value("G_VCASCN_PB", slsDetectorDefs::dacIndex::G_VCASCN_PB) - .value("G_VCASCP_PB", slsDetectorDefs::dacIndex::G_VCASCP_PB) - .value("G_VOUT_CM", slsDetectorDefs::dacIndex::G_VOUT_CM) - .value("G_VCASC_OUT", slsDetectorDefs::dacIndex::G_VCASC_OUT) - .value("G_VIN_CM", slsDetectorDefs::dacIndex::G_VIN_CM) - .value("G_VREF_COMP", slsDetectorDefs::dacIndex::G_VREF_COMP) - .value("G_IB_TESTC", slsDetectorDefs::dacIndex::G_IB_TESTC) - .value("E_SvP", slsDetectorDefs::dacIndex::E_SvP) - .value("E_SvN", slsDetectorDefs::dacIndex::E_SvN) - .value("E_Vtr", slsDetectorDefs::dacIndex::E_Vtr) - .value("E_Vrf", slsDetectorDefs::dacIndex::E_Vrf) - .value("E_Vrs", slsDetectorDefs::dacIndex::E_Vrs) - .value("E_Vtgstv", slsDetectorDefs::dacIndex::E_Vtgstv) - .value("E_Vcmp_ll", slsDetectorDefs::dacIndex::E_Vcmp_ll) - .value("E_Vcmp_lr", slsDetectorDefs::dacIndex::E_Vcmp_lr) - .value("E_cal", slsDetectorDefs::dacIndex::E_cal) - .value("E_Vcmp_rl", slsDetectorDefs::dacIndex::E_Vcmp_rl) - .value("E_Vcmp_rr", slsDetectorDefs::dacIndex::E_Vcmp_rr) - .value("E_rxb_rb", slsDetectorDefs::dacIndex::E_rxb_rb) - .value("E_rxb_lb", slsDetectorDefs::dacIndex::E_rxb_lb) - .value("E_Vcp", slsDetectorDefs::dacIndex::E_Vcp) - .value("E_Vcn", slsDetectorDefs::dacIndex::E_Vcn) - .value("E_Vis", slsDetectorDefs::dacIndex::E_Vis) - .value("IO_DELAY", slsDetectorDefs::dacIndex::IO_DELAY) - .value("ADC_VPP", slsDetectorDefs::dacIndex::ADC_VPP) - .value("HIGH_VOLTAGE", slsDetectorDefs::dacIndex::HIGH_VOLTAGE) - .value("TEMPERATURE_FPGAEXT", - slsDetectorDefs::dacIndex::TEMPERATURE_FPGAEXT) - .value("TEMPERATURE_10GE", slsDetectorDefs::dacIndex::TEMPERATURE_10GE) - .value("TEMPERATURE_DCDC", slsDetectorDefs::dacIndex::TEMPERATURE_DCDC) - .value("TEMPERATURE_SODL", slsDetectorDefs::dacIndex::TEMPERATURE_SODL) - .value("TEMPERATURE_SODR", slsDetectorDefs::dacIndex::TEMPERATURE_SODR) - .value("TEMPERATURE_FPGA2", - slsDetectorDefs::dacIndex::TEMPERATURE_FPGA2) - .value("TEMPERATURE_FPGA3", - slsDetectorDefs::dacIndex::TEMPERATURE_FPGA3) - .value("M_vIpre", slsDetectorDefs::dacIndex::M_vIpre) - .value("M_vIbias", slsDetectorDefs::dacIndex::M_vIbias) - .value("M_vIinSh", slsDetectorDefs::dacIndex::M_vIinSh) - .value("M_VdcSh", slsDetectorDefs::dacIndex::M_VdcSh) - .value("M_Vth2", slsDetectorDefs::dacIndex::M_Vth2) - .value("M_VPL", slsDetectorDefs::dacIndex::M_VPL) - .value("M_Vth3", slsDetectorDefs::dacIndex::M_Vth3) - .value("M_casSh", slsDetectorDefs::dacIndex::M_casSh) - .value("M_cas", slsDetectorDefs::dacIndex::M_cas) - .value("M_vIbiasSh", slsDetectorDefs::dacIndex::M_vIbiasSh) - .value("M_vIcin", slsDetectorDefs::dacIndex::M_vIcin) - .value("M_vIpreOut", slsDetectorDefs::dacIndex::M_vIpreOut) - .value("V_POWER_A", slsDetectorDefs::dacIndex::V_POWER_A) - .value("V_POWER_B", slsDetectorDefs::dacIndex::V_POWER_B) - .value("V_POWER_C", slsDetectorDefs::dacIndex::V_POWER_C) - .value("V_POWER_D", slsDetectorDefs::dacIndex::V_POWER_D) - .value("V_POWER_IO", slsDetectorDefs::dacIndex::V_POWER_IO) - .value("V_POWER_CHIP", slsDetectorDefs::dacIndex::V_POWER_CHIP) - .value("I_POWER_A", slsDetectorDefs::dacIndex::I_POWER_A) - .value("I_POWER_B", slsDetectorDefs::dacIndex::I_POWER_B) - .value("I_POWER_C", slsDetectorDefs::dacIndex::I_POWER_C) - .value("I_POWER_D", slsDetectorDefs::dacIndex::I_POWER_D) - .value("I_POWER_IO", slsDetectorDefs::dacIndex::I_POWER_IO) - .value("V_LIMIT", slsDetectorDefs::dacIndex::V_LIMIT) - .value("SLOW_ADC0", slsDetectorDefs::dacIndex::SLOW_ADC0) - .value("SLOW_ADC1", slsDetectorDefs::dacIndex::SLOW_ADC1) - .value("SLOW_ADC2", slsDetectorDefs::dacIndex::SLOW_ADC2) - .value("SLOW_ADC3", slsDetectorDefs::dacIndex::SLOW_ADC3) - .value("SLOW_ADC4", slsDetectorDefs::dacIndex::SLOW_ADC4) - .value("SLOW_ADC5", slsDetectorDefs::dacIndex::SLOW_ADC5) - .value("SLOW_ADC6", slsDetectorDefs::dacIndex::SLOW_ADC6) - .value("SLOW_ADC7", slsDetectorDefs::dacIndex::SLOW_ADC7) - .value("SLOW_ADC_TEMP", slsDetectorDefs::dacIndex::SLOW_ADC_TEMP) - .export_values(); +py::enum_(Defs, "dacIndex") + .value("THRESHOLD", slsDetectorDefs::dacIndex::THRESHOLD) + .value("CALIBRATION_PULSE", slsDetectorDefs::dacIndex::CALIBRATION_PULSE) + .value("TRIMBIT_SIZE", slsDetectorDefs::dacIndex::TRIMBIT_SIZE) + .value("PREAMP", slsDetectorDefs::dacIndex::PREAMP) + .value("SHAPER1", slsDetectorDefs::dacIndex::SHAPER1) + .value("SHAPER2", slsDetectorDefs::dacIndex::SHAPER2) + .value("TEMPERATURE_ADC", slsDetectorDefs::dacIndex::TEMPERATURE_ADC) + .value("TEMPERATURE_FPGA", slsDetectorDefs::dacIndex::TEMPERATURE_FPGA) + .value("HUMIDITY", slsDetectorDefs::dacIndex::HUMIDITY) + .value("DETECTOR_BIAS", slsDetectorDefs::dacIndex::DETECTOR_BIAS) + .value("VA_POT", slsDetectorDefs::dacIndex::VA_POT) + .value("VDD_POT", slsDetectorDefs::dacIndex::VDD_POT) + .value("VSH_POT", slsDetectorDefs::dacIndex::VSH_POT) + .value("VIO_POT", slsDetectorDefs::dacIndex::VIO_POT) + .value("G_VREF_DS", slsDetectorDefs::dacIndex::G_VREF_DS) + .value("G_VCASCN_PB", slsDetectorDefs::dacIndex::G_VCASCN_PB) + .value("G_VCASCP_PB", slsDetectorDefs::dacIndex::G_VCASCP_PB) + .value("G_VOUT_CM", slsDetectorDefs::dacIndex::G_VOUT_CM) + .value("G_VCASC_OUT", slsDetectorDefs::dacIndex::G_VCASC_OUT) + .value("G_VIN_CM", slsDetectorDefs::dacIndex::G_VIN_CM) + .value("G_VREF_COMP", slsDetectorDefs::dacIndex::G_VREF_COMP) + .value("G_IB_TESTC", slsDetectorDefs::dacIndex::G_IB_TESTC) + .value("E_SvP", slsDetectorDefs::dacIndex::E_SvP) + .value("E_SvN", slsDetectorDefs::dacIndex::E_SvN) + .value("E_Vtr", slsDetectorDefs::dacIndex::E_Vtr) + .value("E_Vrf", slsDetectorDefs::dacIndex::E_Vrf) + .value("E_Vrs", slsDetectorDefs::dacIndex::E_Vrs) + .value("E_Vtgstv", slsDetectorDefs::dacIndex::E_Vtgstv) + .value("E_Vcmp_ll", slsDetectorDefs::dacIndex::E_Vcmp_ll) + .value("E_Vcmp_lr", slsDetectorDefs::dacIndex::E_Vcmp_lr) + .value("E_cal", slsDetectorDefs::dacIndex::E_cal) + .value("E_Vcmp_rl", slsDetectorDefs::dacIndex::E_Vcmp_rl) + .value("E_Vcmp_rr", slsDetectorDefs::dacIndex::E_Vcmp_rr) + .value("E_rxb_rb", slsDetectorDefs::dacIndex::E_rxb_rb) + .value("E_rxb_lb", slsDetectorDefs::dacIndex::E_rxb_lb) + .value("E_Vcp", slsDetectorDefs::dacIndex::E_Vcp) + .value("E_Vcn", slsDetectorDefs::dacIndex::E_Vcn) + .value("E_Vis", slsDetectorDefs::dacIndex::E_Vis) + .value("IO_DELAY", slsDetectorDefs::dacIndex::IO_DELAY) + .value("ADC_VPP", slsDetectorDefs::dacIndex::ADC_VPP) + .value("HIGH_VOLTAGE", slsDetectorDefs::dacIndex::HIGH_VOLTAGE) + .value("TEMPERATURE_FPGAEXT", slsDetectorDefs::dacIndex::TEMPERATURE_FPGAEXT) + .value("TEMPERATURE_10GE", slsDetectorDefs::dacIndex::TEMPERATURE_10GE) + .value("TEMPERATURE_DCDC", slsDetectorDefs::dacIndex::TEMPERATURE_DCDC) + .value("TEMPERATURE_SODL", slsDetectorDefs::dacIndex::TEMPERATURE_SODL) + .value("TEMPERATURE_SODR", slsDetectorDefs::dacIndex::TEMPERATURE_SODR) + .value("TEMPERATURE_FPGA2", slsDetectorDefs::dacIndex::TEMPERATURE_FPGA2) + .value("TEMPERATURE_FPGA3", slsDetectorDefs::dacIndex::TEMPERATURE_FPGA3) + .value("M_vIpre", slsDetectorDefs::dacIndex::M_vIpre) + .value("M_vIinSh", slsDetectorDefs::dacIndex::M_vIinSh) + .value("M_VdcSh", slsDetectorDefs::dacIndex::M_VdcSh) + .value("M_Vth2", slsDetectorDefs::dacIndex::M_Vth2) + .value("M_VPL", slsDetectorDefs::dacIndex::M_VPL) + .value("M_Vth3", slsDetectorDefs::dacIndex::M_Vth3) + .value("M_casSh", slsDetectorDefs::dacIndex::M_casSh) + .value("M_cas", slsDetectorDefs::dacIndex::M_cas) + .value("M_vIcin", slsDetectorDefs::dacIndex::M_vIcin) + .value("M_vIpreOut", slsDetectorDefs::dacIndex::M_vIpreOut) + .value("V_POWER_A", slsDetectorDefs::dacIndex::V_POWER_A) + .value("V_POWER_B", slsDetectorDefs::dacIndex::V_POWER_B) + .value("V_POWER_C", slsDetectorDefs::dacIndex::V_POWER_C) + .value("V_POWER_D", slsDetectorDefs::dacIndex::V_POWER_D) + .value("V_POWER_IO", slsDetectorDefs::dacIndex::V_POWER_IO) + .value("V_POWER_CHIP", slsDetectorDefs::dacIndex::V_POWER_CHIP) + .value("I_POWER_A", slsDetectorDefs::dacIndex::I_POWER_A) + .value("I_POWER_B", slsDetectorDefs::dacIndex::I_POWER_B) + .value("I_POWER_C", slsDetectorDefs::dacIndex::I_POWER_C) + .value("I_POWER_D", slsDetectorDefs::dacIndex::I_POWER_D) + .value("I_POWER_IO", slsDetectorDefs::dacIndex::I_POWER_IO) + .value("V_LIMIT", slsDetectorDefs::dacIndex::V_LIMIT) + .value("SLOW_ADC0", slsDetectorDefs::dacIndex::SLOW_ADC0) + .value("SLOW_ADC1", slsDetectorDefs::dacIndex::SLOW_ADC1) + .value("SLOW_ADC2", slsDetectorDefs::dacIndex::SLOW_ADC2) + .value("SLOW_ADC3", slsDetectorDefs::dacIndex::SLOW_ADC3) + .value("SLOW_ADC4", slsDetectorDefs::dacIndex::SLOW_ADC4) + .value("SLOW_ADC5", slsDetectorDefs::dacIndex::SLOW_ADC5) + .value("SLOW_ADC6", slsDetectorDefs::dacIndex::SLOW_ADC6) + .value("SLOW_ADC7", slsDetectorDefs::dacIndex::SLOW_ADC7) + .value("SLOW_ADC_TEMP", slsDetectorDefs::dacIndex::SLOW_ADC_TEMP) +.export_values(); - py::enum_(Defs, "detectorSettings") - .value("GET_SETTINGS", slsDetectorDefs::detectorSettings::GET_SETTINGS) - .value("STANDARD", slsDetectorDefs::detectorSettings::STANDARD) - .value("FAST", slsDetectorDefs::detectorSettings::FAST) - .value("HIGHGAIN", slsDetectorDefs::detectorSettings::HIGHGAIN) - .value("DYNAMICGAIN", slsDetectorDefs::detectorSettings::DYNAMICGAIN) - .value("LOWGAIN", slsDetectorDefs::detectorSettings::LOWGAIN) - .value("MEDIUMGAIN", slsDetectorDefs::detectorSettings::MEDIUMGAIN) - .value("VERYHIGHGAIN", slsDetectorDefs::detectorSettings::VERYHIGHGAIN) - .value("DYNAMICHG0", slsDetectorDefs::detectorSettings::DYNAMICHG0) - .value("FIXGAIN1", slsDetectorDefs::detectorSettings::FIXGAIN1) - .value("FIXGAIN2", slsDetectorDefs::detectorSettings::FIXGAIN2) - .value("FORCESWITCHG1", - slsDetectorDefs::detectorSettings::FORCESWITCHG1) - .value("FORCESWITCHG2", - slsDetectorDefs::detectorSettings::FORCESWITCHG2) - .value("VERYLOWGAIN", slsDetectorDefs::detectorSettings::VERYLOWGAIN) - .value("UNDEFINED", slsDetectorDefs::detectorSettings::UNDEFINED) - .value("UNINITIALIZED", - slsDetectorDefs::detectorSettings::UNINITIALIZED) - .export_values(); +py::enum_(Defs, "detectorSettings") + .value("GET_SETTINGS", slsDetectorDefs::detectorSettings::GET_SETTINGS) + .value("STANDARD", slsDetectorDefs::detectorSettings::STANDARD) + .value("FAST", slsDetectorDefs::detectorSettings::FAST) + .value("HIGHGAIN", slsDetectorDefs::detectorSettings::HIGHGAIN) + .value("DYNAMICGAIN", slsDetectorDefs::detectorSettings::DYNAMICGAIN) + .value("LOWGAIN", slsDetectorDefs::detectorSettings::LOWGAIN) + .value("MEDIUMGAIN", slsDetectorDefs::detectorSettings::MEDIUMGAIN) + .value("VERYHIGHGAIN", slsDetectorDefs::detectorSettings::VERYHIGHGAIN) + .value("DYNAMICHG0", slsDetectorDefs::detectorSettings::DYNAMICHG0) + .value("FIXGAIN1", slsDetectorDefs::detectorSettings::FIXGAIN1) + .value("FIXGAIN2", slsDetectorDefs::detectorSettings::FIXGAIN2) + .value("FORCESWITCHG1", slsDetectorDefs::detectorSettings::FORCESWITCHG1) + .value("FORCESWITCHG2", slsDetectorDefs::detectorSettings::FORCESWITCHG2) + .value("VERYLOWGAIN", slsDetectorDefs::detectorSettings::VERYLOWGAIN) + .value("UNDEFINED", slsDetectorDefs::detectorSettings::UNDEFINED) + .value("UNINITIALIZED", slsDetectorDefs::detectorSettings::UNINITIALIZED) +.export_values(); - py::enum_(Defs, "speedVariable") - .value("CLOCK_DIVIDER", slsDetectorDefs::speedVariable::CLOCK_DIVIDER) - .value("ADC_CLOCK", slsDetectorDefs::speedVariable::ADC_CLOCK) - .value("ADC_PHASE", slsDetectorDefs::speedVariable::ADC_PHASE) - .value("ADC_PIPELINE", slsDetectorDefs::speedVariable::ADC_PIPELINE) - .value("DBIT_CLOCK", slsDetectorDefs::speedVariable::DBIT_CLOCK) - .value("DBIT_PHASE", slsDetectorDefs::speedVariable::DBIT_PHASE) - .value("DBIT_PIPELINE", slsDetectorDefs::speedVariable::DBIT_PIPELINE) - .value("MAX_ADC_PHASE_SHIFT", - slsDetectorDefs::speedVariable::MAX_ADC_PHASE_SHIFT) - .value("MAX_DBIT_PHASE_SHIFT", - slsDetectorDefs::speedVariable::MAX_DBIT_PHASE_SHIFT) - .value("SYNC_CLOCK", slsDetectorDefs::speedVariable::SYNC_CLOCK) - .export_values(); +py::enum_(Defs, "speedVariable") + .value("CLOCK_DIVIDER", slsDetectorDefs::speedVariable::CLOCK_DIVIDER) + .value("ADC_CLOCK", slsDetectorDefs::speedVariable::ADC_CLOCK) + .value("ADC_PHASE", slsDetectorDefs::speedVariable::ADC_PHASE) + .value("ADC_PIPELINE", slsDetectorDefs::speedVariable::ADC_PIPELINE) + .value("DBIT_CLOCK", slsDetectorDefs::speedVariable::DBIT_CLOCK) + .value("DBIT_PHASE", slsDetectorDefs::speedVariable::DBIT_PHASE) + .value("DBIT_PIPELINE", slsDetectorDefs::speedVariable::DBIT_PIPELINE) + .value("MAX_ADC_PHASE_SHIFT", slsDetectorDefs::speedVariable::MAX_ADC_PHASE_SHIFT) + .value("MAX_DBIT_PHASE_SHIFT", slsDetectorDefs::speedVariable::MAX_DBIT_PHASE_SHIFT) + .value("SYNC_CLOCK", slsDetectorDefs::speedVariable::SYNC_CLOCK) +.export_values(); - py::enum_(Defs, "readoutMode") - .value("ANALOG_ONLY", slsDetectorDefs::readoutMode::ANALOG_ONLY) - .value("DIGITAL_ONLY", slsDetectorDefs::readoutMode::DIGITAL_ONLY) - .value("ANALOG_AND_DIGITAL", - slsDetectorDefs::readoutMode::ANALOG_AND_DIGITAL) - .export_values(); +py::enum_(Defs, "readoutMode") + .value("ANALOG_ONLY", slsDetectorDefs::readoutMode::ANALOG_ONLY) + .value("DIGITAL_ONLY", slsDetectorDefs::readoutMode::DIGITAL_ONLY) + .value("ANALOG_AND_DIGITAL", slsDetectorDefs::readoutMode::ANALOG_AND_DIGITAL) +.export_values(); - py::enum_(Defs, "speedLevel") - .value("FULL_SPEED", slsDetectorDefs::speedLevel::FULL_SPEED) - .value("HALF_SPEED", slsDetectorDefs::speedLevel::HALF_SPEED) - .value("QUARTER_SPEED", slsDetectorDefs::speedLevel::QUARTER_SPEED) - .export_values(); +py::enum_(Defs, "speedLevel") + .value("FULL_SPEED", slsDetectorDefs::speedLevel::FULL_SPEED) + .value("HALF_SPEED", slsDetectorDefs::speedLevel::HALF_SPEED) + .value("QUARTER_SPEED", slsDetectorDefs::speedLevel::QUARTER_SPEED) +.export_values(); - py::enum_(Defs, "portType") - .value("CONTROL_PORT", slsDetectorDefs::portType::CONTROL_PORT) - .value("STOP_PORT", slsDetectorDefs::portType::STOP_PORT) - .value("DATA_PORT", slsDetectorDefs::portType::DATA_PORT) - .export_values(); +py::enum_(Defs, "portType") + .value("CONTROL_PORT", slsDetectorDefs::portType::CONTROL_PORT) + .value("STOP_PORT", slsDetectorDefs::portType::STOP_PORT) + .value("DATA_PORT", slsDetectorDefs::portType::DATA_PORT) +.export_values(); + +py::enum_(Defs, "masterFlags") + .value("GET_MASTER", slsDetectorDefs::masterFlags::GET_MASTER) + .value("NO_MASTER", slsDetectorDefs::masterFlags::NO_MASTER) + .value("IS_MASTER", slsDetectorDefs::masterFlags::IS_MASTER) + .value("IS_SLAVE", slsDetectorDefs::masterFlags::IS_SLAVE) +.export_values(); + +py::enum_(Defs, "frameModeType") + .value("GET_FRAME_MODE", slsDetectorDefs::frameModeType::GET_FRAME_MODE) + .value("PEDESTAL", slsDetectorDefs::frameModeType::PEDESTAL) + .value("NEW_PEDESTAL", slsDetectorDefs::frameModeType::NEW_PEDESTAL) + .value("FLATFIELD", slsDetectorDefs::frameModeType::FLATFIELD) + .value("NEW_FLATFIELD", slsDetectorDefs::frameModeType::NEW_FLATFIELD) +.export_values(); + +py::enum_(Defs, "detectorModeType") + .value("GET_DETECTOR_MODE", slsDetectorDefs::detectorModeType::GET_DETECTOR_MODE) + .value("COUNTING", slsDetectorDefs::detectorModeType::COUNTING) + .value("INTERPOLATING", slsDetectorDefs::detectorModeType::INTERPOLATING) + .value("ANALOG", slsDetectorDefs::detectorModeType::ANALOG) +.export_values(); - py::enum_(Defs, "masterFlags") - .value("GET_MASTER", slsDetectorDefs::masterFlags::GET_MASTER) - .value("NO_MASTER", slsDetectorDefs::masterFlags::NO_MASTER) - .value("IS_MASTER", slsDetectorDefs::masterFlags::IS_MASTER) - .value("IS_SLAVE", slsDetectorDefs::masterFlags::IS_SLAVE) - .export_values(); - py::enum_(Defs, "frameModeType") - .value("GET_FRAME_MODE", slsDetectorDefs::frameModeType::GET_FRAME_MODE) - .value("PEDESTAL", slsDetectorDefs::frameModeType::PEDESTAL) - .value("NEW_PEDESTAL", slsDetectorDefs::frameModeType::NEW_PEDESTAL) - .value("FLATFIELD", slsDetectorDefs::frameModeType::FLATFIELD) - .value("NEW_FLATFIELD", slsDetectorDefs::frameModeType::NEW_FLATFIELD) - .export_values(); - py::enum_(Defs, "detectorModeType") - .value("GET_DETECTOR_MODE", - slsDetectorDefs::detectorModeType::GET_DETECTOR_MODE) - .value("COUNTING", slsDetectorDefs::detectorModeType::COUNTING) - .value("INTERPOLATING", - slsDetectorDefs::detectorModeType::INTERPOLATING) - .value("ANALOG", slsDetectorDefs::detectorModeType::ANALOG) - .export_values(); } diff --git a/python/src/enums_in.cpp b/python/src/enums_in.cpp index 14657b462..b62fc6cdd 100644 --- a/python/src/enums_in.cpp +++ b/python/src/enums_in.cpp @@ -8,6 +8,8 @@ namespace py = pybind11; void init_enums(py::module &m) { py::class_ Defs(m, "slsDetectorDefs"); py::class_ xy(m, "xy"); + xy.def(py::init()); + xy.def(py::init()); xy.def_readwrite("x", &slsDetectorDefs::xy::x); xy.def_readwrite("y", &slsDetectorDefs::xy::y); diff --git a/python/src/experimental.cpp b/python/src/experimental.cpp index bf8113c9f..7b49d9020 100644 --- a/python/src/experimental.cpp +++ b/python/src/experimental.cpp @@ -12,6 +12,7 @@ namespace py = pybind11; void init_experimental(py::module &m) { using sls::Detector; using sls::Positions; + using defs = slsDetectorDefs; py::class_ CppDetectorApi(m, "CppDetectorApi"); CppDetectorApi @@ -242,6 +243,12 @@ void init_experimental(py::module &m) { .def("setTransmissionDelayRight", &Detector::setTransmissionDelayRight, py::arg(), py::arg() = Positions{}) + /************************************************** + * * + * RECEIVER CONFIG * + * * + * ************************************************/ + .def("getUseReceiverFlag", &Detector::getUseReceiverFlag, py::arg() = Positions{}) .def("getRxHostname", &Detector::getRxHostname, py::arg() = Positions{}) @@ -278,6 +285,180 @@ void init_experimental(py::module &m) { .def("getRxLastClientIP", &Detector::getRxLastClientIP, py::arg() = Positions{}) + /************************************************** + * * + * FILE * + * * + * ************************************************/ + .def("getFileFormat", &Detector::getFileFormat, py::arg() = Positions{}) + .def("setFileFormat", &Detector::setFileFormat, py::arg(), + py::arg() = Positions{}) + .def("getFilePath", &Detector::getFilePath, py::arg() = Positions{}) + .def("setFilePath", &Detector::setFilePath, py::arg(), + py::arg() = Positions{}) + .def("getFileNamePrefix", &Detector::getFileNamePrefix, + py::arg() = Positions{}) + .def("setFileNamePrefix", &Detector::setFileNamePrefix, py::arg(), + py::arg() = Positions{}) + .def("getFilePath", &Detector::getFilePath) + .def("setFilePath", &Detector::setFilePath, py::arg(), + py::arg() = Positions{}) + + .def("getAcquisitionIndex", &Detector::getAcquisitionIndex, + py::arg() = Positions{}) + .def("setAcquisitionIndex", &Detector::setAcquisitionIndex, py::arg(), + py::arg() = Positions{}) + .def("setFileWrite", &Detector::setFileWrite, py::arg(), + py::arg() = Positions{}) + .def("getFileWrite", &Detector::getFileWrite, py::arg() = Positions{}) + .def("setFileOverWrite", &Detector::setFileOverWrite, py::arg(), + py::arg() = Positions{}) + .def("getFileOverWrite", &Detector::getFileOverWrite, + py::arg() = Positions{}) + .def("setMasterFileWrite", &Detector::setMasterFileWrite, py::arg(), + py::arg() = Positions{}) + .def("getMasterFileWrite", &Detector::getMasterFileWrite, + py::arg() = Positions{}) + .def("setFramesPerFile", &Detector::setFramesPerFile, py::arg(), + py::arg() = Positions{}) + .def("getFramesPerFile", &Detector::getFramesPerFile, + py::arg() = Positions{}) + + /************************************************** + * * + * ZMQ Streaming Parameters (Receiver<->Client)* + * * + * ************************************************/ + + .def("getRxZmqDataStream", &Detector::getRxZmqDataStream, + py::arg() = Positions{}) + .def("setRxZmqDataStream", &Detector::setRxZmqDataStream, py::arg(), + py::arg() = Positions{}) + .def("getRxZmqFrequency", &Detector::getRxZmqFrequency, + py::arg() = Positions{}) + .def("setRxZmqFrequency", &Detector::setRxZmqFrequency, py::arg(), + py::arg() = Positions{}) + .def("getRxZmqTimer", &Detector::getRxZmqTimer, py::arg() = Positions{}) + .def("setRxZmqTimer", &Detector::setRxZmqTimer, py::arg(), + py::arg() = Positions{}) + .def("getRxZmqPort", &Detector::getRxZmqPort, py::arg() = Positions{}) + .def("setRxZmqPort", &Detector::setRxZmqPort, py::arg(), + py::arg() = Positions{}) + .def("getRxZmqIP", &Detector::getRxZmqIP, py::arg() = Positions{}) + .def("setRxZmqIP", &Detector::setRxZmqIP, py::arg(), + py::arg() = Positions{}) + .def("getClientZmqPort", &Detector::getClientZmqPort, + py::arg() = Positions{}) + .def("setClientZmqPort", &Detector::setClientZmqPort, py::arg(), + py::arg() = -1) + .def("getClientZmqIp", &Detector::getClientZmqIp, + py::arg() = Positions{}) + .def("setClientZmqIp", &Detector::setClientZmqIp, py::arg(), + py::arg() = Positions{}) + + /************************************************** + * * + * Eiger Specific * + * * + * ************************************************/ + + .def("getDynamicRange", &Detector::getDynamicRange, + py::arg() = Positions{}) + .def("setDynamicRange", &Detector::setDynamicRange) + .def("getSubExptime", &Detector::getSubExptime, py::arg() = Positions{}) + .def("setSubExptime", &Detector::setSubExptime, py::arg(), + py::arg() = Positions{}) + .def("getSubDeadTime", &Detector::getSubDeadTime, + py::arg() = Positions{}) + .def("setSubDeadTime", &Detector::setSubDeadTime, py::arg(), + py::arg() = Positions{}) + + .def("getThresholdEnergy", &Detector::getThresholdEnergy, + py::arg() = Positions{}) + .def("setThresholdEnergy", &Detector::setThresholdEnergy, py::arg(), + py::arg() = defs::STANDARD, py::arg() = true, + py::arg() = Positions{}) + .def("getSettingsDir", &Detector::getSettingsDir, + py::arg() = Positions{}) + .def("setSettingsDir", &Detector::setSettingsDir, py::arg(), + py::arg() = Positions{}) + .def("loadTrimbits", &Detector::setSettingsDir, py::arg(), + py::arg() = Positions{}) + .def("getRxAddGapPixels", &Detector::getRxAddGapPixels, + py::arg() = Positions{}) + .def("setRxAddGapPixels", &Detector::setRxAddGapPixels) + .def("getParallelMode", &Detector::getParallelMode, + py::arg() = Positions{}) + .def("setParallelMode", &Detector::setParallelMode, py::arg(), + py::arg() = Positions{}) + .def("getOverFlowMode", &Detector::getOverFlowMode, + py::arg() = Positions{}) + .def("setOverFlowMode", &Detector::setOverFlowMode, py::arg(), + py::arg() = Positions{}) + .def("getStoreInRamMode", &Detector::getStoreInRamMode, + py::arg() = Positions{}) + .def("setStoreInRamMode", &Detector::setStoreInRamMode, py::arg(), + py::arg() = Positions{}) + .def("getBottom", &Detector::getBottom, py::arg() = Positions{}) + .def("setBottom", &Detector::setBottom, py::arg(), + py::arg() = Positions{}) + .def("getAllTrimbits", &Detector::getAllTrimbits, + py::arg() = Positions{}) + .def("setAllTrimbits", &Detector::setAllTrimbits, py::arg(), + py::arg() = Positions{}) + .def("getTrimEnergies", &Detector::getTrimEnergies, + py::arg() = Positions{}) + .def("setTrimEnergies", &Detector::setTrimEnergies, py::arg(), + py::arg() = Positions{}) + .def("getRateCorrection", &Detector::getRateCorrection, + py::arg() = Positions{}) + .def("setRateCorrection", &Detector::setRateCorrection, py::arg(), + py::arg() = Positions{}) + .def("setDefaultRateCorrection", &Detector::setDefaultRateCorrection, + py::arg() = Positions{}) + .def("getPartialReadout", &Detector::getPartialReadout, + py::arg() = Positions{}) + .def("setPartialReadout", &Detector::setPartialReadout, py::arg(), + py::arg() = Positions{}) + .def("getInterruptSubframe", &Detector::getInterruptSubframe, + py::arg() = Positions{}) + .def("setInterruptSubframe", &Detector::setInterruptSubframe, py::arg(), + py::arg() = Positions{}) + + .def("getMeasuredPeriod", &Detector::getMeasuredPeriod, + py::arg() = Positions{}) + .def("getMeasuredSubFramePeriod", &Detector::getMeasuredSubFramePeriod, + py::arg() = Positions{}) + .def("getActive", &Detector::getActive, py::arg() = Positions{}) + .def("setActive", &Detector::setActive, py::arg(), + py::arg() = Positions{}) + .def("getRxPadDeactivatedMode", &Detector::getRxPadDeactivatedMode, + py::arg() = Positions{}) + .def("setRxPadDeactivatedMode", &Detector::setRxPadDeactivatedMode, py::arg(), + py::arg() = Positions{}) + .def("getPartialReset", &Detector::getPartialReset, py::arg() = Positions{}) + .def("setPartialReset", &Detector::setPartialReset, py::arg(), + py::arg() = Positions{}) + + .def("pulsePixel", &Detector::pulsePixel, py::arg(), py::arg(), + py::arg() = Positions{}) + .def("pulsePixelNMove", &Detector::pulsePixelNMove, py::arg(), + py::arg(), py::arg() = Positions{}) + .def("pulseChip", &Detector::pulseChip, py::arg(), + py::arg() = Positions{}) + .def("getQuad", &Detector::getQuad, py::arg() = Positions{}) + .def("setQuad", &Detector::setQuad) + + /************************************************** + * * + * Jungfrau Specific * + * * + * ************************************************/ + .def("getThresholdTemperature", &Detector::getThresholdTemperature, py::arg() = Positions{}) + .def("setThresholdTemperature", &Detector::setThresholdTemperature, py::arg(), + py::arg() = Positions{}) + + // Bits and registers .def("setBit", &Detector::setBit, py::arg(), py::arg(), py::arg() = Positions{}) @@ -292,19 +473,6 @@ void init_experimental(py::module &m) { py::arg(), py::arg() = Positions{}) // File - .def("getFileNamePrefix", &Detector::getFileNamePrefix) - .def("setFileNamePrefix", &Detector::setFileNamePrefix, py::arg(), - py::arg() = Positions{}) - .def("getFilePath", &Detector::getFilePath) - .def("setFilePath", &Detector::setFilePath, py::arg(), - py::arg() = Positions{}) - .def("setFileWrite", &Detector::setFileWrite, py::arg(), - py::arg() = Positions{}) - .def("getFileWrite", &Detector::getFileWrite, py::arg() = Positions{}) - .def("setFileOverWrite", &Detector::setFileOverWrite, py::arg(), - py::arg() = Positions{}) - .def("getFileOverWrite", &Detector::getFileOverWrite, - py::arg() = Positions{}) // Time diff --git a/slsDetectorSoftware/src/slsDetectorCommand.cpp b/slsDetectorSoftware/src/slsDetectorCommand.cpp index 739c8477b..a9810d505 100755 --- a/slsDetectorSoftware/src/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/src/slsDetectorCommand.cpp @@ -928,14 +928,14 @@ slsDetectorCommand::slsDetectorCommand(multiSlsDetector *det) { ++i; /*! \page settings - - vhaper1 [i] [mv] Sets/gets the voltage to define the feedback resistance of the first shaper. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vshaper1 [i] [mv] Sets/gets the voltage to define the feedback resistance of the first shaper. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vshaper1"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vhaper1 [i] [mv] Sets/gets the voltage to define the feedback resistance of the first shaper. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vshaper [i] [mv] Sets/gets the voltage to define the feedback transistor voltage of the shaper. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vshaper"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; @@ -949,7 +949,7 @@ slsDetectorCommand::slsDetectorCommand(multiSlsDetector *det) { ++i; /*! \page settings - - vhaper1 [i] [mv] Sets/gets the voltage to define the feedback resistance of the first shaper. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vhaperneg [i] [mv] Sets/gets the voltage to define the feedback transistor voltage of the negative-polarity shaper. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vshaperneg"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; @@ -1229,209 +1229,96 @@ slsDetectorCommand::slsDetectorCommand(multiSlsDetector *det) { ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vipre Sets/gets dac for the preamplifier's input transistor current for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vipre"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vdcsh Sets/gets dac for the reference (DC) voltage for the shaper for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vdcsh"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - Vth1 Sets/gets first detector threshold voltage for Mythen 3.01. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vth1 Sets/gets first detector threshold voltage for Mythen 3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vth1"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - Vth1 Sets/gets second detector threshold voltage for Mythen 3.0. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vth2 Sets/gets second detector threshold voltage for Mythen 3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vth2"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - Vth1 Sets/gets third detector threshold voltage for Mythen 3.0. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vth3 Sets/gets third detector threshold voltage for Mythen 3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vth3"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vpl Sets/gets dac for the low voltage for analog pulsing for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vpl"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vph Sets/gets dac for the high voltage for analog pulsing for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vph"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vtrim Sets/gets dac for the voltage defining the trim bit size for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vtrim"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - viinsh Sets/gets dac for the bias current for the shaper for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "viinsh"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - cas Sets/gets dac for the preamplifier's cascode voltage for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "cas"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - cassh Sets/gets dac for the shaper's cascode voltage for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "cassh"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vicin Sets/gets dac for the bias current for the comparator for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vicin"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) + - vipreout Sets/gets dac for the preamplifier's output branch current for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) */ descrToFuncMap[i].m_pFuncName = "vipreout"; descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; ++i; - /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vrfsh"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vIpre Sets/gets dac for xxx for Mythen3. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vrfshnpol"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vref_h_adc Sets/gets dac for reference voltage high of ADC for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vref_h_adc"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vb_comp_fe Sets/gets dac for comparator current of analogue front end for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vb_comp_fe"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vb_comp_adc Sets/gets dac for comparator current of ADC for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vb_comp_adc"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vcom_cds Sets/gets dac for common mode voltage of CDS stage for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vcom_cds"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vref_restore Sets/gets dac for reference charging voltage of temparory storage cell in high gain for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vref_restore"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vb_opa_1st Sets/gets dac for opa current for driving the other DACs in chip for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vb_opa_1st"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vref_comp_fe Sets/gets dac for reference voltage of the comparator of analogue front end for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vref_comp_fe"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vcom_adc1 Sets/gets dac for common mode voltage of ADC DAC bank 1 for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vcom_adc1"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vref_prech Sets/gets dac for reference votlage for precharing the preamplifier for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vref_prech"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vref_l_adc Sets/gets dac for reference voltage low for ADC for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vref_l_adc"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vref_cds Sets/gets dac for reference voltage of CDS applied to the temporary storage cell in medium and low gain for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vref_cds"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vb_cs Sets/gets dac for current injection into preamplifier for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vb_cs"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vb_opa_fd Sets/gets dac for current for CDS opa stage for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vb_opa_fd"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /*! \page settings - - vcom_adc2 Sets/gets dac for common mode voltage of ADC DAC bank 2 for Gotthard2. Normally in DAC units unless \c mv is specified at the end of the command line. \c Returns \c (int ["mV"]) - */ - descrToFuncMap[i].m_pFuncName = "vcom_adc2"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdDAC; - ++i; - - /* r/w timers */ /*! \page settings \section settingsadcs ADCs @@ -2056,7 +1943,6 @@ std::string slsDetectorCommand::executeLine(int narg, const char * const args[], if (action == READOUT_ACTION) return cmdAcquire(narg, args, action, detPos); - size_t s = std::string(args[0]).find(':'); std::string key = std::string(args[0]).substr(0, s); // truncate at : diff --git a/slsSupportLib/include/sls_detector_defs.h b/slsSupportLib/include/sls_detector_defs.h index e22d17af8..ce6de7045 100755 --- a/slsSupportLib/include/sls_detector_defs.h +++ b/slsSupportLib/include/sls_detector_defs.h @@ -297,8 +297,8 @@ format #ifdef __cplusplus struct xy { - int x{0}; - int y{0}; + int x; + int y; }; #endif /**