diff --git a/python/scripts/generate_enums.py b/python/scripts/generate_enums.py index e6835e1da..29c73f628 100644 --- a/python/scripts/generate_enums.py +++ b/python/scripts/generate_enums.py @@ -42,6 +42,7 @@ def extract_enums(lines): except: pass + fields = [f.strip() for f in fields] enums[enum_name] = fields return enums diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index 76ad24578..0989f6e98 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -601,13 +601,12 @@ class Detector(CppDetectorApi): self.setRateCorrection(tau) @property - def clkdivider(self): - res = [int(value) for value in self.getSpeed()] - return element_if_equal(res) + def speed(self): + return element_if_equal(self.getSpeed()) - @clkdivider.setter - def clkdivider(self, value): - self.setSpeed(speedLevel(value)) + @speed.setter + def speed(self, value): + self.setSpeed(value) @property def frameindex(self): diff --git a/python/src/enums.cpp b/python/src/enums.cpp index f2a7637b8..e1bfb622c 100644 --- a/python/src/enums.cpp +++ b/python/src/enums.cpp @@ -49,14 +49,14 @@ void init_enums(py::module &m) { py::enum_(Defs, "fileFormat") .value("BINARY", slsDetectorDefs::fileFormat::BINARY) - .value(" HDF5", slsDetectorDefs::fileFormat::HDF5) - .value(" NUM_FILE_FORMATS", + .value("HDF5", slsDetectorDefs::fileFormat::HDF5) + .value("NUM_FILE_FORMATS", slsDetectorDefs::fileFormat::NUM_FILE_FORMATS) .export_values(); py::enum_(Defs, "dimension") .value("X", slsDetectorDefs::dimension::X) - .value(" Y", slsDetectorDefs::dimension::Y) + .value("Y", slsDetectorDefs::dimension::Y) .export_values(); py::enum_(Defs, "externalSignalFlag") @@ -176,6 +176,7 @@ void init_enums(py::module &m) { slsDetectorDefs::dacIndex::TEMPERATURE_FPGA2) .value("TEMPERATURE_FPGA3", slsDetectorDefs::dacIndex::TEMPERATURE_FPGA3) + .value("TRIMBIT_SCAN", slsDetectorDefs::dacIndex::TRIMBIT_SCAN) .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) @@ -234,42 +235,42 @@ void init_enums(py::module &m) { py::enum_(Defs, "clockIndex") .value("ADC_CLOCK", slsDetectorDefs::clockIndex::ADC_CLOCK) - .value(" DBIT_CLOCK", slsDetectorDefs::clockIndex::DBIT_CLOCK) - .value(" RUN_CLOCK", slsDetectorDefs::clockIndex::RUN_CLOCK) - .value(" SYNC_CLOCK", slsDetectorDefs::clockIndex::SYNC_CLOCK) + .value("DBIT_CLOCK", slsDetectorDefs::clockIndex::DBIT_CLOCK) + .value("RUN_CLOCK", slsDetectorDefs::clockIndex::RUN_CLOCK) + .value("SYNC_CLOCK", slsDetectorDefs::clockIndex::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", + .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) + .value("HALF_SPEED", slsDetectorDefs::speedLevel::HALF_SPEED) + .value("QUARTER_SPEED", slsDetectorDefs::speedLevel::QUARTER_SPEED) .export_values(); py::enum_(Defs, "masterFlags") .value("NO_MASTER", slsDetectorDefs::masterFlags::NO_MASTER) - .value(" IS_MASTER", slsDetectorDefs::masterFlags::IS_MASTER) - .value(" IS_SLAVE", slsDetectorDefs::masterFlags::IS_SLAVE) + .value("IS_MASTER", slsDetectorDefs::masterFlags::IS_MASTER) + .value("IS_SLAVE", slsDetectorDefs::masterFlags::IS_SLAVE) .export_values(); py::enum_(Defs, "frameModeType") .value("PEDESTAL", slsDetectorDefs::frameModeType::PEDESTAL) - .value(" NEW_PEDESTAL", slsDetectorDefs::frameModeType::NEW_PEDESTAL) - .value(" FLATFIELD", slsDetectorDefs::frameModeType::FLATFIELD) - .value(" NEW_FLATFIELD", slsDetectorDefs::frameModeType::NEW_FLATFIELD) + .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("COUNTING", slsDetectorDefs::detectorModeType::COUNTING) - .value(" INTERPOLATING", + .value("INTERPOLATING", slsDetectorDefs::detectorModeType::INTERPOLATING) - .value(" ANALOG", slsDetectorDefs::detectorModeType::ANALOG) + .value("ANALOG", slsDetectorDefs::detectorModeType::ANALOG) .export_values(); py::enum_(Defs, "burstMode") @@ -282,7 +283,7 @@ void init_enums(py::module &m) { py::enum_(Defs, "timingSourceType") .value("TIMING_INTERNAL", slsDetectorDefs::timingSourceType::TIMING_INTERNAL) - .value(" TIMING_EXTERNAL", + .value("TIMING_EXTERNAL", slsDetectorDefs::timingSourceType::TIMING_EXTERNAL) .export_values(); } diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index e613a961d..d2dd694c2 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -1168,10 +1168,8 @@ void Module::sendReceiverRateCorrections(const std::vector &t) { << ']'; auto receiver = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); receiver.Send(F_SET_RECEIVER_RATE_CORRECT); - // TODO: use overload for vector - int size = t.size(); - receiver.Send(size); - receiver.Send(t.data(), t.size() * sizeof(t[0])); + receiver.Send(static_cast(t.size())); + receiver.Send(t); if (receiver.Receive() == FAIL) { throw RuntimeError("Receiver " + std::to_string(moduleId) + " returned error: " + receiver.readErrorMessage());