From 0837de2a5adcee4e042289abd349d05f4ab0c9ba Mon Sep 17 00:00:00 2001 From: Martin Mueller <72937414+mmarti04@users.noreply.github.com> Date: Wed, 6 May 2026 15:52:13 +0200 Subject: [PATCH] CTB frequency rounding, CTB frequency measurement, CTB frequency units (#1423) * round CTB clocks to next closest possible value, added freq measurement * added time for firmware to measrue actual value after frequency change * add check for backwards compatibility * change CTB and XCTB clock values to MHz, TODO: units and validation errors * changed runclk command to use units and float, TODO: dbit, adcclk, why is everything called StringTo ? * do the same for dbit and adcclk * added tolerance to exptime, fixed test * update default values in server defs * added virtual check in Altera_PLL, update testcases * change python and pyctbgui to accept and return floating point MHz * update help and comments * Dev/ctb clocks fix (#1434) * introduced new type Hz, typetraits, String conversions, command generation (not yet generated) * incorrect unit typo * cmd generation and compiles * default to MHz, removed space between units for consistency with timers, min and max checks for clks * in python, but need to change the default to Hz again for clean code and intuition * allow ints, doubles, implicit conversions * dont allow raw ints, doubles and implicit conversions * fixed tests * added operators for Hz in python * fix test for min clk for xilinx ctb * fix test * fix python tests * fixed xilinx period and default clks * test fix * removed the 3 clock cycle check for ctb and implemented properly the max adc clk frq for altera ctb * removing 3 clock cycle code from xilinx as well * formatting * loadpattern before 3 clk cycles code * actualtime and measurement time to be implemented in 100ns already in fw * fix tests * pyzmq dependency forthe tests * fixed pyctbgui for freq * insert tolerance check again * also added tolerance check for patwaittime * formatting * minor: rounding test * removed Rep redundant in ToString for freq * intro frequency unit enums, removed unnecessary template behavior for ToString with freq unit, switching from parsing string unit argument to the enum argument for ToString, adding parsing string to unit at CLI boundary * minor, and binaries * minor, default clk vals are 0 but set up at detector setup * get frequency only for that unit * tolerance process * missed in previous commit * some more changes to exptime and validations * ctb is probably done * periodleft and delayleft * fixed xilinx freq conv as well * fixed m3 bug, binaries * xilinx: setup also done in stop server so that the clk is not 0 * missed a test marker * binaries in * review fixes, simpler validation of timers in ctb and xilinx ctb * typo fix * format * fix tests --------- Co-authored-by: Martin Mueller Co-authored-by: Dhanya Thattil --- .gitea/workflows/docker-rh8-build-test.yml | 1 + .gitea/workflows/docker-rh9-build-test.yml | 1 + .github/workflows/run_tests.yaml | 2 +- pyctbgui/pyctbgui/services/Acquisition.py | 82 +-- pyctbgui/pyctbgui/ui/acquisition.ui | 615 +++++++++++------- python/CMakeLists.txt | 1 + python/slsdet/__init__.py | 3 + python/slsdet/detector.py | 45 +- python/src/detector.cpp | 30 +- python/src/frequency.cpp | 55 ++ python/src/main.cpp | 2 + python/tests/test_det_api.py | 188 ++++++ python/tests/test_freq.py | 48 ++ .../ctbDetectorServer/RegisterDefs.h | 9 +- .../bin/ctbDetectorServer_developer | Bin 352864 -> 333120 bytes .../slsDetectorFunctionList.c | 218 +++++-- .../slsDetectorFunctionList.h | 16 +- .../slsDetectorServer_defs.h | 17 +- .../slsDetectorFunctionList.h | 1 - .../bin/mythen3DetectorServer_developer | Bin 310396 -> 322428 bytes .../slsDetectorFunctionList.h | 1 - .../slsDetectorServer/include/ALTERA_PLL.h | 15 +- .../slsDetectorServer/include/common.h | 14 + .../slsDetectorServer/src/ALTERA_PLL.c | 41 +- .../slsDetectorServer/src/XILINX_PLL.c | 16 +- .../slsDetectorServer/src/loadPattern.c | 73 ++- .../src/slsDetectorServer_funcs.c | 104 ++- .../bin/xilinx_ctbDetectorServer_developer | Bin 306232 -> 306352 bytes .../slsDetectorFunctionList.c | 204 ++++-- .../slsDetectorFunctionList.h | 16 +- .../slsDetectorServer_defs.h | 13 +- slsDetectorSoftware/generator/Caller.in.h | 4 + .../generator/autocomplete/autocomplete.py | 7 +- .../autocomplete/bash_autocomplete.sh | 68 +- .../autocomplete/zsh_autocomplete.sh | 68 +- slsDetectorSoftware/generator/commands.yaml | 123 +++- .../commands_parser/commands_parser.py | 11 +- .../generator/cpp_codegen/codegen.py | 10 + .../generator/extended_commands.yaml | 181 +++++- slsDetectorSoftware/generator/gen_commands.py | 18 + slsDetectorSoftware/generator/readme.md | 8 +- slsDetectorSoftware/include/sls/Detector.h | 34 +- slsDetectorSoftware/include/sls/Result.h | 3 + slsDetectorSoftware/src/Caller.cpp | 151 ++++- slsDetectorSoftware/src/Caller.h | 4 + slsDetectorSoftware/src/CallerSpecial.cpp | 25 + slsDetectorSoftware/src/Detector.cpp | 36 +- slsDetectorSoftware/src/Module.cpp | 2 +- slsDetectorSoftware/src/Module.h | 2 +- slsDetectorSoftware/src/inferAction.cpp | 22 + .../Caller/test-Caller-chiptestboard.cpp | 214 +++++- slsSupportLib/include/sls/ToString.h | 49 ++ slsSupportLib/include/sls/TypeTraits.h | 7 + slsSupportLib/include/sls/sls_detector_defs.h | 11 +- slsSupportLib/include/sls/versionAPI.h | 8 +- slsSupportLib/src/ToString.cpp | 30 + slsSupportLib/tests/test-ToString.cpp | 18 + 57 files changed, 2239 insertions(+), 706 deletions(-) create mode 100644 python/src/frequency.cpp create mode 100644 python/tests/test_freq.py diff --git a/.gitea/workflows/docker-rh8-build-test.yml b/.gitea/workflows/docker-rh8-build-test.yml index ed569282d..3d070f71e 100644 --- a/.gitea/workflows/docker-rh8-build-test.yml +++ b/.gitea/workflows/docker-rh8-build-test.yml @@ -34,6 +34,7 @@ jobs: python3.12 -m pip install pytest python3.12 -m pip install colorama python3.12 -m pip install numpy + python3.12 -m pip install pyzmq - name: Python unit tests working-directory: ${{gitea.workspace}} diff --git a/.gitea/workflows/docker-rh9-build-test.yml b/.gitea/workflows/docker-rh9-build-test.yml index 9c2e392fd..2783d69ec 100644 --- a/.gitea/workflows/docker-rh9-build-test.yml +++ b/.gitea/workflows/docker-rh9-build-test.yml @@ -32,6 +32,7 @@ jobs: python3.12 -m pip install pytest python3.12 -m pip install colorama python3.12 -m pip install numpy + python3.12 -m pip install pyzmq - name: Python unit tests working-directory: ${{gitea.workspace}} diff --git a/.github/workflows/run_tests.yaml b/.github/workflows/run_tests.yaml index 7d3487f29..96d04205e 100644 --- a/.github/workflows/run_tests.yaml +++ b/.github/workflows/run_tests.yaml @@ -18,7 +18,7 @@ jobs: with: python-version: 3.12 cache: 'pip' - - run: pip install pytest numpy colorama + - run: pip install pytest numpy colorama pyzmq - uses: awalsh128/cache-apt-pkgs-action@latest with: diff --git a/pyctbgui/pyctbgui/services/Acquisition.py b/pyctbgui/pyctbgui/services/Acquisition.py index 58c972c51..b32b8a659 100644 --- a/pyctbgui/pyctbgui/services/Acquisition.py +++ b/pyctbgui/pyctbgui/services/Acquisition.py @@ -7,7 +7,7 @@ import zmq from PyQt5 import QtWidgets, uic import logging -from slsdet import readoutMode, runStatus, detectorType +from slsdet import readoutMode, runStatus, detectorType, Hz, MHz, kHz from pyctbgui.utils.defines import Defines from pyctbgui.utils.numpyWriter.npy_writer import NumpyFileManager from pyctbgui.utils.numpyWriter.npz_writer import NpzFileWriter @@ -58,12 +58,6 @@ class AcquisitionTab(QtWidgets.QWidget): self.view.spinBoxADCPipeline.setDisabled(True) self.view.spinBoxDBITPhase.setDisabled(True) self.view.spinBoxDBITPipeline.setDisabled(True) - self.view.labelRunF.setText("Run Clock Frequency (kHz):") - self.view.labelDBITF.setText("DBIT Clock Frequency (kHz):") - self.view.labelADCF.setText("ADC Clock Frequency (kHz):") - self.view.spinBoxRunF.setMaximum(250000) - self.view.spinBoxDBITF.setMaximum(250000) - self.view.spinBoxADCF.setMaximum(250000) def connect_ui(self): # For Acquistions Tab @@ -74,8 +68,11 @@ class AcquisitionTab(QtWidgets.QWidget): if self.det.type in [detectorType.CHIPTESTBOARD, detectorType.XILINX_CHIPTESTBOARD]: self.view.spinBoxRunF.editingFinished.connect(self.setRunFrequency) + self.view.comboBoxRunF.currentIndexChanged.connect(self.getRunFrequency) self.view.spinBoxADCF.editingFinished.connect(self.setADCFrequency) + self.view.comboBoxADCF.currentIndexChanged.connect(self.getADCFrequency) self.view.spinBoxDBITF.editingFinished.connect(self.setDBITFrequency) + self.view.comboBoxDBITF.currentIndexChanged.connect(self.getDBITFrequency) if self.det.type == detectorType.CHIPTESTBOARD: self.view.spinBoxADCPhase.editingFinished.connect(self.setADCPhase) self.view.spinBoxADCPipeline.editingFinished.connect(self.setADCPipeline) @@ -195,20 +192,43 @@ class AcquisitionTab(QtWidgets.QWidget): self.view.comboBoxROMode.currentIndexChanged.connect(self.setReadOut) self.getReadout() + + def _getFrequency(self, det_attr, spinbox, spinSetter, combobox): + spinbox.editingFinished.disconnect() + f = getattr(self.det, det_attr).value + unit = combobox.currentIndex() + + if unit == 2: #Hz + spinbox.setValue(f) + elif unit == 1: #kHz + spinbox.setValue(f / 1e3) + else: + spinbox.setValue(f / 1e6) + + spinbox.editingFinished.connect(spinSetter) + + def _setFrequency(self, det_attr, spinbox, combobox, title, getter): + value = spinbox.value() + idx = combobox.currentIndex() + + if idx == 0: + val = MHz(value) + elif idx == 1: + val = kHz(value) + else: + val = Hz((int)(value)) + + try: + setattr(self.det, det_attr, val) + except Exception as e: + QtWidgets.QMessageBox.warning(self.mainWindow, title + " Fail", str(e), QtWidgets.QMessageBox.Ok) + getter() + def getRunFrequency(self): - self.view.spinBoxRunF.editingFinished.disconnect() - self.view.spinBoxRunF.setValue(self.det.runclk) - self.view.spinBoxRunF.editingFinished.connect(self.setRunFrequency) + self._getFrequency('runclk', self.view.spinBoxRunF, self.setRunFrequency, self.view.comboBoxRunF) def setRunFrequency(self): - self.view.spinBoxRunF.editingFinished.disconnect() - try: - self.det.runclk = self.view.spinBoxRunF.value() - except Exception as e: - QtWidgets.QMessageBox.warning(self.mainWindow, "Run Frequency Fail", str(e), QtWidgets.QMessageBox.Ok) - # TODO: handling double event exceptions - self.view.spinBoxRunF.editingFinished.connect(self.setRunFrequency) - self.getRunFrequency() + self._setFrequency('runclk', self.view.spinBoxRunF, self.view.comboBoxRunF, "Run Frequency Fail", self.getRunFrequency) def getTransceiver(self): self.view.spinBoxTransceiver.editingFinished.disconnect() @@ -260,19 +280,10 @@ class AcquisitionTab(QtWidgets.QWidget): self.getDigital() def getADCFrequency(self): - self.view.spinBoxADCF.editingFinished.disconnect() - self.view.spinBoxADCF.setValue(self.det.adcclk) - self.view.spinBoxADCF.editingFinished.connect(self.setADCFrequency) + self._getFrequency('adcclk', self.view.spinBoxADCF, self.setADCFrequency, self.view.comboBoxADCF) def setADCFrequency(self): - self.view.spinBoxADCF.editingFinished.disconnect() - try: - self.det.adcclk = self.view.spinBoxADCF.value() - except Exception as e: - QtWidgets.QMessageBox.warning(self.mainWindow, "ADC Frequency Fail", str(e), QtWidgets.QMessageBox.Ok) - # TODO: handling double event exceptions - self.view.spinBoxADCF.editingFinished.connect(self.setADCFrequency) - self.getADCFrequency() + self._setFrequency('adcclk', self.view.spinBoxADCF, self.view.comboBoxADCF, "ADC Frequency Fail", self.getADCFrequency) def getADCPhase(self): self.view.spinBoxADCPhase.editingFinished.disconnect() @@ -305,19 +316,10 @@ class AcquisitionTab(QtWidgets.QWidget): self.getADCPipeline() def getDBITFrequency(self): - self.view.spinBoxDBITF.editingFinished.disconnect() - self.view.spinBoxDBITF.setValue(self.det.dbitclk) - self.view.spinBoxDBITF.editingFinished.connect(self.setDBITFrequency) + self._getFrequency('dbitclk', self.view.spinBoxDBITF, self.setDBITFrequency, self.view.comboBoxDBITF) def setDBITFrequency(self): - self.view.spinBoxDBITF.editingFinished.disconnect() - try: - self.det.dbitclk = self.view.spinBoxDBITF.value() - except Exception as e: - QtWidgets.QMessageBox.warning(self.mainWindow, "DBit Frequency Fail", str(e), QtWidgets.QMessageBox.Ok) - # TODO: handling double event exceptions - self.view.spinBoxDBITF.editingFinished.connect(self.setDBITFrequency) - self.getDBITFrequency() + self._setFrequency('dbitclk', self.view.spinBoxDBITF, self.view.comboBoxDBITF, "DBit Frequency Fail", self.getDBITFrequency) def getDBITPhase(self): self.view.spinBoxDBITPhase.editingFinished.disconnect() diff --git a/pyctbgui/pyctbgui/ui/acquisition.ui b/pyctbgui/pyctbgui/ui/acquisition.ui index c2d15dff6..ac36336ed 100644 --- a/pyctbgui/pyctbgui/ui/acquisition.ui +++ b/pyctbgui/pyctbgui/ui/acquisition.ui @@ -36,7 +36,7 @@ - + 0 @@ -45,13 +45,13 @@ - 125 + 120 31 - 125 + 120 31 @@ -61,18 +61,17 @@ QAbstractSpinBox::UpDownArrows + + 3 + - 1000 + 999999999.000000000000000 + + + 1.000000000000000 - 0 - - - - - - - Read Out Mode: + 0.000000000000000 @@ -117,13 +116,67 @@ + + + + Read Out Mode: + + + - Run Clock Frequency (MHz): + Run Clock Frequency: + + + + + 60 + 31 + + + + + 60 + 16777215 + + + + + MHz + + + + + kHz + + + + + Hz + + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 10 + 20 + + + + @@ -152,13 +205,13 @@ - 125 + 185 32 - 125 + 185 32 @@ -210,6 +263,12 @@ 201 + + + 190 + 0 + + QFrame::StyledPanel @@ -217,16 +276,128 @@ QFrame::Sunken - - - + + + + ADC Pipeline: + + + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + - 200 - 0 + 10 + 20 + + + + - DBIT Clock Frequency (MHz): + DBIT Clock Phase (a.u.): + + + + + + + + 0 + 0 + + + + + 120 + 31 + + + + + 120 + 31 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + 999999999.000000000000000 + + + 1.000000000000000 + + + 0.000000000000000 + + + + + + + ADC Clock Phase (a.u.): + + + + + + + DBIT Pipeline: + + + + + + + Digital Samples: + + + + + + + + 0 + 0 + + + + + 120 + 31 + + + + + 120 + 31 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 3 + + + 999999999.000000000000000 + + + 1.000000000000000 + + + 0.000000000000000 @@ -245,213 +416,7 @@ - ADC Clock Frequency (MHz): - - - - - - - - 0 - 0 - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 9999 - - - - - - - DBIT Pipeline: - - - - - - - - 0 - 0 - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 1000 - - - - - - - - 0 - 0 - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - ADC Pipeline: - - - - - - - ADC Clock Phase (a.u.): - - - - - - - DBIT Clock Phase (a.u.): - - - - - - - Qt::Horizontal - - - QSizePolicy::Expanding - - - - 10 - 20 - - - - - - - - - 0 - 0 - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 1000 - - - - - - - - 0 - 0 - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 0 - 0 - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 9999 + ADC Clock Frequency: @@ -462,7 +427,51 @@ - + + + + + 200 + 0 + + + + DBIT Clock Frequency: + + + + + + + + 60 + 31 + + + + + 60 + 16777215 + + + + + MHz + + + + + kHz + + + + + Hz + + + + + @@ -472,13 +481,13 @@ - 125 + 185 32 - 125 + 185 32 @@ -493,14 +502,60 @@ - - - - Digital Samples: + + + + + 0 + 0 + + + + + 185 + 31 + + + + + 185 + 31 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 9999 - + + + + + 0 + 0 + + + + + 185 + 31 + + + + + 185 + 31 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + @@ -510,13 +565,13 @@ - 125 + 185 32 - 125 + 185 32 @@ -534,6 +589,90 @@ + + + + + 0 + 0 + + + + + 185 + 31 + + + + + 185 + 31 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + 9999 + + + + + + + + 0 + 0 + + + + + 185 + 31 + + + + + 185 + 31 + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 60 + 31 + + + + + 60 + 16777215 + + + + + MHz + + + + + kHz + + + + + Hz + + + + diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 13e6abb3d..ffec1ac60 100755 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -13,6 +13,7 @@ pybind11_add_module(_slsdet src/DurationWrapper.cpp src/pedestal.cpp src/bit.cpp + src/frequency.cpp ) target_link_libraries(_slsdet PUBLIC diff --git a/python/slsdet/__init__.py b/python/slsdet/__init__.py index 753267d81..f08e8acab 100755 --- a/python/slsdet/__init__.py +++ b/python/slsdet/__init__.py @@ -34,6 +34,9 @@ scanParameters = _slsdet.scanParameters currentSrcParameters = _slsdet.currentSrcParameters DurationWrapper = _slsdet.DurationWrapper pedestalParameters = _slsdet.pedestalParameters +Hz = _slsdet.Hz +kHz = _slsdet.kHz +MHz = _slsdet.MHz import os def read_version(): diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index eeed02b79..56e29800f 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -14,11 +14,12 @@ powerIndex = slsDetectorDefs.powerIndex detectorType = slsDetectorDefs.detectorType streamingInterface = slsDetectorDefs.streamingInterface + defs = slsDetectorDefs from .utils import element_if_equal, all_equal, get_set_bits, list_to_bitmask from .utils import Geometry, to_geo, element, reduce_time, is_iterable, hostname_list -from ._slsdet import xy, freeSharedMemory, getUserDetails +from ._slsdet import xy, Hz, freeSharedMemory, getUserDetails from .gaincaps import Mythen3GainCapsWrapper from . import utils as ut from .proxy import JsonProxy, ClkDivProxy, MaxPhaseProxy, ClkFreqProxy, PatLoopProxy, PatNLoopProxy, PatWaitProxy, PatWaitTimeProxy @@ -3441,15 +3442,21 @@ class Detector(CppDetectorApi): @element def runclk(self): """ - [Ctb] Sets Run clock frequency in MHz. \n - [Xilinx Ctb] Sets Run clock frequency in kHz. - """ + [Ctb][Xilinx Ctb] Sets Run clock frequency. + Example + -------- + >>> d.runclk + >>> 10MHz + >>> d.runclk = MHz(5) + >>> d.runclk = Hz(5 * 1000 * 1000) + >>> d.runclk = kHz(2000) + """ return self.getRUNClock() @runclk.setter def runclk(self, freq): - ut.set_using_dict(self.setRUNClock, freq) + ut.set_using_dict(self.setRUNClock, freq) @property @element @@ -3526,10 +3533,16 @@ class Detector(CppDetectorApi): @element def dbitclk(self): """ - [Ctb] Sets clock for latching the digital bits in MHz. \n - [Xilinx Ctb] clock for latching the digital bits in kHz. - """ + [Ctb][Xilinx Ctb] Sets clock for latching the digital bits. + Example + -------- + >>> d.dbitclk + >>> 10MHz + >>> d.dbitclk = MHz(5) + >>> d.dbitclk = Hz(5 * 1000 * 1000) + >>> d.dbitclk = kHz(2000) + """ return self.getDBITClock() @dbitclk.setter @@ -3657,10 +3670,16 @@ class Detector(CppDetectorApi): @element def adcclk(self): """ - [Ctb] Sets ADC clock frequency in MHz. \n - [Xilinx Ctb] Sets ADC clock frequency in kHz. - """ + [Ctb][Xilinx Ctb] Sets ADC clock frequency. + Example + -------- + >>> d.adcclk + >>> 10MHz + >>> d.adcclk = MHz(5) + >>> d.adcclk = Hz(5 * 1000 * 1000) + >>> d.adcclk = kHz(2000) + """ return self.getADCClock() @adcclk.setter @@ -3671,7 +3690,7 @@ class Detector(CppDetectorApi): @element def syncclk(self): """ - [Ctb] Sync clock in MHz. + [Ctb] Sync clock. :setter: Not implemented """ @@ -3704,7 +3723,7 @@ class Detector(CppDetectorApi): [Ctb][Mythen3][Xilinx Ctb] Gets the pattern file name including path of the last pattern uploaded. Returns an empty if nothing was uploaded or via a server default file """ - return self.getPatterFileName() + return self.getPatternFileName() def patternstart(self): """[Ctb][Mythen3][Xilinx Ctb] Starts pattern. """ diff --git a/python/src/detector.cpp b/python/src/detector.cpp index 3d2b3a049..ff14eaafa 100644 --- a/python/src/detector.cpp +++ b/python/src/detector.cpp @@ -1529,23 +1529,31 @@ void init_det(py::module &m) { Detector::setNumberOfAnalogSamples, py::arg(), py::arg() = Positions{}); CppDetectorApi.def("getADCClock", - (Result(Detector::*)(sls::Positions) const) & + (Result(Detector::*)(sls::Positions) const) & Detector::getADCClock, py::arg() = Positions{}); CppDetectorApi.def("setADCClock", - (void (Detector::*)(int, sls::Positions)) & + (void (Detector::*)(defs::Hz, sls::Positions)) & Detector::setADCClock, py::arg(), py::arg() = Positions{}); CppDetectorApi.def("getRUNClock", - (Result(Detector::*)(sls::Positions) const) & + (Result(Detector::*)(sls::Positions) const) & Detector::getRUNClock, py::arg() = Positions{}); CppDetectorApi.def("setRUNClock", - (void (Detector::*)(int, sls::Positions)) & + (void (Detector::*)(defs::Hz, sls::Positions)) & Detector::setRUNClock, py::arg(), py::arg() = Positions{}); + CppDetectorApi.def("getDBITClock", + (Result(Detector::*)(sls::Positions) const) & + Detector::getDBITClock, + py::arg() = Positions{}); + CppDetectorApi.def("setDBITClock", + (void (Detector::*)(defs::Hz, sls::Positions)) & + Detector::setDBITClock, + py::arg(), py::arg() = Positions{}); CppDetectorApi.def("getSYNCClock", - (Result(Detector::*)(sls::Positions) const) & + (Result(Detector::*)(sls::Positions) const) & Detector::getSYNCClock, py::arg() = Positions{}); CppDetectorApi.def("getPowerList", @@ -1646,14 +1654,6 @@ void init_det(py::module &m) { (void (Detector::*)(defs::readoutMode, sls::Positions)) & Detector::setReadoutMode, py::arg(), py::arg() = Positions{}); - CppDetectorApi.def("getDBITClock", - (Result(Detector::*)(sls::Positions) const) & - Detector::getDBITClock, - py::arg() = Positions{}); - CppDetectorApi.def("setDBITClock", - (void (Detector::*)(int, sls::Positions)) & - Detector::setDBITClock, - py::arg(), py::arg() = Positions{}); CppDetectorApi.def("getExternalSamplingSource", (Result(Detector::*)(sls::Positions) const) & Detector::getExternalSamplingSource, @@ -1891,9 +1891,9 @@ void init_det(py::module &m) { Detector::configureTransceiver, py::arg() = Positions{}); CppDetectorApi.def( - "getPatterFileName", + "getPatternFileName", (Result(Detector::*)(sls::Positions) const) & - Detector::getPatterFileName, + Detector::getPatternFileName, py::arg() = Positions{}); CppDetectorApi.def( "setPattern", diff --git a/python/src/frequency.cpp b/python/src/frequency.cpp new file mode 100644 index 000000000..ff08cf878 --- /dev/null +++ b/python/src/frequency.cpp @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: LGPL-3.0-or-other +// Copyright (C) 2021 Contributors to the SLS Detector Package +/* +This file contains Python bindings for the Hz and for conversion to other units from and to string. +*/ +#include "py_headers.h" +#include + +#include "sls/ToString.h" +#include "sls/sls_detector_defs.h" + +namespace py = pybind11; + +constexpr double kHz = 1e3; +constexpr double MHz = 1e6; + +void init_freq(py::module &m) { + + py::class_ Hz(m, "Hz"); + Hz.def(py::init()); + Hz.def_readwrite("value", &slsDetectorDefs::Hz::value); + Hz.def("__repr__", [](const slsDetectorDefs::Hz &f) { + return sls::ToString(f); + }); + Hz.def("__str__", [](const slsDetectorDefs::Hz &f) { + return sls::ToString(f); + }); + + Hz.def(py::self == py::self); + Hz.def("__mul__", [](const slsDetectorDefs::Hz &h, int x) { + return slsDetectorDefs::Hz(h.value * x); + }, py::is_operator()); + Hz.def("__rmul__", [](const slsDetectorDefs::Hz &h, int x) { + return slsDetectorDefs::Hz(h.value * x); + }, py::is_operator()); + Hz.def("__truediv__", [](const slsDetectorDefs::Hz &h, int x) { + return slsDetectorDefs::Hz(h.value / x); + }, py::is_operator()); + Hz.def("__add__", [](const slsDetectorDefs::Hz &a, + const slsDetectorDefs::Hz &b) { + return slsDetectorDefs::Hz(a.value + b.value); + }, py::is_operator()); + Hz.def("__sub__", [](const slsDetectorDefs::Hz &a, + const slsDetectorDefs::Hz &b) { + return slsDetectorDefs::Hz(a.value - b.value); + }, py::is_operator()); + + m.def("kHz", [](double v) { + return slsDetectorDefs::Hz(static_cast(std::round(v * kHz))); + }); + + m.def("MHz", [](double v) { + return slsDetectorDefs::Hz(static_cast(std::round(v * MHz))); + }); +} \ No newline at end of file diff --git a/python/src/main.cpp b/python/src/main.cpp index 214f2b81c..6bc583cbd 100644 --- a/python/src/main.cpp +++ b/python/src/main.cpp @@ -21,6 +21,7 @@ void init_source(py::module &); void init_duration(py::module &); void init_pedestal(py::module &); void init_bit(py::module &); +void init_freq(py::module &); PYBIND11_MODULE(_slsdet, m) { m.doc() = R"pbdoc( @@ -42,6 +43,7 @@ PYBIND11_MODULE(_slsdet, m) { init_duration(m); init_pedestal(m); init_bit(m); + init_freq(m); // init_experimental(m); py::module io = m.def_submodule("io", "Submodule for io"); diff --git a/python/tests/test_det_api.py b/python/tests/test_det_api.py index e8d89560b..7bf942e22 100644 --- a/python/tests/test_det_api.py +++ b/python/tests/test_det_api.py @@ -396,6 +396,193 @@ def test_patternstart(session_simulator, request): Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed") + +@pytest.mark.detectorintegration +def test_runclk(session_simulator, request): + """ Test using runclk for ctb and xilinx_ctb.""" + det_type, num_interfaces, num_mods, d = session_simulator + assert d is not None + + from slsdet import Hz, MHz, kHz + + if det_type in ['ctb', 'xilinx_ctb']: + prev_runclk = d.getRUNClock() + + d.runclk + + # invalid value type + with pytest.raises(Exception) as exc_info: + d.runclk = 5e6 + + with pytest.raises(Exception) as exc_info: + d.runclk = 5 * 1000 * 1000 + + with pytest.raises(Exception) as exc_info: + d.runclk = Hz(5e6) + + d.runclk = MHz(15) + assert d.runclk.value == 15_000_000 + + d.runclk = MHz(14.5) + assert d.runclk.value == 14_500_000 + + d.runclk = kHz(15000.5) + assert d.runclk.value == 15_000_500 + + # invalid values from server + # max is 300MHz + with pytest.raises(Exception) as exc_info: + d.runclk = MHz(301) + + # min is 2MHz for ctb and 10MHz for xilinx_ctb + if det_type == 'ctb': + with pytest.raises(Exception) as exc_info: + d.runclk = MHz(1) + else: + with pytest.raises(Exception) as exc_info: + d.runclk = MHz(9) + + c = MHz(2) + for rc in [5, 10, 15, 20]: + d.runclk = rc * c + assert d.runclk.value == 40_000_000 + + for i in range(len(d)): + d.setRUNClock(prev_runclk[i], [i]) + + Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed") + + +@pytest.mark.detectorintegration +def test_adcclk(session_simulator, request): + """ Test using adcclk for ctb and xilinx_ctb.""" + det_type, num_interfaces, num_mods, d = session_simulator + assert d is not None + + from slsdet import Hz, MHz, kHz + + if det_type in ['ctb', 'xilinx_ctb']: + prev_adcclk = d.getADCClock() + + d.adcclk + + # invalid value type + with pytest.raises(Exception) as exc_info: + d.adcclk = 5e6 + + with pytest.raises(Exception) as exc_info: + d.adcclk = 5 * 1000 * 1000 + + with pytest.raises(Exception) as exc_info: + d.adcclk = Hz(5e6) + + d.adcclk = MHz(15) + assert d.adcclk.value == 15_000_000 + + d.adcclk = MHz(14.5) + assert d.adcclk.value == 14_500_000 + + d.adcclk = kHz(15000.5) + assert d.adcclk.value == 15_000_500 + + # invalid values from server + # max is 300MHz for xilinx and 54 MHz for ctb + if det_type == 'ctb': + with pytest.raises(Exception) as exc_info: + d.adcclk = MHz(66) + else: + with pytest.raises(Exception) as exc_info: + d.adcclk = MHz(301) + + # min is 2MHz for ctb and 10MHz for xilinx_ctb + if det_type == 'ctb': + with pytest.raises(Exception) as exc_info: + d.adcclk = MHz(1) + else: + with pytest.raises(Exception) as exc_info: + d.adcclk = MHz(9) + + c = MHz(2) + for rc in [5, 10, 15, 20]: + d.adcclk = rc * c + assert d.adcclk.value == 40_000_000 + + for i in range(len(d)): + d.setADCClock(prev_adcclk[i], [i]) + + Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed") + + +@pytest.mark.detectorintegration +def test_dbitclk(session_simulator, request): + """ Test using dbitclk for ctb and xilinx_ctb.""" + det_type, num_interfaces, num_mods, d = session_simulator + assert d is not None + + from slsdet import Hz, MHz, kHz + + if det_type in ['ctb', 'xilinx_ctb']: + prev_dbitclk = d.getDBITClock() + + d.dbitclk + + # invalid value type + with pytest.raises(Exception) as exc_info: + d.dbitclk = 5e6 + + with pytest.raises(Exception) as exc_info: + d.dbitclk = 5 * 1000 * 1000 + + with pytest.raises(Exception) as exc_info: + d.dbitclk = Hz(5e6) + + d.dbitclk = MHz(15) + assert d.dbitclk.value == 15_000_000 + + d.dbitclk = MHz(14.5) + assert d.dbitclk.value == 14_500_000 + + d.dbitclk = kHz(15000.5) + assert d.dbitclk.value == 15_000_500 + + # invalid values from server + # max is 300MHz + with pytest.raises(Exception) as exc_info: + d.dbitclk = MHz(301) + + # min is 2MHz for ctb and 10MHz for xilinx_ctb + if det_type == 'ctb': + with pytest.raises(Exception) as exc_info: + d.dbitclk = MHz(1) + else: + with pytest.raises(Exception) as exc_info: + d.dbitclk = MHz(9) + + c = MHz(2) + for rc in [5, 10, 15, 20]: + d.dbitclk = rc * c + assert d.dbitclk.value == 40_000_000 + + for i in range(len(d)): + d.setDBITClock(prev_dbitclk[i], [i]) + + Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed") + + + +@pytest.mark.detectorintegration +def test_syncclk(session_simulator, request): + """ Test using syncclk for ctb.""" + det_type, num_interfaces, num_mods, d = session_simulator + assert d is not None + + if det_type in ['ctb']: + d.syncclk + + Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed") + + + @pytest.mark.detectorintegration def test_v_limit(session_simulator, request): """Test v_limit.""" @@ -715,3 +902,4 @@ def test_dac(session_simulator, request): Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed") + diff --git a/python/tests/test_freq.py b/python/tests/test_freq.py new file mode 100644 index 000000000..c4e8b216e --- /dev/null +++ b/python/tests/test_freq.py @@ -0,0 +1,48 @@ +from slsdet import Hz, MHz, kHz + +def test_Hz(): + f = Hz(1) + assert f.value == 1 + f = Hz(1 * 1000) + assert f.value == 1000 + f = MHz(5) + assert f.value == 5_000_000 + f = MHz(0.5) + assert f.value == 500_000 + f = kHz(2.5) + assert f.value == 2500 + f = kHz(5000) + assert f.value == 5_000_000 + +def test_rounding_exact(): + f = MHz(1.234) + assert f.value == round(1_234_000) + + +def test_mul(): + c = MHz(1) + assert (c * 2).value == 2_000_000 + assert (c * 4).value == 4_000_000 + + +def test_rmul(): + c = MHz(1) + assert (2 * c).value == 2_000_000 + assert (4 * c).value == 4_000_000 + + c = c * 2 + assert c.value == 2_000_000 + + for rc in [1, 2, 4, 8]: + c = rc * c + assert c.value == 128_000_000 + + +def test_div(): + c = MHz(1) + assert (c / 2).value == 500_000 + +def test_eq(): + assert MHz(1) == MHz(1) + assert MHz(1) != MHz(2) + assert MHz(1) == kHz(1000) \ No newline at end of file diff --git a/slsDetectorServers/ctbDetectorServer/RegisterDefs.h b/slsDetectorServers/ctbDetectorServer/RegisterDefs.h index 02a35dd1e..333f367b6 100644 --- a/slsDetectorServers/ctbDetectorServer/RegisterDefs.h +++ b/slsDetectorServers/ctbDetectorServer/RegisterDefs.h @@ -628,11 +628,14 @@ #define ADC_SLOW_CTRL_DONE_OFST (1) #define ADC_SLOW_CTRL_DONE_MSK (0x00000001 << ADC_SLOW_CTRL_DONE_OFST) +/* Clock Measurement base reg */ +#define PLL_FREQ_MEASURE_REG (0x44 << MEM_MAP_SHIFT) + /* SPI */ #define SPI_CTRL_REG (0x48 << MEM_MAP_SHIFT) - #define SPI_CTRL_RX_EMPTY_BIT 2 - #define SPI_CTRL_CHIPSELECT_BIT 4 - #define SPI_CTRL_NBIT_OFST 16 +#define SPI_CTRL_RX_EMPTY_BIT 2 +#define SPI_CTRL_CHIPSELECT_BIT 4 +#define SPI_CTRL_NBIT_OFST 16 #define SPI_WRITEDATA_REG (0x49 << MEM_MAP_SHIFT) #define SPI_READDATA_REG (0x4A << MEM_MAP_SHIFT) diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index 0d314ffb447f52e6fea7abdc3945013290f5b439..b717a96dd041f9c0fa5976cd5dd72a4eab01721b 100755 GIT binary patch literal 333120 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%0D-XikV+lus7mVSE?`RcilcCqy9i_A#xLwX-e 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 Ue9P5QK7gr2^t7Cw&PT=n4{B>r*8l(j literal 352864 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 TkbMu?_mF)L?WA#{ocjL<;rS!k diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c index 2cca46fb4..4f8ec83ae 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c @@ -13,6 +13,7 @@ #include "communication_funcs_UDP.h" #include "loadPattern.h" +#include #include #include #include @@ -65,7 +66,7 @@ uint8_t adcEnableMask_10g = 0xFF; uint32_t transceiverMask = DEFAULT_TRANSCEIVER_MASK; int32_t clkPhase[NUM_CLOCKS] = {}; -uint32_t clkFrequency[NUM_CLOCKS] = {40, 20, 20, 200}; +uint32_t clkFrequency[NUM_CLOCKS] = {}; int dacValues[NDAC_ONLY] = {}; int powerValues[NPWR] = {}; // powerIndex (A->IO, Chip) @@ -557,7 +558,7 @@ void setupDetector() { ALTERA_PLL_SetDefines(PLL_CNTRL_REG, PLL_PARAM_REG, PLL_CNTRL_RCNFG_PRMTR_RST_MSK, PLL_CNTRL_WR_PRMTR_MSK, PLL_CNTRL_PLL_RST_MSK, PLL_CNTRL_ADDR_MSK, - PLL_CNTRL_ADDR_OFST); + PLL_CNTRL_ADDR_OFST, PLL_FREQ_MEASURE_REG); ALTERA_PLL_ResetPLLAndReconfiguration(); resetCore(); @@ -632,10 +633,16 @@ void setupDetector() { DEFAULT_NUM_SAMPLES); // update databytes and allocate ram setNumTransceiverSamples(DEFAULT_NUM_SAMPLES); setNumFrames(DEFAULT_NUM_FRAMES); - setExpTime(DEFAULT_EXPTIME); + initError = setExpTime(DEFAULT_EXPTIME, initErrorMessage); + if (initError == FAIL) + return; setNumTriggers(DEFAULT_NUM_CYCLES); - setPeriod(DEFAULT_PERIOD); - setDelayAfterTrigger(DEFAULT_DELAY); + initError = setPeriod(DEFAULT_PERIOD, initErrorMessage); + if (initError == FAIL) + return; + initError = setDelayAfterTrigger(DEFAULT_DELAY, initErrorMessage); + if (initError == FAIL) + return; setTiming(DEFAULT_TIMING_MODE); setADCEnableMask(BIT32_MSK); setADCEnableMask_10G(BIT32_MSK); @@ -1134,64 +1141,132 @@ int setNumTransceiverSamples(int val) { int getNumTransceiverSamples() { return ntSamples; } -int setExpTime(int64_t val) { +int setExpTime(int64_t val, char *mess) { setPatternWaitInterval(0, val); - // validate for tolerance - int64_t retval = getExpTime(); + // validate + uint64_t arg_clocks = ns_to_clocks(val, clkFrequency[RUN_CLK]); + uint64_t retval_clocks = getPatternWaitClocks(0); + if (arg_clocks != retval_clocks) { + sprintf(mess, + "Failed to set exposure time. Could not set number of clocks " + "to %lld, read %lld\n", + (long long int)arg_clocks, (long long int)retval_clocks); + LOG(logERROR, (mess)); + return FAIL; + } + + // log rounding if any + int64_t retval = getPatternWaitInterval(0); if (val != retval) { + LOG(logWARNING, ("Rounding to %lld ns due to clock frequency\n", + (long long int)retval)); + } + + return OK; +} + +int getExpTime(int64_t *retval, char *mess) { + *retval = getPatternWaitInterval(0); + if (*retval == -1) { + sprintf(mess, "Failed to get exposure time.\n"); + LOG(logERROR, (mess)); return FAIL; } return OK; } -int64_t getExpTime() { return getPatternWaitInterval(0); } - -int setPeriod(int64_t val) { +int setPeriod(int64_t val, char *mess) { if (val < 0) { - LOG(logERROR, ("Invalid period: %lld ns\n", (long long int)val)); + sprintf(mess, "Invalid period: %lld ns\n", (long long int)val); + LOG(logERROR, (mess)); return FAIL; } LOG(logINFO, ("Setting period %lld ns\n", (long long int)val)); - val *= (1E-3 * clkFrequency[SYNC_CLK]); - set64BitReg(val, PERIOD_LSB_REG, PERIOD_MSB_REG); + uint64_t arg_clocks = ns_to_clocks(val, clkFrequency[SYNC_CLK]); + set64BitReg(arg_clocks, PERIOD_LSB_REG, PERIOD_MSB_REG); - // validate for tolerance - int64_t retval = getPeriod(); - val /= (1E-3 * clkFrequency[SYNC_CLK]); - if (val != retval) { + // validate + uint64_t retval_clocks = get64BitReg(PERIOD_LSB_REG, PERIOD_MSB_REG); + if (arg_clocks != retval_clocks) { + sprintf(mess, + "Failed to set period. Could not set number of clocks " + "to %lld, red %lld\n", + (long long int)arg_clocks, (long long int)retval_clocks); + LOG(logERROR, (mess)); return FAIL; } + + // log rounding if any + int64_t retval = 0; + if (getPeriod(&retval, mess) == FAIL) { + return FAIL; + } + if (val != retval) { + LOG(logWARNING, ("Rounding to %lld ns due to clock frequency\n", + (long long int)retval)); + } + return OK; } -int64_t getPeriod() { - return get64BitReg(PERIOD_LSB_REG, PERIOD_MSB_REG) / - (1E-3 * clkFrequency[SYNC_CLK]); +int getPeriod(int64_t *retval, char *mess) { + if (clkFrequency[SYNC_CLK] == 0) { + sprintf(mess, "Cannot get period. Sync clock frequency is 0.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + uint64_t numClocks = get64BitReg(PERIOD_LSB_REG, PERIOD_MSB_REG); + *retval = clocks_to_ns(numClocks, clkFrequency[SYNC_CLK]); + return OK; } -int setDelayAfterTrigger(int64_t val) { +int setDelayAfterTrigger(int64_t val, char *mess) { if (val < 0) { - LOG(logERROR, - ("Invalid delay after trigger: %lld ns\n", (long long int)val)); + sprintf(mess, "Invalid delay after trigger: %lld ns\n", + (long long int)val); + LOG(logERROR, (mess)); return FAIL; } LOG(logINFO, ("Setting delay after trigger %lld ns\n", (long long int)val)); - val *= (1E-3 * clkFrequency[SYNC_CLK]); - set64BitReg(val, DELAY_LSB_REG, DELAY_MSB_REG); + uint64_t arg_clocks = ns_to_clocks(val, clkFrequency[SYNC_CLK]); + set64BitReg(arg_clocks, DELAY_LSB_REG, DELAY_MSB_REG); - // validate for tolerance - int64_t retval = getDelayAfterTrigger(); - val /= (1E-3 * clkFrequency[SYNC_CLK]); - if (val != retval) { + // validate + uint64_t retval_clocks = get64BitReg(DELAY_LSB_REG, DELAY_MSB_REG); + if (arg_clocks != retval_clocks) { + sprintf( + mess, + "Failed to set delay after trigger. Could not set number of clocks " + "to %lld, read %lld\n", + (long long int)arg_clocks, (long long int)retval_clocks); + LOG(logERROR, (mess)); return FAIL; } + + // log rounding if any + int64_t retval = 0; + if (getDelayAfterTrigger(&retval, mess) == FAIL) { + return FAIL; + } + if (val != retval) { + LOG(logWARNING, ("Rounding to %lld ns due to clock frequency\n", + (long long int)retval)); + } + return OK; } -int64_t getDelayAfterTrigger() { - return get64BitReg(DELAY_LSB_REG, DELAY_MSB_REG) / - (1E-3 * clkFrequency[SYNC_CLK]); +int getDelayAfterTrigger(int64_t *retval, char *mess) { + if (clkFrequency[SYNC_CLK] == 0) { + sprintf(mess, + "Cannot get delay after trigger. Sync clock frequency is 0.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + uint64_t numClocks = get64BitReg(DELAY_LSB_REG, DELAY_MSB_REG); + *retval = clocks_to_ns(numClocks, clkFrequency[SYNC_CLK]); + return OK; } int64_t getNumFramesLeft() { @@ -1202,14 +1277,27 @@ int64_t getNumTriggersLeft() { return get64BitReg(CYCLES_LEFT_LSB_REG, CYCLES_LEFT_MSB_REG); } -int64_t getDelayAfterTriggerLeft() { - return get64BitReg(DELAY_LEFT_LSB_REG, DELAY_LEFT_MSB_REG) / - (1E-3 * clkFrequency[SYNC_CLK]); +int getDelayAfterTriggerLeft(int64_t *retval, char *mess) { + if (clkFrequency[SYNC_CLK] == 0) { + sprintf(mess, "Cannot get delay after trigger left. Sync clock " + "frequency is 0.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + uint64_t numClocks = get64BitReg(DELAY_LEFT_LSB_REG, DELAY_LEFT_MSB_REG); + *retval = clocks_to_ns(numClocks, clkFrequency[SYNC_CLK]); + return OK; } -int64_t getPeriodLeft() { - return get64BitReg(PERIOD_LEFT_LSB_REG, PERIOD_LEFT_MSB_REG) / - (1E-3 * clkFrequency[SYNC_CLK]); +int getPeriodLeft(int64_t *retval, char *mess) { + if (clkFrequency[SYNC_CLK] == 0) { + sprintf(mess, "Cannot get period left. Sync clock frequency is 0.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + uint64_t numClocks = get64BitReg(PERIOD_LEFT_LSB_REG, PERIOD_LEFT_MSB_REG); + *retval = clocks_to_ns(numClocks, clkFrequency[SYNC_CLK]); + return OK; } int64_t getFramesFromStart() { @@ -1218,13 +1306,14 @@ int64_t getFramesFromStart() { } int64_t getActualTime() { - return get64BitReg(TIME_FROM_START_LSB_REG, TIME_FROM_START_MSB_REG) / - (1E-3 * CLK_FREQ); + // reg in unit of 100ns + return get64BitReg(TIME_FROM_START_LSB_REG, TIME_FROM_START_MSB_REG) * 100; } int64_t getMeasurementTime() { - return get64BitReg(START_FRAME_TIME_LSB_REG, START_FRAME_TIME_MSB_REG) / - (1E-3 * CLK_FREQ); + // reg in unit of 100ns + return get64BitReg(START_FRAME_TIME_LSB_REG, START_FRAME_TIME_MSB_REG) * + 100; } /* parameters - settings */ @@ -2206,13 +2295,12 @@ int getMaxPhase(enum CLKINDEX ind) { LOG(logERROR, ("Unknown clock index %d to get max phase\n", ind)); return -1; } - int ret = ((double)PLL_VCO_FREQ_MHZ / (double)clkFrequency[ind]) * + int ret = ((double)PLL_VCO_FREQ_HZ / (double)clkFrequency[ind]) * MAX_PHASE_SHIFTS_STEPS; char *clock_names[] = {CLK_NAMES}; - LOG(logDEBUG1, - ("Max Phase Shift (%s): %d (Clock: %d MHz, VCO:%d MHz)\n", - clock_names[ind], ret, clkFrequency[ind], PLL_VCO_FREQ_MHZ)); + LOG(logDEBUG1, ("Max Phase Shift (%s): %d (Clock: %d Hz, VCO:%d Hz)\n", + clock_names[ind], ret, clkFrequency[ind], PLL_VCO_FREQ_HZ)); return ret; } @@ -2248,12 +2336,12 @@ int setFrequency(enum CLKINDEX ind, int val) { return FAIL; } char *clock_names[] = {CLK_NAMES}; - LOG(logINFO, ("\tSetting %s clock (%d) frequency to %d MHz\n", + LOG(logINFO, ("\tSetting %s clock (%d) frequency to %d Hz\n", clock_names[ind], ind, val)); // check adc clk too high if (ind == ADC_CLK && val > MAXIMUM_ADC_CLK) { - LOG(logERROR, ("Frequency %d MHz too high for ADC\n", val)); + LOG(logERROR, ("Frequency %d Hz too high for ADC\n", val)); return FAIL; } @@ -2265,8 +2353,8 @@ int setFrequency(enum CLKINDEX ind, int val) { // Calculate and set output frequency clkFrequency[ind] = - ALTERA_PLL_SetOuputFrequency(ind, PLL_VCO_FREQ_MHZ, val); - LOG(logINFO, ("\t%s clock (%d) frequency set to %d MHz\n", clock_names[ind], + ALTERA_PLL_SetOutputFrequency(ind, PLL_VCO_FREQ_HZ, val); + LOG(logINFO, ("\t%s clock (%d) frequency set to %d Hz\n", clock_names[ind], ind, clkFrequency[ind])); // phase reset by pll (when setting output frequency) @@ -2294,6 +2382,17 @@ int getFrequency(enum CLKINDEX ind) { LOG(logERROR, ("Unknown clock index %d to get frequency\n", ind)); return -1; } +#ifndef VIRTUAL + // get the measured frequency from the firmware + int measuredFreqHz = ALTERA_PLL_getFrequency(ind); + + // checking against 0 here ensures compatibility with old firmware, TODO: + // remove this check at some point + if (measuredFreqHz != 0) { + // Round to nearest Hz. (should we round at all ?) + clkFrequency[ind] = measuredFreqHz; + } +#endif return clkFrequency[ind]; } @@ -2507,10 +2606,21 @@ void *start_timer(void *arg) { return NULL; } - int64_t periodNs = getPeriod(); + int64_t periodNs = 0; + int64_t expUs = 0; + { + char mess[MAX_STR_LENGTH] = {0}; + if (getPeriod(&periodNs, mess) == FAIL) { + LOG(logERROR, ("Failed to get period.\n")); + return NULL; + } + if (getExpTime(&expUs, mess) == FAIL) { + LOG(logERROR, ("Failed to get exposure time.\n")); + return NULL; + } + expUs /= 1000; + } int numFrames = (getNumFrames() * getNumTriggers()); - int64_t expUs = getExpTime() / 1000; - int imageSize = dataBytes; int dataSize = UDP_PACKET_DATA_BYTES; int packetSize = sizeof(sls_detector_header) + dataSize; diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h index 3dccdf8c1..e5db4281f 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.h @@ -98,10 +98,10 @@ void setNumFrames(int64_t val); int64_t getNumFrames(); void setNumTriggers(int64_t val); int64_t getNumTriggers(); -int setExpTime(int64_t val); -int64_t getExpTime(); -int setPeriod(int64_t val); -int64_t getPeriod(); +int setExpTime(int64_t val, char *mess); +int getExpTime(int64_t *retval, char *mess); +int setPeriod(int64_t val, char *mess); +int getPeriod(int64_t *retval, char *mess); int setNumAnalogSamples(int val); int getNumAnalogSamples(); int setNumDigitalSamples(int val); @@ -111,10 +111,10 @@ int getNumTransceiverSamples(); int64_t getNumFramesLeft(); int64_t getNumTriggersLeft(); -int setDelayAfterTrigger(int64_t val); -int64_t getDelayAfterTrigger(); -int64_t getDelayAfterTriggerLeft(); -int64_t getPeriodLeft(); +int setDelayAfterTrigger(int64_t val, char *mess); +int getDelayAfterTrigger(int64_t *retval, char *mess); +int getDelayAfterTriggerLeft(int64_t *retval, char *mess); +int getPeriodLeft(int64_t *retval, char *mess); int64_t getFramesFromStart(); int64_t getActualTime(); int64_t getMeasurementTime(); diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h index aeb66b82c..61b59b66a 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h @@ -44,13 +44,16 @@ #define DEFAULT_VLIMIT (0) #define DEFAULT_TIMING_MODE (AUTO_TIMING) #define DEFAULT_TX_UDP_PORT (0x7e9a) -#define DEFAULT_RUN_CLK (200) // 40 -#define DEFAULT_ADC_CLK (40) // 20 -#define DEFAULT_SYNC_CLK (40) // 20 -#define DEFAULT_DBIT_CLK (200) -#define NS_TO_CLK_CYCLE (1E-3) // ns to MHz +#define DEFAULT_RUN_CLK (80000000) // 80 MHz +#define DEFAULT_ADC_CLK (40000000) // 40 MHz +#define DEFAULT_SYNC_CLK (40000000) // 40 MHz +#define DEFAULT_DBIT_CLK (200000000) // 200 MHz +#define NS_TO_CLK_CYCLE (1E-9) // ns to MHz #define DEFAULT_TRANSCEIVER_MASK (0x3) +#define MIN_CLK_FREQ (2000000) // 2 MHz +#define MAX_CLK_FREQ (300000000) // 300 MHz + #define MAX_TRANSCEIVER_MASK (0xF) #define MAX_TRANSCEIVER_SAMPLES (0xFFFF) @@ -89,8 +92,8 @@ #define BIT32_MSK (0xFFFFFFFF) #define BIT16_MASK (0xFFFF) -#define MAXIMUM_ADC_CLK (65) -#define PLL_VCO_FREQ_MHZ (800) +#define MAXIMUM_ADC_CLK (65000000) // 65 MHz +#define PLL_VCO_FREQ_HZ (800000000) // 800MHz /* Struct Definitions */ typedef struct udp_header_struct { diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h index 7c442f7b1..124a058f8 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.h @@ -163,7 +163,6 @@ int setPhase(enum CLKINDEX ind, int val, int degrees); int getPhase(enum CLKINDEX ind, int degrees); int getMaxPhase(enum CLKINDEX ind); int validatePhaseinDegrees(enum CLKINDEX ind, int val, int retval); -// void setFrequency(enum CLKINDEX ind, int val); int getFrequency(enum CLKINDEX ind); int getVCOFrequency(enum CLKINDEX ind); int setReadoutSpeed(int val); diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 490129740bc0cbe28ee9709d790a17dbad650d19..28608b0616d83e06346523c5270c67c6ee18f8cd 100755 GIT binary patch delta 77101 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 // int64_t #include @@ -21,6 +22,19 @@ enum numberMode { DEC, HEX }; enum PROGRAM_INDEX { PROGRAM_FPGA, PROGRAM_KERNEL, PROGRAM_SERVER }; +#define NS_PER_SEC 1000000000ULL +#define HALF_NS_PER_SEC (NS_PER_SEC / 2) +static inline uint64_t ns_to_clocks(uint64_t t, uint32_t freq_hz) { + return (t * (uint64_t)freq_hz + HALF_NS_PER_SEC) / NS_PER_SEC; +} +static inline uint64_t clocks_to_ns(uint64_t clocks, uint32_t freq_hz) { + if (freq_hz == 0) { + LOG(logERROR, ("Frequency is 0, cannot convert clocks to ns\n")); + return (uint64_t)-1; + } + return (clocks * (uint64_t)NS_PER_SEC + freq_hz / 2) / freq_hz; +} + /** * Convert a value from a range to a different range (eg voltage to dac or vice * versa) diff --git a/slsDetectorServers/slsDetectorServer/src/ALTERA_PLL.c b/slsDetectorServers/slsDetectorServer/src/ALTERA_PLL.c index 0bf12e61f..eed289ae5 100644 --- a/slsDetectorServers/slsDetectorServer/src/ALTERA_PLL.c +++ b/slsDetectorServers/slsDetectorServer/src/ALTERA_PLL.c @@ -130,7 +130,8 @@ uint32_t ALTERA_PLL_Cntrl_WrPrmtrMask = 0x0; #if defined(JUNGFRAUD) uint32_t ALTERA_PLL_Cntrl_DBIT_PLL_WrPrmtrMask = 0x0; int ALTERA_PLL_Cntrl_DBIT_ClkIndex = 0; - +#elif defined(CHIPTESTBOARDD) +uint32_t ALTERA_PLL_FREQ_MEASURE_BASE = 0x0; #endif uint32_t ALTERA_PLL_Cntrl_PLLRstMask = 0x0; uint32_t ALTERA_PLL_Cntrl_AddrMask = 0x0; @@ -150,6 +151,19 @@ void ALTERA_PLL_SetDefines(uint32_t creg, uint32_t preg, uint32_t rprmsk, ALTERA_PLL_Cntrl_DBIT_PLL_WrPrmtrMask = wd2msk; ALTERA_PLL_Cntrl_DBIT_ClkIndex = clk2Index; } +#elif defined(CHIPTESTBOARDD) +void ALTERA_PLL_SetDefines(uint32_t creg, uint32_t preg, uint32_t rprmsk, + uint32_t wpmsk, uint32_t prmsk, uint32_t amsk, + int aofst, uint32_t freqreg) { + ALTERA_PLL_Cntrl_Reg = creg; + ALTERA_PLL_Param_Reg = preg; + ALTERA_PLL_Cntrl_RcnfgPrmtrRstMask = rprmsk; + ALTERA_PLL_Cntrl_WrPrmtrMask = wpmsk; + ALTERA_PLL_Cntrl_PLLRstMask = prmsk; + ALTERA_PLL_Cntrl_AddrMask = amsk; + ALTERA_PLL_Cntrl_AddrOfst = aofst; + ALTERA_PLL_FREQ_MEASURE_BASE = freqreg; +} #else void ALTERA_PLL_SetDefines(uint32_t creg, uint32_t preg, uint32_t rprmsk, uint32_t wpmsk, uint32_t prmsk, uint32_t amsk, @@ -269,12 +283,12 @@ void ALTERA_PLL_SetModePolling() { ALTERA_PLL_MODE_PLLNG_MD_VAL, 0); } -int ALTERA_PLL_SetOuputFrequency(int clkIndex, int pllVCOFreqMhz, int value) { - LOG(logDEBUG1, ("C%d: Setting output frequency to %d (pllvcofreq: %dMhz)\n", - clkIndex, value, pllVCOFreqMhz)); +int ALTERA_PLL_SetOutputFrequency(int clkIndex, int pllVCOFreqHz, int value) { + LOG(logDEBUG1, ("C%d: Setting output frequency to %d (pllvcofreq: %dHz)\n", + clkIndex, value, pllVCOFreqHz)); - // calculate output frequency - uint32_t total_div = (float)pllVCOFreqMhz / (float)value; + // calculate output frequency, round to next closest integer division + uint32_t total_div = (pllVCOFreqHz + value / 2) / value; // assume 50% duty cycle uint32_t low_count = total_div / 2; @@ -307,11 +321,24 @@ int ALTERA_PLL_SetOuputFrequency(int clkIndex, int pllVCOFreqMhz, int value) { // as adc clock is stopped temporarily when resetting pll) ALTERA_PLL_ResetPLL(); - /*double temp = ((double)pllVCOFreqMhz / (double)(low_count + high_count)); + /*double temp = ((double)pllVCOFreqHz / (double)(low_count + high_count)); if ((temp - (int)temp) > 0.0001) { temp += 0.5; } return (int)temp; */ + +#if defined(CHIPTESTBOARDD) && !defined(VIRTUAL) + // wait for firmware to measure the actual frequency + usleep(2 * 1000 * 1000); + value = ALTERA_PLL_getFrequency(clkIndex); + LOG(logDEBUG1, ("Frequency is %d\n", value)); +#endif return value; } + +#if defined(CHIPTESTBOARDD) +uint32_t ALTERA_PLL_getFrequency(uint32_t clk_index) { + return bus_r(ALTERA_PLL_FREQ_MEASURE_BASE + clk_index * 2); +} +#endif \ No newline at end of file diff --git a/slsDetectorServers/slsDetectorServer/src/XILINX_PLL.c b/slsDetectorServers/slsDetectorServer/src/XILINX_PLL.c index 8adec26be..09f31df52 100644 --- a/slsDetectorServers/slsDetectorServer/src/XILINX_PLL.c +++ b/slsDetectorServers/slsDetectorServer/src/XILINX_PLL.c @@ -11,9 +11,9 @@ // leave some things away) // clang-format off -#define XILINX_PLL_INPUT_FREQ (100000) // 100 MHz -#define XILINX_PLL_MIN_FREQ (10000) -#define XILINX_PLL_MAX_FREQ (250000) +#define XILINX_PLL_INPUT_FREQ (100000000) // 100 MHz +#define XILINX_PLL_MIN_FREQ (10000000) +#define XILINX_PLL_MAX_FREQ (250000000) #define XILINX_PLL_MAX_CLK_DIV (256) #define XILINX_PLL_NUM_CLKS (7) #define XILINX_PLL_MAX_NUM_CLKS_FOR_GET (3) @@ -71,14 +71,14 @@ // clang-format on -// freq in kHz !! +// freq in Hz !! int XILINX_PLL_setFrequency(uint32_t clk_index, uint32_t freq) { if (clk_index >= XILINX_PLL_NUM_CLKS) { LOG(logERROR, ("XILINX_PLL: Invalid clock index %d\n", clk_index)); return 1; } if (freq < XILINX_PLL_MIN_FREQ || freq > XILINX_PLL_MAX_FREQ) { - LOG(logERROR, ("XILINX_PLL: Frequency %d kHz is out of range\n", freq)); + LOG(logERROR, ("XILINX_PLL: Frequency %d Hz is out of range\n", freq)); return 1; } @@ -160,11 +160,7 @@ uint32_t XILINX_PLL_getFrequency(uint32_t clk_index) { clk_index -= XILINX_PLL_MEASURE_BASE_ADDR0_MAX_CLKS; base_addr = XILINX_PLL_MEASURE_BASE_ADDR1; } - uint32_t addr = base_addr + clk_index * XILINX_PLL_MEASURE_WIDTH; - uint32_t counter_val = bus_r_csp2(addr); - // Hz => round to nearest kHz - uint32_t freq_kHz = (counter_val + 500) / 1000; // round to nearest kHz - return freq_kHz; + return bus_r_csp2(base_addr + clk_index * XILINX_PLL_MEASURE_WIDTH); } bool XILINX_PLL_isLocked() { diff --git a/slsDetectorServers/slsDetectorServer/src/loadPattern.c b/slsDetectorServers/slsDetectorServer/src/loadPattern.c index 929460897..154094b87 100644 --- a/slsDetectorServers/slsDetectorServer/src/loadPattern.c +++ b/slsDetectorServers/slsDetectorServer/src/loadPattern.c @@ -11,7 +11,7 @@ #ifdef MYTHEN3D extern enum TLogLevel trimmingPrint; -extern uint32_t clkDivider[]; +extern int getFrequency(enum CLKINDEX ind); #endif #if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) extern uint32_t clkFrequency[]; @@ -277,6 +277,14 @@ int validate_getPatternWaitClocksAndInterval(char *message, int level, *waittime = getPatternWaitClocks(level); } else { *waittime = getPatternWaitInterval(level); + if (*waittime == (uint64_t)-1) { + sprintf( + message, + "Cannot get pattern wait interval for level %d. runclk is 0.\n", + level); + LOG(logERROR, (message)); + return FAIL; + } } return OK; } @@ -297,17 +305,17 @@ uint64_t getPatternWaitClocks(int level) { uint64_t getPatternWaitInterval(int level) { uint64_t numClocks = getPatternWaitClocks(level); - int runclk = 0; + uint32_t runclk = 0; #if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) runclk = clkFrequency[RUN_CLK]; #elif MYTHEN3D - runclk = clkDivider[SYSTEM_C0]; + runclk = getFrequency(SYSTEM_C0); #endif if (runclk == 0) { LOG(logERROR, ("runclk is 0. Cannot divide by 0. Returning -1.\n")); return -1; } - return numClocks / (NS_TO_CLK_CYCLE * runclk); + return clocks_to_ns(numClocks, runclk); } int validate_setPatternWaitClocksAndInterval(char *message, int level, @@ -321,27 +329,50 @@ int validate_setPatternWaitClocksAndInterval(char *message, int level, return FAIL; } - uint64_t retval = 0; if (clocks) { setPatternWaitClocks(level, waittime); // validate result - retval = getPatternWaitClocks(level); + uint64_t retval = getPatternWaitClocks(level); LOG(logDEBUG1, ("Pattern wait time in clocks (level:%d) retval: %d\n", level, (long long int)retval)); - } else { - setPatternWaitInterval(level, waittime); - // validate result - retval = getPatternWaitInterval(level); - LOG(logDEBUG1, ("Pattern wait time (level:%d) retval: %d\n", level, - (long long int)retval)); + + int ret = OK; + char mode[128]; + memset(mode, 0, sizeof(mode)); + sprintf(mode, "set pattern Loop %d wait time (clocks)", level); + validate64(&ret, message, waittime, retval, mode, DEC); + return ret; } - int ret = OK; - char mode[128]; - memset(mode, 0, sizeof(mode)); - sprintf(mode, "set pattern Loop %d wait time", level); - validate64(&ret, message, waittime, retval, mode, DEC); - return ret; + // interval + setPatternWaitInterval(level, waittime); + + // validate + uint32_t runclk = 0; +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + runclk = clkFrequency[RUN_CLK]; +#elif MYTHEN3D + runclk = getFrequency(SYSTEM_C0); +#endif + uint64_t arg_clocks = ns_to_clocks(waittime, runclk); + uint64_t retval_clocks = getPatternWaitClocks(level); + if (arg_clocks != retval_clocks) { + sprintf(message, + "Failed to set pattern loop %d wait interval. Could not set " + "number of clocks to %lld, read %lld\n", + level, (long long int)arg_clocks, (long long int)retval_clocks); + LOG(logERROR, (message)); + return FAIL; + } + + // log rounding if any + uint64_t retval = getPatternWaitInterval(level); + if (waittime != retval) { + LOG(logWARNING, ("Rounding to %lld ns due to clock frequency\n", + (long long int)retval)); + } + + return OK; } void setPatternWaitClocks(int level, uint64_t t) { @@ -375,13 +406,13 @@ void setPatternWaitInterval(int level, uint64_t t) { #endif ("Setting Pattern Wait Time (level:%d) :%lld ns\n", level, (long long int)t)); - int runclk = 0; + uint32_t runclk = 0; #if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) runclk = clkFrequency[RUN_CLK]; #elif MYTHEN3D - runclk = clkDivider[SYSTEM_C0]; + runclk = getFrequency(SYSTEM_C0); #endif - uint64_t numClocks = t * (NS_TO_CLK_CYCLE * runclk); + uint64_t numClocks = ns_to_clocks(t, runclk); setPatternWaitClocks(level, numClocks); } diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 755f78104..f4d9d930f 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -2402,7 +2402,11 @@ int get_exptime(int file_des) { "for this detector\n"); LOG(logERROR, (mess)); } else { +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + ret = getExpTime(&retval, mess); +#else retval = getExpTime(); +#endif LOG(logDEBUG1, ("retval exptime %lld ns\n", (long long int)retval)); } #endif @@ -2472,6 +2476,9 @@ int set_exptime(int file_des) { "for this detector\n"); LOG(logERROR, (mess)); } else { +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + ret = setExpTime(val, mess); +#else ret = setExpTime(val); int64_t retval = getExpTime(); LOG(logDEBUG1, ("retval exptime %lld ns\n", (long long int)retval)); @@ -2482,6 +2489,7 @@ int set_exptime(int file_des) { (long long int)val, (long long int)retval); LOG(logERROR, (mess)); } +#endif } #endif } @@ -2494,7 +2502,11 @@ int get_period(int file_des) { int64_t retval = -1; // get only +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + ret = getPeriod(&retval, mess); +#else retval = getPeriod(); +#endif LOG(logDEBUG1, ("retval period %lld ns\n", (long long int)retval)); return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); } @@ -2510,6 +2522,9 @@ int set_period(int file_des) { // only set if (Server_VerifyLock() == OK) { +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + ret = setPeriod(arg, mess); +#else ret = setPeriod(arg); int64_t retval = getPeriod(); LOG(logDEBUG1, ("retval period %lld ns\n", (long long int)retval)); @@ -2518,6 +2533,7 @@ int set_period(int file_des) { (long long int)arg, (long long int)retval); LOG(logERROR, (mess)); } +#endif } return Server_SendResult(file_des, INT64, NULL, 0); } @@ -2533,7 +2549,11 @@ int get_delay_after_trigger(int file_des) { functionNotImplemented(); #else // get only +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + ret = getDelayAfterTrigger(&retval, mess); +#else retval = getDelayAfterTrigger(); +#endif LOG(logDEBUG1, ("retval delay after trigger %lld ns\n", (long long int)retval)); #endif @@ -2557,6 +2577,9 @@ int set_delay_after_trigger(int file_des) { #else // only set if (Server_VerifyLock() == OK) { +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + ret = setDelayAfterTrigger(arg, mess); +#else ret = setDelayAfterTrigger(arg); int64_t retval = getDelayAfterTrigger(); LOG(logDEBUG1, @@ -2568,6 +2591,7 @@ int set_delay_after_trigger(int file_des) { (long long int)arg, (long long int)retval); LOG(logERROR, (mess)); } +#endif } #endif return Server_SendResult(file_des, INT64, NULL, 0); @@ -2802,7 +2826,11 @@ int get_period_left(int file_des) { functionNotImplemented(); #else // get only +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + ret = getPeriodLeft(&retval, mess); +#else retval = getPeriodLeft(); +#endif LOG(logDEBUG1, ("retval period left %lld ns\n", (long long int)retval)); #endif return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); @@ -2819,7 +2847,11 @@ int get_delay_after_trigger_left(int file_des) { functionNotImplemented(); #else // get only +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + ret = getDelayAfterTriggerLeft(&retval, mess); +#else retval = getDelayAfterTriggerLeft(); +#endif LOG(logDEBUG1, ("retval delay after trigger left %lld ns\n", (long long int)retval)); #endif @@ -3306,10 +3338,6 @@ int set_pattern_wait_clocks(int file_des) { if (ret == OK) { ret = validate_getPatternWaitClocksAndInterval(mess, loopLevel, &retval, 1); - if ((int64_t)timeval != GET_FLAG) { - validate64(&ret, mess, (int64_t)timeval, retval, - "set pattern wait clocks", DEC); - } } } #endif @@ -5693,11 +5721,9 @@ int set_clock_frequency(int file_des) { case ADC_CLOCK: c = ADC_CLK; break; -#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) case DBIT_CLOCK: c = DBIT_CLK; break; -#endif case RUN_CLOCK: c = RUN_CLK; break; @@ -5718,26 +5744,38 @@ int set_clock_frequency(int file_des) { (int)c); if (getFrequency(c) == val) { - LOG(logINFO, ("Same %s: %d %s\n", modeName, val, - myDetectorType == GOTTHARD2 ? "Hz" : "MHz")); - } else { + LOG(logINFO, ("Same %s: %d %s\n", modeName, val, "Hz")); + } else if (val < MIN_CLK_FREQ || val > MAX_CLK_FREQ) { + ret = FAIL; + sprintf(mess, + "Cannot set frequency to %f MHz. Frequency outside " + "limits (%f - %f MHz)\n", + val / 1e6, MIN_CLK_FREQ / 1e6, MAX_CLK_FREQ / 1e6); + LOG(logERROR, (mess)); + } +#ifdef CHIPTESTBOARDD + else if (ind == ADC_CLOCK && (val > MAXIMUM_ADC_CLK)) { + ret = FAIL; + sprintf(mess, + "Cannot set ADC clock frequency to %f MHz. Frequency " + "outside limits (<= %f MHz)\n", + val / 1e6, MAXIMUM_ADC_CLK / 1e6); + LOG(logERROR, (mess)); + } +#endif + else { int ret = setFrequency(c, val); if (ret == FAIL) { - sprintf(mess, "Could not set %s to %d %s\n", modeName, val, - myDetectorType == XILINX_CHIPTESTBOARD ? "kHz" - : "MHz"); + sprintf(mess, "Could not set %s to %f MHz\n", modeName, + val / 1e6); LOG(logERROR, (mess)); } else { int retval = getFrequency(c); LOG(logDEBUG1, - ("retval %s: %d %s\n", modeName, retval, - myDetectorType == XILINX_CHIPTESTBOARD ? "kHz" - : "MHz")); -#if !defined(XILINX_CHIPTESTBOARDD) - // XCTB will give the actual frequency, which is not + ("retval %s: %f MHz\n", modeName, retval / 1e6)); + // both CTB's will give the actual frequency, which is not // 100% identical to the set frequency validate(&ret, mess, val, retval, modeName, DEC); -#endif } } } @@ -5790,14 +5828,8 @@ int get_clock_frequency(int file_des) { if (ret == OK) { retval = getFrequency(c); char *clock_names[] = {CLK_NAMES}; - LOG(logDEBUG1, - ("retval %s clock (%d) frequency: %d %s\n", clock_names[c], (int)c, - retval, - myDetectorType == XILINX_CHIPTESTBOARD - ? "kHz" - : (myDetectorType == GOTTHARD2 || myDetectorType == MYTHEN3 - ? "Hz" - : "MHz"))); + LOG(logDEBUG1, ("retval %s clock (%d) frequency: %d %s\n", + clock_names[c], (int)c, retval, "Hz")); } #endif return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); @@ -7029,6 +7061,11 @@ int get_receiver_parameters(int file_des) { // exptime #ifdef MYTHEN3D i64 = 0; +#elif defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + if (getExpTime(&i64, mess) == FAIL) { + sprintf(mess, "Could not get exposure time.\n"); + return sendError(file_des); + } #else i64 = getExpTime(); #endif @@ -7037,7 +7074,15 @@ int get_receiver_parameters(int file_des) { return printSocketReadError(); // period + i64 = 0; +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + if (getPeriod(&i64, mess) == FAIL) { + sprintf(mess, "Could not get period.\n"); + return sendError(file_des); + } +#else i64 = getPeriod(); +#endif n += sendData(file_des, &i64, sizeof(i64), INT64); if (n < 0) return printSocketReadError(); @@ -10894,13 +10939,6 @@ int set_pattern_wait_interval(int file_des) { if (Server_VerifyLock() == OK) { ret = validate_setPatternWaitClocksAndInterval(mess, loopLevel, timeval, 0); - if (ret == OK) { - uint64_t retval = 0; - ret = validate_getPatternWaitClocksAndInterval(mess, loopLevel, - &retval, 0); - validate64(&ret, mess, (int64_t)timeval, retval, - "set pattern wait interval", DEC); - } } #endif diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer index 28c2a453266aba63883bb898546f75fe3647fbf4..175991ee81ab2843d89c3453e95246b305e0f362 100755 GIT binary patch delta 97682 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 diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c index 625dbabd0..6d4e13a1a 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c @@ -363,7 +363,7 @@ void initStopServer() { return; } #ifdef VIRTUAL - sharedMemory_setStop(0); + setupDetector(); #endif } initCheckDone = 1; @@ -389,9 +389,13 @@ void setupDetector() { vLimit = DEFAULT_VLIMIT; #ifdef VIRTUAL - sharedMemory_setStatus(IDLE); - setupUDPCommParameters(); - initializePatternWord(); + if (isControlServer) { + sharedMemory_setStatus(IDLE); + setupUDPCommParameters(); + initializePatternWord(); + } else { + sharedMemory_setStop(0); + } #endif // initialization only at start up (restart fpga) initError = waitTransceiverReset(initErrorMessage); @@ -444,9 +448,15 @@ void setupDetector() { setNumFrames(DEFAULT_NUM_FRAMES); setNumTriggers(DEFAULT_NUM_CYCLES); setTiming(DEFAULT_TIMING_MODE); - setExpTime(DEFAULT_EXPTIME); - setPeriod(DEFAULT_PERIOD); - setDelayAfterTrigger(DEFAULT_DELAY); + initError = setExpTime(DEFAULT_EXPTIME, initErrorMessage); + if (initError == FAIL) + return; + initError = setPeriod(DEFAULT_PERIOD, initErrorMessage); + if (initError == FAIL) + return; + initError = setDelayAfterTrigger(DEFAULT_DELAY, initErrorMessage); + if (initError == FAIL) + return; setNextFrameNumber(DEFAULT_STARTING_FRAME_NUMBER); } @@ -766,63 +776,132 @@ int getNumTransceiverSamples() { return ((bus_r(NO_SAMPLES_X_REG) & NO_SAMPLES_X_MSK) >> NO_SAMPLES_X_OFST); } -int setExpTime(int64_t val) { +int setExpTime(int64_t val, char *mess) { setPatternWaitInterval(0, val); - // validate for tolerance - int64_t retval = getExpTime(); + // validate + uint64_t arg_clocks = ns_to_clocks(val, clkFrequency[RUN_CLK]); + uint64_t retval_clocks = getPatternWaitClocks(0); + if (arg_clocks != retval_clocks) { + sprintf(mess, + "Failed to set exposure time. Could not set number of clocks " + "to %lld, read %lld\n", + (long long int)arg_clocks, (long long int)retval_clocks); + LOG(logERROR, (mess)); + return FAIL; + } + + // log rounding if any + int64_t retval = getPatternWaitInterval(0); if (val != retval) { + LOG(logWARNING, ("Rounding to %lld ns due to clock frequency\n", + (long long int)retval)); + } + + return OK; +} + +int getExpTime(int64_t *retval, char *mess) { + *retval = getPatternWaitInterval(0); + if (*retval == -1) { + sprintf(mess, "Failed to get exposure time.\n"); + LOG(logERROR, (mess)); return FAIL; } return OK; } -int64_t getExpTime() { return getPatternWaitInterval(0); } - -int setPeriod(int64_t val) { +int setPeriod(int64_t val, char *mess) { if (val < 0) { - LOG(logERROR, ("Invalid period: %lld ns\n", (long long int)val)); + sprintf(mess, "Invalid period: %lld ns\n", (long long int)val); + LOG(logERROR, (mess)); return FAIL; } LOG(logINFO, ("Setting period %lld ns\n", (long long int)val)); - val *= (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); - setU64BitReg(val, PERIOD_IN_REG_1, PERIOD_IN_REG_2); + uint64_t arg_clocks = ns_to_clocks(val, clkFrequency[RUN_CLK]); + setU64BitReg(arg_clocks, PERIOD_IN_REG_1, PERIOD_IN_REG_2); - // validate for tolerance - int64_t retval = getPeriod(); - val /= (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); - if (val != retval) { + // validate + uint64_t retval_clocks = getU64BitReg(PERIOD_IN_REG_1, PERIOD_IN_REG_2); + if (arg_clocks != retval_clocks) { + sprintf(mess, + "Failed to set period. Could not set number of clocks " + "to %lld, red %lld\n", + (long long int)arg_clocks, (long long int)retval_clocks); + LOG(logERROR, (mess)); return FAIL; } + + // log rounding if any + int64_t retval = 0; + if (getPeriod(&retval, mess) == FAIL) { + return FAIL; + } + if (val != retval) { + LOG(logWARNING, ("Rounding to %lld ns due to clock frequency\n", + (long long int)retval)); + } + return OK; } -int64_t getPeriod() { - return getU64BitReg(PERIOD_IN_REG_1, PERIOD_IN_REG_2) / - (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); +int getPeriod(int64_t *retval, char *mess) { + if (clkFrequency[RUN_CLK] == 0) { + sprintf(mess, "Cannot get period. Run clock frequency is 0.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + uint64_t numClocks = getU64BitReg(PERIOD_IN_REG_1, PERIOD_IN_REG_2); + *retval = clocks_to_ns(numClocks, clkFrequency[RUN_CLK]); + return OK; } -int setDelayAfterTrigger(int64_t val) { +int setDelayAfterTrigger(int64_t val, char *mess) { if (val < 0) { - LOG(logERROR, ("Invalid delay after trigger: %ld ns\n", val)); + sprintf(mess, "Invalid delay after trigger: %lld ns\n", + (long long int)val); + LOG(logERROR, (mess)); return FAIL; } - LOG(logINFO, ("Setting delay after trigger %ld ns\n", val)); - val *= (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); - setU64BitReg(val, DELAY_IN_REG_1, DELAY_IN_REG_2); + LOG(logINFO, ("Setting delay after trigger %lld ns\n", (long long int)val)); + uint64_t arg_clocks = ns_to_clocks(val, clkFrequency[RUN_CLK]); + setU64BitReg(arg_clocks, DELAY_IN_REG_1, DELAY_IN_REG_2); - // validate for tolerance - int64_t retval = getDelayAfterTrigger(); - val /= (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); - if (val != retval) { + // validate + uint64_t retval_clocks = getU64BitReg(DELAY_IN_REG_1, DELAY_IN_REG_2); + if (arg_clocks != retval_clocks) { + sprintf( + mess, + "Failed to set delay after trigger. Could not set number of clocks " + "to %lld, read %lld\n", + (long long int)arg_clocks, (long long int)retval_clocks); + LOG(logERROR, (mess)); return FAIL; } + + // log rounding if any + int64_t retval = 0; + if (getDelayAfterTrigger(&retval, mess) == FAIL) { + return FAIL; + } + if (val != retval) { + LOG(logWARNING, ("Rounding to %lld ns due to clock frequency\n", + (long long int)retval)); + } + return OK; } -int64_t getDelayAfterTrigger() { - return getU64BitReg(DELAY_IN_REG_1, DELAY_IN_REG_2) / - (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); +int getDelayAfterTrigger(int64_t *retval, char *mess) { + if (clkFrequency[RUN_CLK] == 0) { + sprintf(mess, + "Cannot get delay after trigger. Run clock frequency is 0.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + uint64_t numClocks = getU64BitReg(DELAY_IN_REG_1, DELAY_IN_REG_2); + *retval = clocks_to_ns(numClocks, clkFrequency[RUN_CLK]); + return OK; } int64_t getNumFramesLeft() { @@ -833,14 +912,27 @@ int64_t getNumTriggersLeft() { return getU64BitReg(CYCLES_OUT_REG_1, CYCLES_OUT_REG_2); } -int64_t getDelayAfterTriggerLeft() { - return getU64BitReg(DELAY_OUT_REG_1, DELAY_OUT_REG_2) / - (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); +int getDelayAfterTriggerLeft(int64_t *retval, char *mess) { + if (clkFrequency[RUN_CLK] == 0) { + sprintf(mess, "Cannot get delay after trigger left. Run clock " + "frequency is 0.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + uint64_t numClocks = getU64BitReg(DELAY_OUT_REG_1, DELAY_OUT_REG_2); + *retval = clocks_to_ns(numClocks, clkFrequency[RUN_CLK]); + return OK; } -int64_t getPeriodLeft() { - return getU64BitReg(PERIOD_OUT_REG_1, PERIOD_OUT_REG_2) / - (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); +int getPeriodLeft(int64_t *retval, char *mess) { + if (clkFrequency[RUN_CLK] == 0) { + sprintf(mess, "Cannot get period left. Run clock frequency is 0.\n"); + LOG(logERROR, (mess)); + return FAIL; + } + uint64_t numClocks = getU64BitReg(PERIOD_OUT_REG_1, PERIOD_OUT_REG_2); + *retval = clocks_to_ns(numClocks, clkFrequency[RUN_CLK]); + return OK; } int64_t getFramesFromStart() { @@ -849,13 +941,14 @@ int64_t getFramesFromStart() { } int64_t getActualTime() { - return getU64BitReg(TIME_FROM_START_OUT_REG_1, TIME_FROM_START_OUT_REG_2) / - (NS_TO_CLK_CYCLE * clkFrequency[SYNC_CLK]); + // in unit of 100ns + return getU64BitReg(TIME_FROM_START_OUT_REG_1, TIME_FROM_START_OUT_REG_2) * + 100; } int64_t getMeasurementTime() { - return getU64BitReg(FRAME_TIME_OUT_REG_1, FRAME_TIME_OUT_REG_2) / - (NS_TO_CLK_CYCLE * clkFrequency[SYNC_CLK]); + // in unit of 100ns + return getU64BitReg(FRAME_TIME_OUT_REG_1, FRAME_TIME_OUT_REG_2) * 100; } /* parameters - dac, adc, hv */ @@ -1447,11 +1540,22 @@ void *start_timer(void *arg) { if (!isControlServer) { return NULL; } + int64_t periodNs = 0; + int64_t expUs = 0; + { + char mess[MAX_STR_LENGTH] = {0}; + if (getPeriod(&periodNs, mess) == FAIL) { + LOG(logERROR, ("Failed to get period.\n")); + return NULL; + } + if (getExpTime(&expUs, mess) == FAIL) { + LOG(logERROR, ("Failed to get exposure time.\n")); + return NULL; + } + expUs /= 1000; + } - int64_t periodNs = getPeriod(); int numFrames = (getNumFrames() * getNumTriggers()); - int64_t expUs = getExpTime() / 1000; - int imageSize = calculateDataBytes(); int maxDataSize = MAX_DATA_SIZE_IN_PACKET; int packetSize = sizeof(sls_detector_header) + maxDataSize; @@ -1716,11 +1820,11 @@ int setFrequency(enum CLKINDEX ind, int val) { } char *clock_names[] = {CLK_NAMES}; - LOG(logINFO, ("\tSetting %s clock (%d) frequency to %d kHz\n", + LOG(logINFO, ("\tSetting %s clock (%d) frequency to %d Hz\n", clock_names[ind], ind, val)); if (XILINX_PLL_setFrequency(ind, val) == FAIL) { - LOG(logERROR, ("\tCould not set %s clock (%d) frequency to %d kHz\n", + LOG(logERROR, ("\tCould not set %s clock (%d) frequency to %d Hz\n", clock_names[ind], ind, val)); return FAIL; } diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h index 4d1ce9889..14de21741 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.h @@ -84,10 +84,10 @@ void setNumFrames(int64_t val); int64_t getNumFrames(); void setNumTriggers(int64_t val); int64_t getNumTriggers(); -int setExpTime(int64_t val); -int64_t getExpTime(); -int setPeriod(int64_t val); -int64_t getPeriod(); +int setExpTime(int64_t val, char *mess); +int getExpTime(int64_t *retval, char *mess); +int setPeriod(int64_t val, char *mess); +int getPeriod(int64_t *retval, char *mess); int setNumAnalogSamples(int val); int getNumAnalogSamples(); int setNumDigitalSamples(int val); @@ -97,10 +97,10 @@ int getNumTransceiverSamples(); int64_t getNumFramesLeft(); int64_t getNumTriggersLeft(); -int setDelayAfterTrigger(int64_t val); -int64_t getDelayAfterTrigger(); -int64_t getDelayAfterTriggerLeft(); -int64_t getPeriodLeft(); +int setDelayAfterTrigger(int64_t val, char *mess); +int getDelayAfterTrigger(int64_t *retval, char *mess); +int getDelayAfterTriggerLeft(int64_t *retval, char *mess); +int getPeriodLeft(int64_t *retval, char *mess); int64_t getFramesFromStart(); int64_t getActualTime(); int64_t getMeasurementTime(); diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h index 757df2e0c..adf4691bc 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h @@ -158,8 +158,11 @@ typedef struct udp_header_struct { enum CLKINDEX { RUN_CLK, ADC_CLK, SYNC_CLK, DBIT_CLK, NUM_CLOCKS }; #define CLK_NAMES "run", "adc", "sync", "dbit" -#define DEFAULT_RUN_CLK (20000) // 20 MHz -#define DEFAULT_ADC_CLK (100000) // 100 MHz -#define DEFAULT_SYNC_CLK (20000) // 20 MHz -#define DEFAULT_DBIT_CLK (100000) // 100 MHz -#define NS_TO_CLK_CYCLE (1E-6) // ns to kHz +#define DEFAULT_RUN_CLK (20000000) // 20 MHz +#define DEFAULT_ADC_CLK (100000000) // 100 MHz +#define DEFAULT_SYNC_CLK (20000000) // 20 MHz +#define DEFAULT_DBIT_CLK (100000000) // 100 MHz +#define NS_TO_CLK_CYCLE (1E-9) // ns to Hz + +#define MIN_CLK_FREQ (10000000) // 10 MHz +#define MAX_CLK_FREQ (300000000) // 300 MHz diff --git a/slsDetectorSoftware/generator/Caller.in.h b/slsDetectorSoftware/generator/Caller.in.h index f7128620e..e18dec02c 100644 --- a/slsDetectorSoftware/generator/Caller.in.h +++ b/slsDetectorSoftware/generator/Caller.in.h @@ -54,6 +54,9 @@ class Caller { return ToString(value, unit); } + std::string OutString(const Result &value, + const std::string &unit); + std::vector getAllCommands(); std::map GetDeprecatedCommands(); std::string list(int action); @@ -96,6 +99,7 @@ class Caller { defs::dacIndex parseDacIndex(int argIndex, bool isCtb); bool parseMV(int argIndex); defs::powerIndex parsePowerIndex(int argIndex); + defs::FrequencyUnit parseFrequencyUnit(const std::string &s); FunctionMap functions{ {"list", &Caller::list}, diff --git a/slsDetectorSoftware/generator/autocomplete/autocomplete.py b/slsDetectorSoftware/generator/autocomplete/autocomplete.py index 356e82eab..f236bcc67 100644 --- a/slsDetectorSoftware/generator/autocomplete/autocomplete.py +++ b/slsDetectorSoftware/generator/autocomplete/autocomplete.py @@ -16,6 +16,7 @@ type_values = { 'special::mv': ["mv", "mV"], "special::deg": ["deg"], "special::time_unit": ["s", "ms", "us", "ns"], + "special::freq_unit": ["Hz", "kHz", "MHz"], "special::hard": ["hard"], "special::force-delete-normal-file": ["--force-delete-normal-file"], "special::currentSourceFix": ["fix", "nofix"], @@ -40,11 +41,11 @@ def get_types(arg_types): #list of options with a command line call that fetches them #TODO! Rename sls_detector_get if "defs::dacIndex" in arg_types: - return "`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" + return r"`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" elif "defs::detectorSettings" in arg_types: - return "`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" + return r"`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" elif "defs::timingMode" in arg_types: - return "`sls_detector_get timinglist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" + return r"`sls_detector_get timinglist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" return ret diff --git a/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh b/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh index ff46a218a..433bd33d4 100644 --- a/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh +++ b/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh @@ -96,10 +96,18 @@ return 0 } __adcclk() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="Hz MHz kHz" +fi fi return 0 } @@ -565,12 +573,12 @@ __dacname() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" @@ -611,10 +619,18 @@ return 0 } __dbitclk() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="Hz MHz kHz" +fi fi return 0 } @@ -648,21 +664,21 @@ __defaultdac() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "4" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -671,13 +687,13 @@ __defaultpattern() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "4" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -2120,10 +2136,18 @@ return 0 } __runclk() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="Hz MHz kHz" +fi fi return 0 } @@ -2408,7 +2432,7 @@ __scan() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" @@ -2461,7 +2485,7 @@ __settings() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -2571,12 +2595,12 @@ __slowadcname() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" @@ -2680,6 +2704,16 @@ return 0 } __syncclk() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi return 0 } __temp_10ge() { @@ -2773,13 +2807,13 @@ if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "3" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "4" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "5" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -2791,13 +2825,13 @@ if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "3" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "4" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "5" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -2806,7 +2840,7 @@ __timing() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get timinglist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get timinglist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 diff --git a/slsDetectorSoftware/generator/autocomplete/zsh_autocomplete.sh b/slsDetectorSoftware/generator/autocomplete/zsh_autocomplete.sh index 92073ccea..953f971d2 100644 --- a/slsDetectorSoftware/generator/autocomplete/zsh_autocomplete.sh +++ b/slsDetectorSoftware/generator/autocomplete/zsh_autocomplete.sh @@ -20,10 +20,18 @@ return 0 } __adcclk() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="Hz MHz kHz" +fi fi return 0 } @@ -489,12 +497,12 @@ __dacname() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" @@ -535,10 +543,18 @@ return 0 } __dbitclk() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="Hz MHz kHz" +fi fi return 0 } @@ -572,21 +588,21 @@ __defaultdac() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "4" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -595,13 +611,13 @@ __defaultpattern() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "4" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -2044,10 +2060,18 @@ return 0 } __runclk() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="Hz MHz kHz" +fi fi return 0 } @@ -2332,7 +2356,7 @@ __scan() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" @@ -2385,7 +2409,7 @@ __settings() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -2495,12 +2519,12 @@ __slowadcname() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get daclist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "3" ]]; then FCN_RETURN="" @@ -2604,6 +2628,16 @@ return 0 } __syncclk() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="Hz MHz kHz" +fi +fi return 0 } __temp_10ge() { @@ -2697,13 +2731,13 @@ if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "3" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "4" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "5" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -2715,13 +2749,13 @@ if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "3" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi if [[ "${cword}" == "4" ]]; then FCN_RETURN="" fi if [[ "${cword}" == "5" ]]; then -FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get settingslist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 @@ -2730,7 +2764,7 @@ __timing() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then -FCN_RETURN="`sls_detector_get timinglist | sed -e 's/.*\[\(.*\)\].*/\1/' | sed 's/,//g'`" +FCN_RETURN="`sls_detector_get timinglist | sed -e 's/.*\[\(.*\)\].*/\\1/' | sed 's/,//g'`" fi fi return 0 diff --git a/slsDetectorSoftware/generator/commands.yaml b/slsDetectorSoftware/generator/commands.yaml index 20f94b12a..9e069f830 100644 --- a/slsDetectorSoftware/generator/commands.yaml +++ b/slsDetectorSoftware/generator/commands.yaml @@ -2,6 +2,56 @@ # detectors: MYTHEN3 ################# TEMPLATES ################# +FREQ_COMMAND: + infer_action: true + help: "" + template: true + actions: + GET: + require_det_id: true + function: '' + args: + - argc: 0 + output: [ OutString(t) ] + - argc: 1 + arg_types: [ special::freq_unit ] + output: [ "OutString(t , args[0])" ] + PUT: + function: '' + require_det_id: true + input: [ converted_freq ] + input_types: [ defs::Hz ] + args: + - argc: 1 + arg_types: [ std::string ] + + separate_freq_units: + input: 'args[0]' + output: [ converted_freq, unit ] + output: [ 'args[0]' ] + - argc: 2 + arg_types: [ int, special::freq_unit ] + + convert_to_freq: + input: [ 'args[0]', 'args[1]' ] + output: converted_freq + output: [ 'args[0]', 'args[1]' ] + +FREQ_GET_COMMAND: + infer_action: true + help: "" + template: true + actions: + GET: + require_det_id: true + function: '' + args: + - argc: 0 + output: [ OutString(t) ] + - argc: 1 + arg_types: [ special::freq_unit ] + output: [ "OutString(t , args[0])" ] + TIME_COMMAND: infer_action: true help: "" @@ -401,6 +451,44 @@ CTB_GET_INDEX: ################# COMMANDS ################################## +################# FREQ_COMMAND ############# +adcclk: + help: "[n_clk] [(optional unit) Hz(default)|kHz|MHz]\n\t[Ctb][Xilinx Ctb] ADC clock frequency." + inherit_actions: FREQ_COMMAND + actions: + GET: + function: getADCClock + PUT: + function: setADCClock + +runclk: + help: "[n_clk] [(optional unit) Hz(default)|kHz|MHz]\n\t[Ctb][Xilinx Ctb] Run clock frequency." + inherit_actions: FREQ_COMMAND + actions: + GET: + function: getRUNClock + PUT: + function: setRUNClock + + +dbitclk: + help: "[n_clk] [(optional unit) Hz(default)|kHz|MHz]\n\t[Ctb][Xilinx Ctb] Clock for latching the digital bits." + inherit_actions: FREQ_COMMAND + actions: + GET: + function: getDBITClock + PUT: + function: setDBITClock + +################# FREQ_GET_COMMAND ############# + +syncclk: + inherit_actions: FREQ_GET_COMMAND + help: "[n_clk] [(optional unit) Hz(default)|kHz|MHz]\n\t[Ctb] Sync clock." + actions: + GET: + function: getSYNCClock + ################# TIME_COMMAND ############# period: @@ -1243,23 +1331,6 @@ asamples: PUT: function: setNumberOfAnalogSamples -adcclk: - help: "[n_clk in MHz]\n\t[Ctb] ADC clock frequency in MHz.\n\t[xilinx Ctb] ADC clock frequency in kHz." - inherit_actions: INTEGER_COMMAND_VEC_ID - actions: - GET: - function: getADCClock - PUT: - function: setADCClock - -runclk: - help: "[n_clk in MHz]\n\t[Ctb] Run clock in MHz.\n\t[xilinx Ctb] Run clock in kHz." - inherit_actions: INTEGER_COMMAND_VEC_ID - actions: - GET: - function: getRUNClock - PUT: - function: setRUNClock dsamples: help: "[n_value]\n\t[Ctb] Number of digital samples expected." @@ -1289,15 +1360,6 @@ romode: function: setReadoutMode input_types: [ defs::readoutMode ] -dbitclk: - help: "[n_clk in MHz]\n\t[Ctb] Clock for latching the digital bits in MHz.\n\t[xilinx Ctb] Clock for latching the digital bits in kHz." - inherit_actions: INTEGER_COMMAND_VEC_ID - actions: - GET: - function: getDBITClock - PUT: - function: setDBITClock - extsampling: help: "[0, 1]\n\t[Ctb] Enable for external sampling signal for digital data to signal by extsampling src command. For advanced users only." inherit_actions: INTEGER_COMMAND_VEC_ID @@ -1912,19 +1974,12 @@ burstsl: GET: function: getNumberOfBurstsLeft -syncclk: - inherit_actions: GET_COMMAND - help: "[n_clk in MHz]\n\t[Ctb] Sync clock in MHz." - actions: - GET: - function: getSYNCClock - patfname: inherit_actions: GET_COMMAND help: "\n\t[Ctb][Mythen3][Xilinx Ctb] Gets the pattern file name including path of the last pattern uploaded. Returns an empty if nothing was uploaded or via a server default file" actions: GET: - function: getPatterFileName + function: getPatternFileName lastclient: inherit_actions: GET_COMMAND diff --git a/slsDetectorSoftware/generator/commands_parser/commands_parser.py b/slsDetectorSoftware/generator/commands_parser/commands_parser.py index 9a11cd789..576cbfa21 100644 --- a/slsDetectorSoftware/generator/commands_parser/commands_parser.py +++ b/slsDetectorSoftware/generator/commands_parser/commands_parser.py @@ -50,7 +50,6 @@ class CommandParser: if len(arg['input_types']) != len(arg['input']): raise ValueError(f'Argument {arg} does not have the correct number of inputs') if 'separate_time_units' in arg: - if arg['separate_time_units']['input'] == "": raise ValueError(f'Argument {arg} does not have the correct number of inputs for separate_time_units') if len(arg['separate_time_units']['output']) != 2: @@ -60,6 +59,16 @@ class CommandParser: raise ValueError(f'Argument {arg} does not have the correct number of inputs for convert_to_time') if len(arg['convert_to_time']['output']) == "": raise ValueError(f'Argument {arg} does not have the correct number of outputs for convert_to_time') + if 'separate_freq_units' in arg: + if arg['separate_freq_units']['input'] == "": + raise ValueError(f'Argument {arg} does not have the correct number of inputs for separate_freq_units') + if len(arg['separate_freq_units']['output']) != 2: + raise ValueError(f'Argument {arg} does not have the correct number of outputs for separate_freq_units') + if 'convert_to_freq' in arg: + if len(arg['convert_to_freq']['input']) != 2: + raise ValueError(f'Argument {arg} does not have the correct number of inputs for convert_to_freq') + if len(arg['convert_to_freq']['output']) == "": + raise ValueError(f'Argument {arg} does not have the correct number of outputs for convert_to_freq') # if infer_action: # if arg['argc'] in self.argc_set: # raise ValueError(f'Argument {arg} has a duplicate argc') diff --git a/slsDetectorSoftware/generator/cpp_codegen/codegen.py b/slsDetectorSoftware/generator/cpp_codegen/codegen.py index fef9959d0..a9e875b09 100644 --- a/slsDetectorSoftware/generator/cpp_codegen/codegen.py +++ b/slsDetectorSoftware/generator/cpp_codegen/codegen.py @@ -142,6 +142,16 @@ class CodeGenerator: if 'convert_to_time' in arg and arg['convert_to_time']: self.write_line(f'auto {arg["convert_to_time"]["output"]} = ' f'StringTo < time::ns > ({", ".join(arg["convert_to_time"]["input"])});') + if 'separate_freq_units' in arg and arg['separate_freq_units']: + self.write_line(f'std::string tmp_freq({arg["separate_freq_units"]["input"]});') + self.write_line(f'std::string {arg["separate_freq_units"]["output"][1]}' + f' = RemoveUnit(tmp_freq);') + self.write_line(f'auto {arg["separate_freq_units"]["output"][0]} = ' + f'StringTo < defs::Hz > (tmp_freq,' + f' {arg["separate_freq_units"]["output"][1]});') + if 'convert_to_freq' in arg and arg['convert_to_freq']: + self.write_line(f'auto {arg["convert_to_freq"]["output"]} = ' + f'StringTo < defs::Hz > ({", ".join(arg["convert_to_freq"]["input"])});') input_arguments = [] if 'exceptions' in arg: for exception in arg['exceptions']: diff --git a/slsDetectorSoftware/generator/extended_commands.yaml b/slsDetectorSoftware/generator/extended_commands.yaml index 9dd24bb5d..c29c13bc5 100644 --- a/slsDetectorSoftware/generator/extended_commands.yaml +++ b/slsDetectorSoftware/generator/extended_commands.yaml @@ -86,28 +86,69 @@ adcclk: - OutString(t) require_det_id: true store_result_in_t: true + - arg_types: + - special::freq_unit + argc: 1 + cast_input: [] + check_det_id: false + convert_det_id: true + function: getADCClock + input: [] + input_types: [] + output: + - OutString(t , args[0]) + require_det_id: true + store_result_in_t: true PUT: args: - arg_types: - - int + - std::string argc: 1 cast_input: - - true + - false check_det_id: false convert_det_id: true function: setADCClock input: - - args[0] + - converted_freq input_types: - - int + - defs::Hz output: - - args.front() + - args[0] + require_det_id: true + separate_freq_units: + input: args[0] + output: + - converted_freq + - unit + store_result_in_t: false + - arg_types: + - int + - special::freq_unit + argc: 2 + cast_input: + - false + check_det_id: false + convert_det_id: true + convert_to_freq: + input: + - args[0] + - args[1] + output: converted_freq + function: setADCClock + input: + - converted_freq + input_types: + - defs::Hz + output: + - args[0] + - args[1] require_det_id: true store_result_in_t: false command_name: adcclk function_alias: adcclk - help: "[n_clk in MHz]\n\t[Ctb] ADC clock frequency in MHz.\n\t[xilinx Ctb] ADC clock\ - \ frequency in kHz." + help: "[n_clk] [(optional unit) Hz(default)|kHz|MHz]\n\t[Ctb][Xilinx Ctb] ADC clock\ + \ frequency." infer_action: true template: true adcenable: @@ -2060,28 +2101,69 @@ dbitclk: - OutString(t) require_det_id: true store_result_in_t: true + - arg_types: + - special::freq_unit + argc: 1 + cast_input: [] + check_det_id: false + convert_det_id: true + function: getDBITClock + input: [] + input_types: [] + output: + - OutString(t , args[0]) + require_det_id: true + store_result_in_t: true PUT: args: - arg_types: - - int + - std::string argc: 1 cast_input: - - true + - false check_det_id: false convert_det_id: true function: setDBITClock input: - - args[0] + - converted_freq input_types: - - int + - defs::Hz output: - - args.front() + - args[0] + require_det_id: true + separate_freq_units: + input: args[0] + output: + - converted_freq + - unit + store_result_in_t: false + - arg_types: + - int + - special::freq_unit + argc: 2 + cast_input: + - false + check_det_id: false + convert_det_id: true + convert_to_freq: + input: + - args[0] + - args[1] + output: converted_freq + function: setDBITClock + input: + - converted_freq + input_types: + - defs::Hz + output: + - args[0] + - args[1] require_det_id: true store_result_in_t: false command_name: dbitclk function_alias: dbitclk - help: "[n_clk in MHz]\n\t[Ctb] Clock for latching the digital bits in MHz.\n\t[xilinx\ - \ Ctb] Clock for latching the digital bits in kHz." + help: "[n_clk] [(optional unit) Hz(default)|kHz|MHz]\n\t[Ctb][Xilinx Ctb] Clock\ + \ for latching the digital bits." infer_action: true template: true dbitphase: @@ -5788,7 +5870,7 @@ patfname: cast_input: [] check_det_id: false convert_det_id: true - function: getPatterFileName + function: getPatternFileName input: [] input_types: [] output: @@ -8140,27 +8222,69 @@ runclk: - OutString(t) require_det_id: true store_result_in_t: true + - arg_types: + - special::freq_unit + argc: 1 + cast_input: [] + check_det_id: false + convert_det_id: true + function: getRUNClock + input: [] + input_types: [] + output: + - OutString(t , args[0]) + require_det_id: true + store_result_in_t: true PUT: args: - arg_types: - - int + - std::string argc: 1 cast_input: - - true + - false check_det_id: false convert_det_id: true function: setRUNClock input: - - args[0] + - converted_freq input_types: - - int + - defs::Hz output: - - args.front() + - args[0] + require_det_id: true + separate_freq_units: + input: args[0] + output: + - converted_freq + - unit + store_result_in_t: false + - arg_types: + - int + - special::freq_unit + argc: 2 + cast_input: + - false + check_det_id: false + convert_det_id: true + convert_to_freq: + input: + - args[0] + - args[1] + output: converted_freq + function: setRUNClock + input: + - converted_freq + input_types: + - defs::Hz + output: + - args[0] + - args[1] require_det_id: true store_result_in_t: false command_name: runclk function_alias: runclk - help: "[n_clk in MHz]\n\t[Ctb] Run clock in MHz.\n\t[xilinx Ctb] Run clock in kHz." + help: "[n_clk] [(optional unit) Hz(default)|kHz|MHz]\n\t[Ctb][Xilinx Ctb] Run clock\ + \ frequency." infer_action: true template: true runtime: @@ -10575,9 +10699,22 @@ syncclk: - OutString(t) require_det_id: true store_result_in_t: true + - arg_types: + - special::freq_unit + argc: 1 + cast_input: [] + check_det_id: false + convert_det_id: true + function: getSYNCClock + input: [] + input_types: [] + output: + - OutString(t , args[0]) + require_det_id: true + store_result_in_t: true command_name: syncclk function_alias: syncclk - help: "[n_clk in MHz]\n\t[Ctb] Sync clock in MHz." + help: "[n_clk] [(optional unit) Hz(default)|kHz|MHz]\n\t[Ctb] Sync clock." infer_action: true template: true temp_10ge: diff --git a/slsDetectorSoftware/generator/gen_commands.py b/slsDetectorSoftware/generator/gen_commands.py index 45dbc878f..4a12ee1af 100644 --- a/slsDetectorSoftware/generator/gen_commands.py +++ b/slsDetectorSoftware/generator/gen_commands.py @@ -122,7 +122,25 @@ def generate( f'StringTo < time::ns > ({", ".join(arg["convert_to_time"]["input"])});') codegen.write_line( f'}} catch (...) {{ throw RuntimeError("Could not convert arguments to time::ns");}}') + elif 'separate_freq_units' in arg and arg['separate_freq_units']: + codegen.write_line(f'try {{') + # TODO: refactor this repeating code + codegen.write_line(f'std::string tmp_freq({arg["separate_freq_units"]["input"]});') + codegen.write_line(f'std::string {arg["separate_freq_units"]["output"][1]}' + f' = RemoveUnit(tmp_freq);') + codegen.write_line(f'auto {arg["separate_freq_units"]["output"][0]} = ' + f'StringTo < defs::Hz > (tmp_freq,' + f' {arg["separate_freq_units"]["output"][1]});') + codegen.write_line( + f'}} catch (...) {{ throw RuntimeError("Could not convert argument to defs::Hz");}}') + elif 'convert_to_freq' in arg and arg['convert_to_freq']: + codegen.write_line(f'try {{') + + codegen.write_line( + f'StringTo < defs::Hz > ({", ".join(arg["convert_to_freq"]["input"])});') + codegen.write_line( + f'}} catch (...) {{ throw RuntimeError("Could not convert arguments to defs::Hz");}}') for i in range(len(arg['input'])): if not arg['cast_input'][i]: continue diff --git a/slsDetectorSoftware/generator/readme.md b/slsDetectorSoftware/generator/readme.md index d480d6c43..2e7054660 100644 --- a/slsDetectorSoftware/generator/readme.md +++ b/slsDetectorSoftware/generator/readme.md @@ -302,7 +302,13 @@ write_arg in codegen reads the argument fields and generate c++ code accordingly std::string $output[1]$ = RemoveUnit(tmp_time); auto $output[0]$ = StringTo(tmp_time, $output[1]$); ``` -- convert_to_time: takes three parameters: input[0], input[1], output +- separate_freq_units: takes three parameters: input, output[0], output[1] each one is a variable name + ```cpp + std::string tmp_freq($input$); + std::string $output[1]$ = RemoveUnit(tmp_freq); + auto $output[0]$ = StringTo(tmp_freq, $output[1]$); + ``` +- convert_to_time and convert_to_freq: takes three parameters: input[0], input[1], output ```cpp auto output = StringTo(input[0], input[1]); ``` diff --git a/slsDetectorSoftware/include/sls/Detector.h b/slsDetectorSoftware/include/sls/Detector.h index a44a46e5f..d107370de 100644 --- a/slsDetectorSoftware/include/sls/Detector.h +++ b/slsDetectorSoftware/include/sls/Detector.h @@ -1613,20 +1613,26 @@ class Detector { /** [CTB] */ void setNumberOfAnalogSamples(int value, Positions pos = {}); - /** [CTB] in MHz, [XCTB] in kHz */ - Result getADCClock(Positions pos = {}) const; + /** [CTB][XCTB] */ + Result getADCClock(Positions pos = {}) const; - /** [CTB] in MHz, [XCTB] in kHz */ - void setADCClock(int value_in_MHz, Positions pos = {}); + /** [CTB][XCTB] */ + void setADCClock(defs::Hz val, Positions pos = {}); - /** [CTB] in MHz, [XCTB] in kHz */ - Result getRUNClock(Positions pos = {}) const; + /** [CTB][XCTB] */ + Result getRUNClock(Positions pos = {}) const; - /** [CTB] in MHz, [XCTB] in kHz */ - void setRUNClock(int value_in_MHz, Positions pos = {}); + /** [CTB][XCTB] */ + void setRUNClock(defs::Hz val, Positions pos = {}); - /** [CTB] in MHZ */ - Result getSYNCClock(Positions pos = {}) const; + /** [CTB][XCTB] */ + Result getDBITClock(Positions pos = {}) const; + + /** [CTB][XCTB] */ + void setDBITClock(defs::Hz val, Positions pos = {}); + + /** [CTB][XCTB] */ + Result getSYNCClock(Positions pos = {}) const; /** gets list of power enums */ std::vector getPowerList() const; @@ -1721,12 +1727,6 @@ class Detector { */ void setReadoutMode(defs::readoutMode value, Positions pos = {}); - /** [CTB] in MHz, [XCTB] in kHz */ - Result getDBITClock(Positions pos = {}) const; - - /** [CTB] in MHz, [XCTB] in kHz */ - void setDBITClock(int value_in_MHz, Positions pos = {}); - /** [CTB] */ Result getExternalSamplingSource(Positions pos = {}) const; @@ -1934,7 +1934,7 @@ class Detector { /** [CTB][Mythen3][Xilinx CTB] Gets the pattern file name including path of * the last pattern uploaded. \n Returns an empty if nothing was uploaded or * via a server default file*/ - Result getPatterFileName(Positions pos = {}) const; + Result getPatternFileName(Positions pos = {}) const; /** [CTB][Mythen3][Xilinx CTB] Loads ASCII pattern file directly to server * (instead of executing line by line)*/ diff --git a/slsDetectorSoftware/include/sls/Result.h b/slsDetectorSoftware/include/sls/Result.h index 0cb937408..5554bdaa8 100644 --- a/slsDetectorSoftware/include/sls/Result.h +++ b/slsDetectorSoftware/include/sls/Result.h @@ -38,6 +38,7 @@ template > class Result { template ::value && (std::is_same::value || + std::is_same::value || std::is_same::value)>::type> Result(const Result &from) { vec.reserve(from.size()); @@ -49,6 +50,7 @@ template > class Result { template ::value && (std::is_same::value || + std::is_same::value || std::is_same::value)>::type> Result(Result &from) { vec.reserve(from.size()); @@ -60,6 +62,7 @@ template > class Result { template ::value && (std::is_same::value || + std::is_same::value || std::is_same::value)>::type> Result(Result &&from) { vec.reserve(from.size()); diff --git a/slsDetectorSoftware/src/Caller.cpp b/slsDetectorSoftware/src/Caller.cpp index 17405241e..1e72aba17 100644 --- a/slsDetectorSoftware/src/Caller.cpp +++ b/slsDetectorSoftware/src/Caller.cpp @@ -72,34 +72,46 @@ std::string Caller::adcclk(int action) { std::ostringstream os; // print help if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N([n_clk in MHz] - [Ctb] ADC clock frequency in MHz. - [xilinx Ctb] ADC clock frequency in kHz. )V0G0N" + os << R"V0G0N([n_clk] [(optional unit) Hz(default)|kHz|MHz] + [Ctb][Xilinx Ctb] ADC clock frequency. )V0G0N" << std::endl; return os.str(); } // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (1 && args.size() != 0) { + if (1 && args.size() != 0 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } if (args.size() == 0) { } + if (args.size() == 1) { + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (1 && args.size() != 1) { + if (1 && args.size() != 1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } if (args.size() == 1) { try { - StringTo(args[0]); + std::string tmp_freq(args[0]); + std::string unit = RemoveUnit(tmp_freq); + auto converted_freq = StringTo(tmp_freq, unit); } catch (...) { - throw RuntimeError("Could not convert argument 0 to int"); + throw RuntimeError("Could not convert argument to defs::Hz"); + } + } + + if (args.size() == 2) { + try { + StringTo(args[0], args[1]); + } catch (...) { + throw RuntimeError("Could not convert arguments to defs::Hz"); } } @@ -117,13 +129,26 @@ std::string Caller::adcclk(int action) { auto t = det->getADCClock(std::vector{det_id}); os << OutString(t) << '\n'; } + + if (args.size() == 1) { + auto t = det->getADCClock(std::vector{det_id}); + os << OutString(t, args[0]) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { if (args.size() == 1) { - auto arg0 = StringTo(args[0]); - det->setADCClock(arg0, std::vector{det_id}); - os << args.front() << '\n'; + std::string tmp_freq(args[0]); + std::string unit = RemoveUnit(tmp_freq); + auto converted_freq = StringTo(tmp_freq, unit); + det->setADCClock(converted_freq, std::vector{det_id}); + os << args[0] << '\n'; + } + + if (args.size() == 2) { + auto converted_freq = StringTo(args[0], args[1]); + det->setADCClock(converted_freq, std::vector{det_id}); + os << args[0] << args[1] << '\n'; } } @@ -2482,34 +2507,46 @@ std::string Caller::dbitclk(int action) { std::ostringstream os; // print help if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N([n_clk in MHz] - [Ctb] Clock for latching the digital bits in MHz. - [xilinx Ctb] Clock for latching the digital bits in kHz. )V0G0N" + os << R"V0G0N([n_clk] [(optional unit) Hz(default)|kHz|MHz] + [Ctb][Xilinx Ctb] Clock for latching the digital bits. )V0G0N" << std::endl; return os.str(); } // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (1 && args.size() != 0) { + if (1 && args.size() != 0 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } if (args.size() == 0) { } + if (args.size() == 1) { + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (1 && args.size() != 1) { + if (1 && args.size() != 1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } if (args.size() == 1) { try { - StringTo(args[0]); + std::string tmp_freq(args[0]); + std::string unit = RemoveUnit(tmp_freq); + auto converted_freq = StringTo(tmp_freq, unit); } catch (...) { - throw RuntimeError("Could not convert argument 0 to int"); + throw RuntimeError("Could not convert argument to defs::Hz"); + } + } + + if (args.size() == 2) { + try { + StringTo(args[0], args[1]); + } catch (...) { + throw RuntimeError("Could not convert arguments to defs::Hz"); } } @@ -2527,13 +2564,26 @@ std::string Caller::dbitclk(int action) { auto t = det->getDBITClock(std::vector{det_id}); os << OutString(t) << '\n'; } + + if (args.size() == 1) { + auto t = det->getDBITClock(std::vector{det_id}); + os << OutString(t, args[0]) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { if (args.size() == 1) { - auto arg0 = StringTo(args[0]); - det->setDBITClock(arg0, std::vector{det_id}); - os << args.front() << '\n'; + std::string tmp_freq(args[0]); + std::string unit = RemoveUnit(tmp_freq); + auto converted_freq = StringTo(tmp_freq, unit); + det->setDBITClock(converted_freq, std::vector{det_id}); + os << args[0] << '\n'; + } + + if (args.size() == 2) { + auto converted_freq = StringTo(args[0], args[1]); + det->setDBITClock(converted_freq, std::vector{det_id}); + os << args[0] << args[1] << '\n'; } } @@ -7312,7 +7362,7 @@ std::string Caller::patfname(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { if (args.size() == 0) { - auto t = det->getPatterFileName(std::vector{det_id}); + auto t = det->getPatternFileName(std::vector{det_id}); os << OutString(t) << '\n'; } } @@ -9909,34 +9959,46 @@ std::string Caller::runclk(int action) { std::ostringstream os; // print help if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N([n_clk in MHz] - [Ctb] Run clock in MHz. - [xilinx Ctb] Run clock in kHz. )V0G0N" + os << R"V0G0N([n_clk] [(optional unit) Hz(default)|kHz|MHz] + [Ctb][Xilinx Ctb] Run clock frequency. )V0G0N" << std::endl; return os.str(); } // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (1 && args.size() != 0) { + if (1 && args.size() != 0 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } if (args.size() == 0) { } + if (args.size() == 1) { + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (1 && args.size() != 1) { + if (1 && args.size() != 1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } if (args.size() == 1) { try { - StringTo(args[0]); + std::string tmp_freq(args[0]); + std::string unit = RemoveUnit(tmp_freq); + auto converted_freq = StringTo(tmp_freq, unit); } catch (...) { - throw RuntimeError("Could not convert argument 0 to int"); + throw RuntimeError("Could not convert argument to defs::Hz"); + } + } + + if (args.size() == 2) { + try { + StringTo(args[0], args[1]); + } catch (...) { + throw RuntimeError("Could not convert arguments to defs::Hz"); } } @@ -9954,13 +10016,26 @@ std::string Caller::runclk(int action) { auto t = det->getRUNClock(std::vector{det_id}); os << OutString(t) << '\n'; } + + if (args.size() == 1) { + auto t = det->getRUNClock(std::vector{det_id}); + os << OutString(t, args[0]) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { if (args.size() == 1) { - auto arg0 = StringTo(args[0]); - det->setRUNClock(arg0, std::vector{det_id}); - os << args.front() << '\n'; + std::string tmp_freq(args[0]); + std::string unit = RemoveUnit(tmp_freq); + auto converted_freq = StringTo(tmp_freq, unit); + det->setRUNClock(converted_freq, std::vector{det_id}); + os << args[0] << '\n'; + } + + if (args.size() == 2) { + auto converted_freq = StringTo(args[0], args[1]); + det->setRUNClock(converted_freq, std::vector{det_id}); + os << args[0] << args[1] << '\n'; } } @@ -13062,21 +13137,24 @@ std::string Caller::syncclk(int action) { std::ostringstream os; // print help if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N([n_clk in MHz] - [Ctb] Sync clock in MHz. )V0G0N" + os << R"V0G0N([n_clk] [(optional unit) Hz(default)|kHz|MHz] + [Ctb] Sync clock. )V0G0N" << std::endl; return os.str(); } // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (1 && args.size() != 0) { + if (1 && args.size() != 0 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } if (args.size() == 0) { } + if (args.size() == 1) { + } + } else { @@ -13091,6 +13169,11 @@ std::string Caller::syncclk(int action) { auto t = det->getSYNCClock(std::vector{det_id}); os << OutString(t) << '\n'; } + + if (args.size() == 1) { + auto t = det->getSYNCClock(std::vector{det_id}); + os << OutString(t, args[0]) << '\n'; + } } return os.str(); diff --git a/slsDetectorSoftware/src/Caller.h b/slsDetectorSoftware/src/Caller.h index ce9e7cc93..d35ffe569 100644 --- a/slsDetectorSoftware/src/Caller.h +++ b/slsDetectorSoftware/src/Caller.h @@ -54,6 +54,9 @@ class Caller { return ToString(value, unit); } + std::string OutString(const Result &value, + const std::string &unit); + std::vector getAllCommands(); std::map GetDeprecatedCommands(); std::string list(int action); @@ -421,6 +424,7 @@ class Caller { defs::dacIndex parseDacIndex(int argIndex, bool isCtb); bool parseMV(int argIndex); defs::powerIndex parsePowerIndex(int argIndex); + defs::FrequencyUnit parseFrequencyUnit(const std::string &s); FunctionMap functions{ {"list", &Caller::list}, diff --git a/slsDetectorSoftware/src/CallerSpecial.cpp b/slsDetectorSoftware/src/CallerSpecial.cpp index cf339ee5d..50cd1e72d 100644 --- a/slsDetectorSoftware/src/CallerSpecial.cpp +++ b/slsDetectorSoftware/src/CallerSpecial.cpp @@ -11,6 +11,14 @@ namespace sls { // some helper functions to print +std::string Caller::OutString(const Result &value, + const std::string &unit) { + auto u = parseFrequencyUnit(unit); + if (value.equal()) + return ToString(value.front(), u); + return ToString(value, u); +} + std::vector Caller::getAllCommands() { std::vector ret; for (auto it : functions) @@ -2105,4 +2113,21 @@ std::string Caller::powervalues(int action) { return os.str(); } +defs::FrequencyUnit Caller::parseFrequencyUnit(const std::string &unit) { + auto unitLower = [&] { + std::string result = unit; + std::transform(result.begin(), result.end(), result.begin(), + [](unsigned char c) { return std::tolower(c); }); + return result; + }(); + if (unitLower == "hz") + return defs::FrequencyUnit::Hz; + if (unitLower == "khz") + return defs::FrequencyUnit::kHz; + if (unitLower == "mhz") + return defs::FrequencyUnit::MHz; + + throw std::runtime_error("Unknown frequency unit: " + unit); +} + } // namespace sls \ No newline at end of file diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index a6bd47a2f..01e9f5a44 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -2144,25 +2144,34 @@ void Detector::setNumberOfAnalogSamples(int value, Positions pos) { pimpl->Parallel(&Module::setNumberOfAnalogSamples, pos, value); } -Result Detector::getADCClock(Positions pos) const { +Result Detector::getADCClock(Positions pos) const { return pimpl->Parallel(&Module::getClockFrequency, pos, defs::ADC_CLOCK); } -void Detector::setADCClock(int value_in_MHz, Positions pos) { +void Detector::setADCClock(defs::Hz val, Positions pos) { pimpl->Parallel(&Module::setClockFrequency, pos, defs::ADC_CLOCK, - value_in_MHz); + val.value); } -Result Detector::getRUNClock(Positions pos) const { +Result Detector::getRUNClock(Positions pos) const { return pimpl->Parallel(&Module::getClockFrequency, pos, defs::RUN_CLOCK); } -void Detector::setRUNClock(int value_in_MHz, Positions pos) { +void Detector::setRUNClock(defs::Hz val, Positions pos) { pimpl->Parallel(&Module::setClockFrequency, pos, defs::RUN_CLOCK, - value_in_MHz); + val.value); } -Result Detector::getSYNCClock(Positions pos) const { +Result Detector::getDBITClock(Positions pos) const { + return pimpl->Parallel(&Module::getClockFrequency, pos, defs::DBIT_CLOCK); +} + +void Detector::setDBITClock(defs::Hz val, Positions pos) { + pimpl->Parallel(&Module::setClockFrequency, pos, defs::DBIT_CLOCK, + val.value); +} + +Result Detector::getSYNCClock(Positions pos) const { return pimpl->Parallel(&Module::getClockFrequency, pos, defs::SYNC_CLOCK); } @@ -2310,15 +2319,6 @@ void Detector::setReadoutMode(defs::readoutMode value, Positions pos) { pimpl->Parallel(&Module::setReadoutMode, pos, value); } -Result Detector::getDBITClock(Positions pos) const { - return pimpl->Parallel(&Module::getClockFrequency, pos, defs::DBIT_CLOCK); -} - -void Detector::setDBITClock(int value_in_MHz, Positions pos) { - pimpl->Parallel(&Module::setClockFrequency, pos, defs::DBIT_CLOCK, - value_in_MHz); -} - Result Detector::getSlowADC(defs::dacIndex index, Positions pos) const { if (index < defs::SLOW_ADC0 || index > defs::SLOW_ADC7) { throw RuntimeError("Unknown Slow ADC Index"); @@ -2609,8 +2609,8 @@ void Detector::configureTransceiver(Positions pos) { // Pattern -Result Detector::getPatterFileName(Positions pos) const { - return pimpl->Parallel(&Module::getPatterFileName, pos); +Result Detector::getPatternFileName(Positions pos) const { + return pimpl->Parallel(&Module::getPatternFileName, pos); } void Detector::setPattern(const std::string &fname, Positions pos) { diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 5cfa39875..17fe8841b 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -2668,7 +2668,7 @@ void Module::configureTransceiver() { } // Pattern -std::string Module::getPatterFileName() const { +std::string Module::getPatternFileName() const { char retval[MAX_STR_LENGTH]{}; sendToDetector(F_GET_PATTERN_FILE_NAME, nullptr, retval); return retval; diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index 1f1f5c2e0..cf4672c93 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -536,7 +536,7 @@ class Module : public virtual slsDetectorDefs { * Pattern * * * * ************************************************/ - std::string getPatterFileName() const; + std::string getPatternFileName() const; void setPattern(const Pattern &pat, const std::string &fname); Pattern getPattern(); void loadDefaultPattern(); diff --git a/slsDetectorSoftware/src/inferAction.cpp b/slsDetectorSoftware/src/inferAction.cpp index 25467d1d2..af2ff6396 100644 --- a/slsDetectorSoftware/src/inferAction.cpp +++ b/slsDetectorSoftware/src/inferAction.cpp @@ -63,6 +63,12 @@ int InferAction::adcclk() { } if (args.size() == 1) { + throw RuntimeError( + "sls_detector is disabled for command: adcclk with number of " + "arguments 1. Use sls_detector_get or sls_detector_put"); + } + + if (args.size() == 2) { return slsDetectorDefs::PUT_ACTION; } @@ -711,6 +717,12 @@ int InferAction::dbitclk() { } if (args.size() == 1) { + throw RuntimeError( + "sls_detector is disabled for command: dbitclk with number of " + "arguments 1. Use sls_detector_get or sls_detector_put"); + } + + if (args.size() == 2) { return slsDetectorDefs::PUT_ACTION; } @@ -2595,6 +2607,12 @@ int InferAction::runclk() { } if (args.size() == 1) { + throw RuntimeError( + "sls_detector is disabled for command: runclk with number of " + "arguments 1. Use sls_detector_get or sls_detector_put"); + } + + if (args.size() == 2) { return slsDetectorDefs::PUT_ACTION; } @@ -3477,6 +3495,10 @@ int InferAction::syncclk() { return slsDetectorDefs::GET_ACTION; } + if (args.size() == 1) { + return slsDetectorDefs::GET_ACTION; + } + else { throw RuntimeError("Could not infer action: Wrong number of arguments"); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp index 71c64048f..214c2ffa8 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp @@ -921,23 +921,65 @@ TEST_CASE("adcclk", "[.detectorintegration]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); - if (det_type == defs::CHIPTESTBOARD) { + if (det_type == defs::CHIPTESTBOARD || + det_type == defs::XILINX_CHIPTESTBOARD) { auto prev_val = det.getADCClock(); + + REQUIRE_NOTHROW(caller.call("adcclk", {"MHZ"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("adcclk", {"mhz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("adcclk", {"MHz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("adcclk", {"kHz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("adcclk", {"Hz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("adcclk", {}, -1, GET)); + // min + if (det_type == defs::CHIPTESTBOARD) + REQUIRE_THROWS(caller.call("adcclk", {"1", "MHz"}, -1, PUT)); + else + REQUIRE_THROWS(caller.call("adcclk", {"9", "MHz"}, -1, PUT)); + // max + if (det_type == defs::CHIPTESTBOARD) + REQUIRE_THROWS(caller.call("adcclk", {"66", "MHz"}, -1, PUT)); + else + REQUIRE_THROWS(caller.call("adcclk", {"301", "MHz"}, -1, PUT)); + { std::ostringstream oss; - caller.call("adcclk", {"20"}, -1, PUT, oss); - REQUIRE(oss.str() == "adcclk 20\n"); + caller.call("adcclk", {"20MHz"}, -1, PUT, oss); + REQUIRE(oss.str() == "adcclk 20MHz\n"); } { std::ostringstream oss; - caller.call("adcclk", {"10"}, -1, PUT, oss); - REQUIRE(oss.str() == "adcclk 10\n"); + caller.call("adcclk", {"10000000"}, -1, PUT, oss); + REQUIRE(oss.str() == "adcclk 10000000\n"); + } + + { + std::ostringstream oss; + caller.call("adcclk", {}, -1, GET, oss); + REQUIRE(oss.str() == "adcclk 10MHz\n"); + } + { + std::ostringstream oss; + caller.call("adcclk", {"15000", "kHz"}, -1, PUT, oss); + REQUIRE(oss.str() == "adcclk 15000kHz\n"); } { std::ostringstream oss; caller.call("adcclk", {}, -1, GET, oss); - REQUIRE(oss.str() == "adcclk 10\n"); + REQUIRE(oss.str() == "adcclk 15MHz\n"); } + { + std::ostringstream oss; + caller.call("adcclk", {"15.75", "MHz"}, -1, PUT, oss); + REQUIRE(oss.str() == "adcclk 15.75MHz\n"); + } + { + std::ostringstream oss; + caller.call("adcclk", {}, -1, GET, oss); + REQUIRE(oss.str() == "adcclk 15.75MHz\n"); + } + std::cout << "Resetting adc clock to :" << ToString(prev_val) + << std::endl; for (int i = 0; i != det.size(); ++i) { det.setADCClock(prev_val[i], {i}); } @@ -952,25 +994,119 @@ TEST_CASE("runclk", "[.detectorintegration]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); - if (det_type == defs::CHIPTESTBOARD) { + if (det_type == defs::CHIPTESTBOARD || + det_type == defs::XILINX_CHIPTESTBOARD) { auto prev_val = det.getRUNClock(); + + REQUIRE_NOTHROW(caller.call("runclk", {"MHZ"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("runclk", {"mhz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("runclk", {"MHz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("runclk", {"kHz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("runclk", {"Hz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("runclk", {}, -1, GET)); + // min + if (det_type == defs::CHIPTESTBOARD) + REQUIRE_THROWS(caller.call("runclk", {"1", "MHz"}, -1, PUT)); + else + REQUIRE_THROWS(caller.call("runclk", {"9", "MHz"}, -1, PUT)); + // max + REQUIRE_THROWS(caller.call("runclk", {"301", "MHz"}, -1, PUT)); + { std::ostringstream oss; - caller.call("runclk", {"20"}, -1, PUT, oss); - REQUIRE(oss.str() == "runclk 20\n"); + caller.call("runclk", {"20MHz"}, -1, PUT, oss); + REQUIRE(oss.str() == "runclk 20MHz\n"); } { std::ostringstream oss; - caller.call("runclk", {"10"}, -1, PUT, oss); - REQUIRE(oss.str() == "runclk 10\n"); + caller.call("runclk", {"10000000"}, -1, PUT, oss); + REQUIRE(oss.str() == "runclk 10000000\n"); + } + + { + std::ostringstream oss; + caller.call("runclk", {}, -1, GET, oss); + REQUIRE(oss.str() == "runclk 10MHz\n"); + } + { + std::ostringstream oss; + caller.call("runclk", {"15000", "kHz"}, -1, PUT, oss); + REQUIRE(oss.str() == "runclk 15000kHz\n"); } { std::ostringstream oss; caller.call("runclk", {}, -1, GET, oss); - REQUIRE(oss.str() == "runclk 10\n"); + REQUIRE(oss.str() == "runclk 15MHz\n"); + } + { + std::ostringstream oss; + caller.call("runclk", {"15.75", "MHz"}, -1, PUT, oss); + REQUIRE(oss.str() == "runclk 15.75MHz\n"); + } + { + std::ostringstream oss; + caller.call("runclk", {}, -1, GET, oss); + REQUIRE(oss.str() == "runclk 15.75MHz\n"); + } + // tolerance + auto prev_exptime = det.getExptime(); + auto prev_period = det.getPeriod(); + auto prev_delay = det.getDelayAfterTrigger(); + { + caller.call("runclk", {"80", "MHz"}, -1, PUT); + { + std::ostringstream oss; + REQUIRE_NOTHROW( + caller.call("exptime", {"10012", "ns"}, -1, PUT)); + REQUIRE_NOTHROW(caller.call("exptime", {"ns"}, -1, GET, oss)); + REQUIRE(oss.str() == "exptime 10013ns\n"); + } + { + std::ostringstream oss; + REQUIRE_NOTHROW( + caller.call("exptime", {"10013", "ns"}, -1, PUT)); + REQUIRE_NOTHROW(caller.call("exptime", {"ns"}, -1, GET, oss)); + REQUIRE(oss.str() == "exptime 10013ns\n"); + } + { + std::ostringstream oss; + REQUIRE_NOTHROW( + caller.call("exptime", {"10019", "ns"}, -1, PUT)); + REQUIRE_NOTHROW(caller.call("exptime", {"ns"}, -1, GET, oss)); + REQUIRE(oss.str() == "exptime 10025ns\n"); + } + { + std::ostringstream oss; + REQUIRE_NOTHROW( + caller.call("period", {"10125", "ns"}, -1, PUT)); + REQUIRE_NOTHROW(caller.call("period", {"ns"}, -1, GET, oss)); + REQUIRE(oss.str() == "period 10125ns\n"); + } + { + std::ostringstream oss; + REQUIRE_NOTHROW( + caller.call("period", {"10124", "ns"}, -1, PUT)); + REQUIRE_NOTHROW(caller.call("period", {"ns"}, -1, GET, oss)); + REQUIRE(oss.str() == "period 10125ns\n"); + } + { + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("delay", {"10125", "ns"}, -1, PUT)); + REQUIRE_NOTHROW(caller.call("delay", {"ns"}, -1, GET, oss)); + REQUIRE(oss.str() == "delay 10125ns\n"); + } + { + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("delay", {"10124", "ns"}, -1, PUT)); + REQUIRE_NOTHROW(caller.call("delay", {"ns"}, -1, GET, oss)); + REQUIRE(oss.str() == "delay 10125ns\n"); + } } for (int i = 0; i != det.size(); ++i) { det.setRUNClock(prev_val[i], {i}); + det.setExptime(prev_exptime[i], {i}); + det.setPeriod(prev_period[i], {i}); + det.setDelayAfterTrigger(prev_delay[i], {i}); } } else { // clock index might work @@ -983,6 +1119,11 @@ TEST_CASE("syncclk", "[.detectorintegration]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::CHIPTESTBOARD) { + REQUIRE_NOTHROW(caller.call("syncclk", {"MHZ"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("syncclk", {"mhz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("syncclk", {"MHz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("syncclk", {"kHz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("syncclk", {"Hz"}, -1, GET)); REQUIRE_NOTHROW(caller.call("syncclk", {}, -1, GET)); } else { // clock index might work @@ -1249,22 +1390,59 @@ TEST_CASE("dbitclk", "[.detectorintegration]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); - if (det_type == defs::CHIPTESTBOARD) { + if (det_type == defs::CHIPTESTBOARD || + det_type == defs::XILINX_CHIPTESTBOARD) { auto prev_val = det.getDBITClock(); + + REQUIRE_NOTHROW(caller.call("dbitclk", {"MHZ"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("dbitclk", {"mhz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("dbitclk", {"MHz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("dbitclk", {"kHz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("dbitclk", {"Hz"}, -1, GET)); + REQUIRE_NOTHROW(caller.call("dbitclk", {}, -1, GET)); + // min + if (det_type == defs::CHIPTESTBOARD) + REQUIRE_THROWS(caller.call("dbitclk", {"1", "MHz"}, -1, PUT)); + else + REQUIRE_THROWS(caller.call("dbitclk", {"9", "MHz"}, -1, PUT)); + // max + REQUIRE_THROWS(caller.call("dbitclk", {"301", "MHz"}, -1, PUT)); + { std::ostringstream oss; - caller.call("dbitclk", {"20"}, -1, PUT, oss); - REQUIRE(oss.str() == "dbitclk 20\n"); + caller.call("dbitclk", {"20MHz"}, -1, PUT, oss); + REQUIRE(oss.str() == "dbitclk 20MHz\n"); } { std::ostringstream oss; - caller.call("dbitclk", {"10"}, -1, PUT, oss); - REQUIRE(oss.str() == "dbitclk 10\n"); + caller.call("dbitclk", {"10000000"}, -1, PUT, oss); + REQUIRE(oss.str() == "dbitclk 10000000\n"); + } + + { + std::ostringstream oss; + caller.call("dbitclk", {}, -1, GET, oss); + REQUIRE(oss.str() == "dbitclk 10MHz\n"); + } + { + std::ostringstream oss; + caller.call("dbitclk", {"15000", "kHz"}, -1, PUT, oss); + REQUIRE(oss.str() == "dbitclk 15000kHz\n"); } { std::ostringstream oss; caller.call("dbitclk", {}, -1, GET, oss); - REQUIRE(oss.str() == "dbitclk 10\n"); + REQUIRE(oss.str() == "dbitclk 15MHz\n"); + } + { + std::ostringstream oss; + caller.call("dbitclk", {"15.75", "MHz"}, -1, PUT, oss); + REQUIRE(oss.str() == "dbitclk 15.75MHz\n"); + } + { + std::ostringstream oss; + caller.call("dbitclk", {}, -1, GET, oss); + REQUIRE(oss.str() == "dbitclk 15.75MHz\n"); } for (int i = 0; i != det.size(); ++i) { det.setDBITClock(prev_val[i], {i}); diff --git a/slsSupportLib/include/sls/ToString.h b/slsSupportLib/include/sls/ToString.h index 777a98207..7035f9c38 100644 --- a/slsSupportLib/include/sls/ToString.h +++ b/slsSupportLib/include/sls/ToString.h @@ -108,6 +108,12 @@ ToString(From t) { } } +/** Convert frequency with specified output unit */ +std::string ToString(defs::Hz f, defs::FrequencyUnit unit); + +/** Convert frequency automatically selecting the unit */ +std::string ToString(defs::Hz f); + /** Conversion of floating point values, removes trailing zeros*/ template typename std::enable_if::value, std::string>::type @@ -279,7 +285,23 @@ ToString(const T &container, const std::string &unit) { return os.str(); } +/** Container and specified unit, call ToString(value, FrequencyUnit) */ template +typename std::enable_if::value, std::string>::type +ToString(const T &container, defs::FrequencyUnit unit) { + std::ostringstream os; + os << '['; + if (!container.empty()) { + auto it = container.cbegin(); + os << ToString(*it++, unit); + while (it != container.cend()) + os << ", " << ToString(*it++, unit); + } + os << ']'; + return os.str(); +} + +template ::value, int> = 0> T StringTo(const std::string &t, const std::string &unit) { double tval{0}; try { @@ -304,6 +326,33 @@ T StringTo(const std::string &t, const std::string &unit) { } } +template ::value, int> = 0> +T StringTo(const std::string &f, const std::string &unit) { + double fval{0}; + try { + fval = std::stod(f); + } catch (const std::invalid_argument &e) { + throw RuntimeError("Could not convert string to frequency"); + } + auto unitLower = [&] { + std::string result = unit; + std::transform(result.begin(), result.end(), result.begin(), + [](unsigned char c) { return std::tolower(c); }); + return result; + }(); + + if (unitLower == "mhz") { + return T(static_cast(fval * 1e6)); + } else if (unitLower == "khz") { + return T(static_cast(fval * 1e3)); + } else if (unitLower.empty() || unitLower == "hz") { + return T(static_cast(fval)); + } else { + throw RuntimeError( + "Invalid unit in conversion from string to frequency"); + } +} + template T StringTo(const std::string &t) { std::string tmp{t}; auto unit = RemoveUnit(tmp); diff --git a/slsSupportLib/include/sls/TypeTraits.h b/slsSupportLib/include/sls/TypeTraits.h index 1a153e67b..926b2227d 100644 --- a/slsSupportLib/include/sls/TypeTraits.h +++ b/slsSupportLib/include/sls/TypeTraits.h @@ -1,6 +1,8 @@ // SPDX-License-Identifier: LGPL-3.0-or-other // Copyright (C) 2021 Contributors to the SLS Detector Package #pragma once +#include "sls/sls_detector_defs.h" + #include #include @@ -120,4 +122,9 @@ struct has_bool_isValid : std::false_type {}; template struct has_bool_isValid().isValid)>> : std::is_same().isValid), bool> {}; + +template struct is_frequency : std::false_type {}; + +template <> struct is_frequency : std::true_type {}; + } // namespace sls \ No newline at end of file diff --git a/slsSupportLib/include/sls/sls_detector_defs.h b/slsSupportLib/include/sls/sls_detector_defs.h index 54285ba17..283eb2f5e 100644 --- a/slsSupportLib/include/sls/sls_detector_defs.h +++ b/slsSupportLib/include/sls/sls_detector_defs.h @@ -221,6 +221,16 @@ class slsDetectorDefs { std::map addJsonHeader; }; + struct Hz { + int value{0}; + explicit Hz(int v) : value(v){}; + constexpr bool operator==(const Hz &other) const { + return (value == other.value); + } + }; + + enum class FrequencyUnit { Hz, kHz, MHz }; + #endif enum frameDiscardPolicy { NO_DISCARD, @@ -854,7 +864,6 @@ typedef struct { #endif #ifdef __cplusplus - // TODO! discuss this #include //hmm... but currently no way around namespace sls { diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 1b1f5ce66..32fba195b 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -3,11 +3,11 @@ /** API versions */ #define APILIB "0.0.0 0x250909" #define APIRECEIVER "0.0.0 0x250822" -#define APICTB "0.0.0 0x260427" +#define APICTB "0.0.0 0x260506" #define APIGOTTHARD2 "0.0.0 0x260427" #define APIMOENCH "0.0.0 0x260424" #define APIEIGER "0.0.0 0x260424" -#define APIXILINXCTB "0.0.0 0x260427" +#define APIXILINXCTB "0.0.0 0x260506" #define APIJUNGFRAU "0.0.0 0x260424" -#define APIMYTHEN3 "0.0.0 0x260427" -#define APIMATTERHORN "0.0.0 0x260212" \ No newline at end of file +#define APIMYTHEN3 "0.0.0 0x260506" +#define APIMATTERHORN "0.0.0 0x260212" diff --git a/slsSupportLib/src/ToString.cpp b/slsSupportLib/src/ToString.cpp index dedb2f165..505b4517f 100644 --- a/slsSupportLib/src/ToString.cpp +++ b/slsSupportLib/src/ToString.cpp @@ -741,6 +741,36 @@ std::string ToString(const defs::collectionMode s) { const std::string &ToString(const std::string &s) { return s; } +std::string ToString(defs::Hz f, defs::FrequencyUnit unit) { + double val = static_cast(f.value); + std::ostringstream os; + switch (unit) { + case defs::FrequencyUnit::Hz: + os << val << "Hz"; + break; + case defs::FrequencyUnit::kHz: + os << val / (static_cast(1e3)) << "kHz"; + break; + case defs::FrequencyUnit::MHz: + os << val / (static_cast(1e6)) << "MHz"; + break; + default: + throw std::runtime_error("Unknown frequency unit"); + } + return os.str(); +} + +std::string ToString(defs::Hz f) { + int val = f.value; + if (val < 1e3) { + return ToString(f, defs::FrequencyUnit::Hz); + } else if (val < 1e6) { + return ToString(f, defs::FrequencyUnit::kHz); + } else { + return ToString(f, defs::FrequencyUnit::MHz); + } +} + template <> defs::detectorType StringTo(const std::string &s) { if (s == "Eiger") return defs::EIGER; diff --git a/slsSupportLib/tests/test-ToString.cpp b/slsSupportLib/tests/test-ToString.cpp index 3d35004e8..0c35bdfc0 100644 --- a/slsSupportLib/tests/test-ToString.cpp +++ b/slsSupportLib/tests/test-ToString.cpp @@ -76,6 +76,15 @@ TEST_CASE("conversion from duration to string", "[support]") { REQUIRE(ToString(us(-100)) == "-100us"); } +TEST_CASE("conversion from frequency to string", "[support]") { + REQUIRE(ToString(defs::Hz(150)) == "150Hz"); + REQUIRE(ToString(defs::Hz(1500)) == "1.5kHz"); + REQUIRE(ToString(defs::Hz(1500000)) == "1.5MHz"); + REQUIRE(ToString(defs::Hz(150), defs::FrequencyUnit::Hz) == "150Hz"); + REQUIRE(ToString(defs::Hz(150), defs::FrequencyUnit::kHz) == "0.15kHz"); + REQUIRE(ToString(defs::Hz(150), defs::FrequencyUnit::MHz) == "0.00015MHz"); +} + TEST_CASE("Convert vector of time", "[support]") { std::vector vec{ns(150), us(10), ns(600)}; REQUIRE(ToString(vec) == "[150ns, 10us, 600ns]"); @@ -155,6 +164,15 @@ TEST_CASE("string to std::chrono::duration", "[support]") { REQUIRE_THROWS(StringTo("asvn")); } +TEST_CASE("string to frequency", "[support]") { + REQUIRE(StringTo("150") == defs::Hz(150)); + REQUIRE(StringTo("150Hz") == defs::Hz(150)); + REQUIRE(StringTo("1.5kHz") == defs::Hz(1500)); + REQUIRE(StringTo("1.5MHz") == defs::Hz(1500000)); + REQUIRE_THROWS(StringTo("5xs")); + REQUIRE_THROWS(StringTo("asvn")); +} + TEST_CASE("string to detectorType") { using dt = slsDetectorDefs::detectorType; REQUIRE(StringTo
("Eiger") == dt::EIGER);