From 8ae0659478dc8eec3b4e727182141167b314106e Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Fri, 11 Sep 2020 15:09:44 +0200 Subject: [PATCH] docs --- docs/CMakeLists.txt | 9 ++++ docs/gen_server_doc.py.in | 43 +++++++++++++++ docs/src/index.rst | 5 ++ docs/src/servers.rst | 52 +++++++++++++++++++ .../slsDetectorServer_defs.h | 2 +- .../slsDetectorServer_defs.h | 2 +- .../slsDetectorServer_defs.h | 4 +- 7 files changed, 113 insertions(+), 4 deletions(-) create mode 100644 docs/gen_server_doc.py.in create mode 100644 docs/src/servers.rst diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 10b2d4ee1..eba7e0e21 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -38,6 +38,7 @@ set(SPHINX_SOURCE_FILES src/pydetector.rst src/pyenums.rst src/pyexamples.rst + src/servers.rst src/receiver.rst src/result.rst src/type_traits.rst @@ -57,6 +58,11 @@ configure_file( "${SPHINX_BUILD}/conf.py" @ONLY) +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/gen_server_doc.py.in" + "${SPHINX_BUILD}/gen_server_doc.py" + @ONLY) + add_custom_target(docs gendoc COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT} @@ -74,3 +80,6 @@ add_custom_target(rst ${SPHINX_BUILD}/src ${SPHINX_BUILD}/html COMMENT "Generating documentation with Sphinx") + +add_custom_target(hej + python gen_server_doc.py) \ No newline at end of file diff --git a/docs/gen_server_doc.py.in b/docs/gen_server_doc.py.in new file mode 100644 index 000000000..f4d99f05a --- /dev/null +++ b/docs/gen_server_doc.py.in @@ -0,0 +1,43 @@ +import os +import re +from pathlib import Path + +# @CMAKE_CURRENT_BINARY_DIR@ + +src = Path('@CMAKE_SOURCE_DIR@')/'slsDetectorServers/' + +detectors = ['Mythen3', 'Gotthard2', 'Eiger', 'Jungfrau', 'Moench', 'Gotthard'] + + +for det in detectors: + with open(src/f'{det.lower()}DetectorServer/slsDetectorServer_defs.h') as f: + lines = f.read().replace('\\\n', '') + lines = lines.splitlines(keepends = True) + + lines = [l.strip('#define').strip(' ') for l in lines if l.startswith('#define')] + output = [] + signals = [] + fields = ['Name,', 'Value', 'Comment'] + excluded = ['DAC_NAMES', 'DEFAULT_DAC_VALS', 'CLK_NAMES', 'ONCHIP_DAC_NAMES'] + header = f'{fields[0]:35}{fields[1]:35}\n' + output.append(header) + signals.append(header) + for line in lines: + name, *parts = line.split() + arg = ' '.join(parts) + value, *comments = arg.split('//') + value = value.strip('() ') + # value = value.replace(', ', ' ') + value = value.replace('\"', '') + if name not in excluded: + name += ',' + if name.startswith('SIGNAL_'): + signals.append(f'{name:35}{value}\n') + else: + output.append(f'{name:35}\"{value}\"\n') + + + rstpath = Path('@CMAKE_SOURCE_DIR@')/'docs/src/' + with open(f'src/{det.lower()}.csv', 'w') as f: + f.writelines(output) + diff --git a/docs/src/index.rst b/docs/src/index.rst index 369281f42..5ece80817 100644 --- a/docs/src/index.rst +++ b/docs/src/index.rst @@ -50,6 +50,11 @@ Welcome to slsDetectorPackage's documentation! type_traits ToString +.. toctree:: + :caption: Servers + + servers + .. Indices and tables .. ================== diff --git a/docs/src/servers.rst b/docs/src/servers.rst new file mode 100644 index 000000000..91f6a024e --- /dev/null +++ b/docs/src/servers.rst @@ -0,0 +1,52 @@ +Detector Servers +============================================== + +Some general intro + +Mythen3 +------------- + +.. csv-table:: Default values + :file: mythen3.csv + :widths: 35, 35 + :header-rows: 1 + +Gotthard2 +------------- + +.. csv-table:: Default values + :file: gotthard2.csv + :widths: 35, 35 + :header-rows: 1 + +Moench +------------- + +.. csv-table:: Default values + :file: moech.csv + :widths: 35, 35 + :header-rows: 1 + +Eiger +------------- + +.. csv-table:: Default values + :file: eiger.csv + :widths: 35, 35 + :header-rows: 1 + +Jungfrau +------------- + +.. csv-table:: Default values + :file: jungfrau.csv + :widths: 35, 35 + :header-rows: 1 + +Gotthard +------------- + +.. csv-table:: Default values + :file: gotthard.csv + :widths: 35, 35 + :header-rows: 1 \ No newline at end of file diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h index 9fdaf0506..213475dbd 100644 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h @@ -130,7 +130,7 @@ enum MASTERINDEX { MASTER_HARDWARE, OW_MASTER, OW_SLAVE }; #define DAC_MAX_STEPS (4096) #define MAX_SUBFRAME_EXPOSURE_VAL_IN_10NS \ - (0x1FFFFFFF) /** 29 bit register for max subframe exposure value */ +(0x1FFFFFFF) // 29 bit register for max subframe exposure value #define SLAVE_HIGH_VOLTAGE_READ_VAL (-999) #define HIGH_VOLTAGE_TOLERANCE (5) diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h index bc01d327d..399194b48 100644 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h @@ -41,7 +41,7 @@ enum CLKINDEX { ADC_CLK, NUM_CLOCKS }; #define DYNAMIC_RANGE (16) #define NUM_BITS_PER_PIXEL (DYNAMIC_RANGE / 8) #define DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL) -#define CLK_FREQ (32007729) /* Hz */ +#define CLK_FREQ (32007729) // Hz #define MAX_EXT_SIGNALS (1) /** Firmware Definitions */ diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h index f286c05b9..6763f8867 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -69,8 +69,8 @@ enum CLKINDEX { RUN_CLK, ADC_CLK, DBIT_CLK, NUM_CLOCKS }; #define DYNAMIC_RANGE (16) #define NUM_BYTES_PER_PIXEL (DYNAMIC_RANGE / 8) #define DATA_BYTES (NCHIP * NCHAN * NUM_BYTES_PER_PIXEL) -#define CLK_RUN (40) /* MHz */ -#define CLK_SYNC (20) /* MHz */ +#define CLK_RUN (40) // MHz +#define CLK_SYNC (20) // MHz #define ADC_CLK_INDEX (1) #define DBIT_CLK_INDEX (0)