diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 5e7442cae..38cb5291a 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -41,7 +41,7 @@ set(SPHINX_SOURCE_FILES src/pydetector.rst src/pyenums.rst src/pyexamples.rst - src/pyPatternGenerator.rst + src/pypatterngenerator.rst src/servers.rst src/multidet.rst src/receiver_api.rst diff --git a/docs/images_src/detector_data_format.drawio b/docs/images_src/detector_data_format.drawio index 1287bec75..5245aeaf5 100644 --- a/docs/images_src/detector_data_format.drawio +++ b/docs/images_src/detector_data_format.drawio @@ -1,1307 +1,1371 @@ - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - + + + + - - + + - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images_src/system_communication_architecture.drawio b/docs/images_src/system_communication_architecture.drawio index 0e22ece27..5f3b7c845 100644 --- a/docs/images_src/system_communication_architecture.drawio +++ b/docs/images_src/system_communication_architecture.drawio @@ -1,785 +1,830 @@ - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/Testing.rst b/docs/src/Testing.rst index 99dd202da..b735e2d66 100644 --- a/docs/src/Testing.rst +++ b/docs/src/Testing.rst @@ -49,7 +49,7 @@ If you want to disable testing that involves a data file that require pc tuning .. note :: - Ensure that there are no spaces betweent the tags and no '.', else hardly any test will be matched. + Ensure that there are no spaces between the tags and no '.', else hardly any test will be matched. .. _python simulator script: @@ -104,7 +104,7 @@ To run only tests requiring virtual detectors use the following command: #in build python -m pytest -m detectorintegration ../python/tests/ -There is a helper test fixture in ``slsDetectorSoftware/python/tests/conftest.py`` called ``session_simulator`` that sets up virtual detectors and yields the test for all detectors. The set up is done for every test automatically. Note that the fixture persist over the entire session e.g. the fixture is setup one detector at a time and runs all tests using this fixture before cleaning up and moving on to the next detector. It saves time if the setup and cleanup is expensive. +There is a helper test fixture in ``slsDetectorSoftware/python/tests/conftest.py`` called ``session_simulator`` that sets up virtual detectors and yields the test for all detectors. The set up is done for every test automatically. Note that the fixture persists over the entire session e.g. the fixture is setup one detector at a time and runs all tests using this fixture before cleaning up and moving on to the next detector. It saves time if the setup and cleanup is expensive. Example usage: diff --git a/docs/src/configcommands.rst b/docs/src/configcommands.rst index dbc0eabd6..90dcce0cb 100644 --- a/docs/src/configcommands.rst +++ b/docs/src/configcommands.rst @@ -18,8 +18,8 @@ This package typically deals with two types of network interfaces: Client to Module ----------------- -.. figure:: images/Client_module_commands.png - :target: _images/Client_module_commands.png +.. figure:: images/Client_module_commands.svg + :target: _images/Client_module_commands.svg :width: 700px :align: center :alt: Client Module Commands @@ -60,8 +60,8 @@ Each physical module has its own unique IP address. As the IPs are already diffe Client to Receiver -------------------- -.. figure:: images/Client_receiver_commands.png - :target: _images/Client_receiver_commands.png +.. figure:: images/Client_receiver_commands.svg + :target: _images/Client_receiver_commands.svg :align: center :alt: Client Receiver Commands @@ -112,8 +112,8 @@ For example, using default TCP ports (1954, 1955): Module to Receiver ------------------- -.. figure:: images/Module_receiver_commands.png - :target: _images/Module_receiver_commands.png +.. figure:: images/Module_receiver_commands.svg + :target: _images/Module_receiver_commands.svg :align: center :alt: Module Receiver Commands @@ -139,9 +139,9 @@ Unlike TCP, the module (hardware) requires explicit configuration for sending im Info on where to send the image from the module to. -**UDP Desination IP** - The IP of the receiver PC's 10 GbE interface, usually found via ``ifconfig``. Command: `udp_dstip `_. For 1GbE interface and for this command, one can use 'auto' as an argument, which will pick up the IP from the `rx_hostname command `_. +**UDP Destination IP** - The IP of the receiver PC's 10 GbE interface, usually found via ``ifconfig``. Command: `udp_dstip `_. For 1GbE interface and for this command, one can use 'auto' as an argument, which will pick up the IP from the `rx_hostname command `_. -**UDP desintation MAC** - Also obtained from the interface using ``ifconfig``. For built-in receivers, the module configures this automatically from the ``UDP destination IP``. For custom receivers, it must be explicitly provided. Command: `udp_dstmac `_ +**UDP destination MAC** - Also obtained from the interface using ``ifconfig``. For built-in receivers, the module configures this automatically from the ``UDP destination IP``. For custom receivers, it must be explicitly provided. Command: `udp_dstmac `_ **UDP destination port** - Ensure uniqueness if multiple users share the interface. Command: `udp_dstport `_ @@ -173,13 +173,13 @@ As it is a one-way communication (module to receiver with no reply or acknowledg **UDP source port** - This is hardcoded in every module to the same value in the detector server and cannot be changed. -Note: If there is a second UDP port on the module, use 'udp_dstport2' or 'udp_dstip2'etc. See `here `_ for more detector specific info. +Note: If there is a second UDP port on the module, use 'udp_dstport2' or 'udp_dstip2' etc. See `here `_ for more detector specific info. Receiver to GUI ----------------- -.. figure:: images/Receiver_gui_commands.png - :target: _images/Receiver_gui_commands.png +.. figure:: images/Receiver_gui_commands.svg + :target: _images/Receiver_gui_commands.svg :align: center :alt: Receiver GUI Commands @@ -216,8 +216,8 @@ Enabling the GUI automatically streams images from the receiver via ZMQ sockets. Receiver to External Processing -------------------------------- -.. figure:: images/Receiver_external_process_commands.png - :target: _images/Receiver_external_process_commands.png +.. figure:: images/Receiver_external_process_commands.svg + :target: _images/Receiver_external_process_commands.svg :align: center :alt: Click to zoom diff --git a/docs/src/consuming.rst b/docs/src/consuming.rst index 02d23608c..c1190798e 100644 --- a/docs/src/consuming.rst +++ b/docs/src/consuming.rst @@ -81,7 +81,7 @@ The only difference is that you point CMake to $CONDA_PREFIX cmake ../path/to/your/source -DCMAKE_PREFIX_PATH=$CONDA_PREFIX make -Depending on your system compiler you might also have to install gxx_linux-64 to compiled. +Depending on your system compiler you might also have to install gxx_linux-64 to compile. No tools minimal approach ----------------------------- diff --git a/docs/src/dataformat.rst b/docs/src/dataformat.rst index a8c2f0991..e9d9f773d 100644 --- a/docs/src/dataformat.rst +++ b/docs/src/dataformat.rst @@ -11,8 +11,8 @@ Jungfrau Single Port Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Jungfrau_module.png - :target: _images/Jungfrau_module.png +.. image:: images/Jungfrau_module.svg + :target: _images/Jungfrau_module.svg :width: 650px :align: center :alt: Jungfrau Module Single Port Configuration @@ -29,8 +29,8 @@ Total image size = 524,288 bytes Double Port Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Jungfrau_two_port.png - :target: _images/Jungfrau_two_port.png +.. image:: images/Jungfrau_two_port.svg + :target: _images/Jungfrau_two_port.svg :width: 500px :align: center :alt: Jungfrau Module Two Port Configuration @@ -51,8 +51,8 @@ Image size per UDP port or File = 262,144 bytes Read Partial Rows ^^^^^^^^^^^^^^^^^^ -.. image:: images/Jungfrau_read_rows.png - :target: _images/Jungfrau_read_rows.png +.. image:: images/Jungfrau_read_rows.svg + :target: _images/Jungfrau_read_rows.svg :width: 550px :align: center :alt: Jungfrau Module Read Partial Rows Configuration @@ -74,8 +74,8 @@ Moench Single Port Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Moench_module.png - :target: _images/Moench_module.png +.. image:: images/Moench_module.svg + :target: _images/Moench_module.svg :width: 550px :align: center :alt: Moench Module Single Port Configuration @@ -91,8 +91,8 @@ Total image size = 320,000 bytes Double Port Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Moench_two_port.png - :target: _images/Moench_two_port.png +.. image:: images/Moench_two_port.svg + :target: _images/Moench_two_port.svg :width: 400px :align: center :alt: Moench Module Two Port Configuration @@ -113,8 +113,8 @@ Image size per UDP port or File = 160,000 bytes Read Partial Rows ^^^^^^^^^^^^^^^^^^ -.. image:: images/Moench_read_rows.png - :target: _images/Moench_read_rows.png +.. image:: images/Moench_read_rows.svg + :target: _images/Moench_read_rows.svg :width: 400px :align: center :alt: Moench Module Read Partial Rows Configuration @@ -135,8 +135,8 @@ Eiger Default Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Eiger_module.png - :target: _images/Eiger_module.png +.. image:: images/Eiger_module.svg + :target: _images/Eiger_module.svg :width: 350px :align: center :alt: Eiger Module Default Configuration @@ -157,8 +157,8 @@ The myth, the legend, the bottom ports: Demystifying them ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. figure:: images/Eiger_bottom_1.png - :target: _images/Eiger_bottom_1.png +.. figure:: images/Eiger_bottom_1.svg + :target: _images/Eiger_bottom_1.svg :width: 350px :align: center :alt: Eiger Bottom as Firmware gets it @@ -166,8 +166,8 @@ The myth, the legend, the bottom ports: Demystifying them How the firmware gets the images -.. figure:: images/Eiger_bottom_2.png - :target: _images/Eiger_bottom_2.png +.. figure:: images/Eiger_bottom_2.svg + :target: _images/Eiger_bottom_2.svg :width: 350px :align: center :alt: Eiger Bottom after the firmware flips it horizontally @@ -175,8 +175,8 @@ The myth, the legend, the bottom ports: Demystifying them After the firmware flips it horizontally -.. figure:: images/Eiger_bottom_3.png - :target: _images/Eiger_bottom_3.png +.. figure:: images/Eiger_bottom_3.svg + :target: _images/Eiger_bottom_3.svg :width: 350px :align: center :alt: After the software swaps the udp ports @@ -184,8 +184,8 @@ The myth, the legend, the bottom ports: Demystifying them After the software swaps the udp ports -.. figure:: images/Eiger_bottom_4.png - :target: _images/Eiger_bottom_4.png +.. figure:: images/Eiger_bottom_4.svg + :target: _images/Eiger_bottom_4.svg :width: 400px :align: center :alt: After the gui has flipped the bottom vertically @@ -204,7 +204,7 @@ The pixel width can be configured to 4, 8, 16 (default) or 32 bits using the com Flip rows ^^^^^^^^^^ -One can use the command `fliprows `_ to flip the rows vertically for the bottom or top half module. It is sent out to the reciever, but does not flip rows in the output file itself, but rather streams out this info via the json header and thus instructs the GUI to display them correctly. +One can use the command `fliprows `_ to flip the rows vertically for the bottom or top half module. It is sent out to the receiver, but does not flip rows in the output file itself, but rather streams out this info via the json header and thus instructs the GUI to display them correctly. 1GbE/ 10GbE Interfaces ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -223,8 +223,8 @@ Note: Only the activated ports will write data as it does not make sense to writ **Read Partial Rows**: The number of image rows per port can be adjusted using the `readnrows `_ command. By default, 256 rows are read, but a smaller value centers the readout vertically (e.g., 8 rows reads 4 above and 4 below the center). Increasing the value symmetrically expands the region toward the top and bottom. Permissible values depend on dynamic range and 10GbE enable. -.. image:: images/Eiger_read_rows.png - :target: _images/Eiger_read_rows.png +.. image:: images/Eiger_read_rows.svg + :target: _images/Eiger_read_rows.svg :width: 400px :align: center :alt: Eiger Module Read Partial Rows Configuration @@ -247,8 +247,8 @@ As with any standard half-module, it includes one control TCP port (with a hostn In this configuration, the fliprows command cannot be used to flip the entire half-module. Instead, the receiver automatically includes row-flipping information only for the second UDP port in the JSON header, so the GUI can apply the correct orientation during display -.. image:: images/Eiger_quad.png - :target: _images/Eiger_quad.png +.. image:: images/Eiger_quad.svg + :target: _images/Eiger_quad.svg :width: 300px :align: center :alt: Eiger Quad Configuration @@ -263,8 +263,8 @@ Mythen3 Default Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Mythen3_module.png - :target: _images/Mythen3_module.png +.. image:: images/Mythen3_module.svg + :target: _images/Mythen3_module.svg :align: center :alt: Mythen3 Module Default Configuration @@ -279,7 +279,7 @@ Image size = 15,360 bytes Counters ^^^^^^^^^^^ -If all 3 counters are enabeld, the frame size for each channel is multiplied by 3. The counters are stored consecutively per channel. One can disable one or more of the counters using the `counters `_ command. The frame size will then be reduced accordingly. +If all 3 counters are enabled, the frame size for each channel is multiplied by 3. The counters are stored consecutively per channel. One can disable one or more of the counters using the `counters `_ command. The frame size will then be reduced accordingly. Image size = 10,240 bytes - 10 chips (1 x 10 grid) @@ -306,8 +306,8 @@ Gotthard2 Default Configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: images/Gotthard2_module.png - :target: _images/Gotthard2_module.png +.. image:: images/Gotthard2_module.svg + :target: _images/Gotthard2_module.svg :align: center :alt: Gotthard2 Module Default Configuration diff --git a/docs/src/examples.rst b/docs/src/examples.rst index 65d734c8e..138f7bcf3 100644 --- a/docs/src/examples.rst +++ b/docs/src/examples.rst @@ -79,7 +79,7 @@ for communication over TCP. Most commands go on 1952 and only a few such as stop Using the return type sls::Result [e2] ----------------------------------------- -Since many our detectors have multiple modules we cannot return +Since many of our detectors have multiple modules we cannot return a single value when reading from the Detector. Hostname, Ip and also for example exposure time can differ between modules. diff --git a/docs/src/fileformat.rst b/docs/src/fileformat.rst index 4821d541a..d74a4f0b5 100644 --- a/docs/src/fileformat.rst +++ b/docs/src/fileformat.rst @@ -12,7 +12,7 @@ Every acquisition will create a master file and data files. An acquisition can have multiple data files for a single frame. The number of files is determined by the number of UDP ports per module and the number of modules. - * Every modules has its own receiver process. Every receiver process can have 1 or 2 UDP ports. + * Every module has its own receiver process. Every receiver process can have 1 or 2 UDP ports. * Each UDP port will create its own file. Therefore, each receiver can write 1 or 2 files. * So, for example a detector with 4 modules with 2 UDP ports each will create a total of 8 files with file names containing UDP port index **'_d0'** to **'_d7'**. diff --git a/docs/src/firmware.rst b/docs/src/firmware.rst index e2ad00df3..145611e57 100644 --- a/docs/src/firmware.rst +++ b/docs/src/firmware.rst @@ -18,7 +18,7 @@ Upgrade ^^^^^^^^ #. Tftp must be already installed on your pc to use the bcp script. -#. Copy new servers to the board. See :ref:`how to upgrade detector servers` for more detals. A reboot should have started the new linked servers automatically. For Eiger, do not reboot yet as we need to program the firmware via bit files. +#. Copy new servers to the board. See :ref:`how to upgrade detector servers` for more details. A reboot should have started the new linked servers automatically. For Eiger, do not reboot yet as we need to program the firmware via bit files. * This step is crucial when registers between firmwares change. Failure to do so will result in linux on boards to crash and boards can't be pinged anymore. @@ -119,7 +119,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to jungfrauDetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -153,7 +153,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to mythen3DetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -187,7 +187,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to gotthard2DetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -238,7 +238,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to moenchDetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -273,7 +273,7 @@ Program from console # Always ensure that the client and server software are of the same release. # copies server, links new server to ctbDetectorServer, - # removes old server from respawn, sets up new lnked server to respawn + # removes old server from respawn, sets up new linked server to respawn # programs fpga, reboots # older versions: v5.0.0 - 6.0.0 using tftp from tftp folder of pc @@ -295,7 +295,7 @@ Firmware Troubleshooting with blackfin 2. v5.x.x-rcx client after programming will not reboot the blackfin processor, if error occurred. -3. If a reboot occured with an incomplete firmware in flash, the blackfin will most likely not find the mtd3 drive. To see if this drive exists: +3. If a reboot occurred with an incomplete firmware in flash, the blackfin will most likely not find the mtd3 drive. To see if this drive exists: .. code-block:: bash diff --git a/docs/src/images/Client_architecture.png b/docs/src/images/Client_architecture.png deleted file mode 100644 index 17c7f2797..000000000 Binary files a/docs/src/images/Client_architecture.png and /dev/null differ diff --git a/docs/src/images/Client_architecture.svg b/docs/src/images/Client_architecture.svg new file mode 100644 index 000000000..abd7e4159 --- /dev/null +++ b/docs/src/images/Client_architecture.svg @@ -0,0 +1,3 @@ + + +
<<class>> Module
<<class>> Module
<<class>> Module
<<class>> Module
<<class>> Module
<<class>> Module
<<class>> Module (s)
<<class>> Module (s)
C++ API
C++ API
Python API%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%26lt%3Bfont%20face%3D%26quot%3BCourier%20New%26quot%3B%26gt%3BC%2B%2B%20API%26lt%3B%2Ffont%26gt%3B%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfillColor%3D%2377AADD%3BstrokeColor%3D%2377AADD%3BlabelPosition%3Dcenter%3BverticalLabelPosition%3Dmiddle%3Balign%3Dcenter%3BverticalAlign%3Dmiddle%3BfontSize%3D17%3BgradientColor%3Dnone%3BfontColor%3D%23FFFFFF%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22-180%22%20y%3D%224998%22%20width%3D%22146%22%20height%3D%2284%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
Python API%3CmxGr...
CLI
CLI
Qt GUI
Qt GUI
<<class>> Detector
<<class>> Detector
slsDetectorPackage
Client (C++17)
slsDetectorPackage...
CLIENT
CLIENT
Shared Memory(s)
Shared Memory(s)
Module 3
Module 3
Module 2
Module 2
Module 1
Module 1
Module (s)
Module (s)
Module 3
Module 3
Module 2
Module 2
Module 1
Module 1
Receiver (s)
Receiver (s)
\ No newline at end of file diff --git a/docs/src/images/Client_module_commands.png b/docs/src/images/Client_module_commands.png deleted file mode 100644 index e9b71c99a..000000000 Binary files a/docs/src/images/Client_module_commands.png and /dev/null differ diff --git a/docs/src/images/Client_module_commands.svg b/docs/src/images/Client_module_commands.svg new file mode 100644 index 000000000..d12ca0615 --- /dev/null +++ b/docs/src/images/Client_module_commands.svg @@ -0,0 +1,3 @@ + + +
TCP
TCP
Client
Client
TCP
TCP
Control
Control
Module
1952 / 1953
bchip101
Module...
port     = 1952
stopport = 1953
hostname = bchip101
port     = 1952...
Module
1952 / 1953
bchip100
Module...
port     = 1952
stopport = 1953
hostname = bchip100
port     = 1952...
\ No newline at end of file diff --git a/docs/src/images/Client_receiver_commands.png b/docs/src/images/Client_receiver_commands.png deleted file mode 100644 index b3221e1c5..000000000 Binary files a/docs/src/images/Client_receiver_commands.png and /dev/null differ diff --git a/docs/src/images/Client_receiver_commands.svg b/docs/src/images/Client_receiver_commands.svg new file mode 100644 index 000000000..086fbf338 --- /dev/null +++ b/docs/src/images/Client_receiver_commands.svg @@ -0,0 +1,3 @@ + + +
Client
Client
TCP
TCP
Control
Control
Receiver
1955
pc1234
Receiver...
rx_tcpport = 1955
rx_hostname = pc1234
rx_tcpport = 1955...
Receiver
1954
pc1234
Receiver...
rx_tcpport = 1954
rx_hostname = pc1234
rx_tcpport = 1954...
TCP
TCP
\ No newline at end of file diff --git a/docs/src/images/Eiger_bottom_1.png b/docs/src/images/Eiger_bottom_1.png deleted file mode 100644 index c1b8b4617..000000000 Binary files a/docs/src/images/Eiger_bottom_1.png and /dev/null differ diff --git a/docs/src/images/Eiger_bottom_1.svg b/docs/src/images/Eiger_bottom_1.svg new file mode 100644 index 000000000..c724ed26c --- /dev/null +++ b/docs/src/images/Eiger_bottom_1.svg @@ -0,0 +1,3 @@ + + +
UDP Port 1
UDP...
UDP Port 2
UDP...
1
1
3
3
2
2
4
4
\ No newline at end of file diff --git a/docs/src/images/Eiger_bottom_2.png b/docs/src/images/Eiger_bottom_2.png deleted file mode 100644 index a96f12f4d..000000000 Binary files a/docs/src/images/Eiger_bottom_2.png and /dev/null differ diff --git a/docs/src/images/Eiger_bottom_2.svg b/docs/src/images/Eiger_bottom_2.svg new file mode 100644 index 000000000..f9cf84dd6 --- /dev/null +++ b/docs/src/images/Eiger_bottom_2.svg @@ -0,0 +1,3 @@ + + +
UDP Port 1
UDP...
UDP Port 2
UDP...
\ No newline at end of file diff --git a/docs/src/images/Eiger_bottom_3.png b/docs/src/images/Eiger_bottom_3.png deleted file mode 100644 index d60ddb4f2..000000000 Binary files a/docs/src/images/Eiger_bottom_3.png and /dev/null differ diff --git a/docs/src/images/Eiger_bottom_3.svg b/docs/src/images/Eiger_bottom_3.svg new file mode 100644 index 000000000..1217b9120 --- /dev/null +++ b/docs/src/images/Eiger_bottom_3.svg @@ -0,0 +1,3 @@ + + +
UDP Port 1
UDP...
UDP Port 2
UDP...
\ No newline at end of file diff --git a/docs/src/images/Eiger_bottom_4.png b/docs/src/images/Eiger_bottom_4.png deleted file mode 100644 index 1d3fc6e6c..000000000 Binary files a/docs/src/images/Eiger_bottom_4.png and /dev/null differ diff --git a/docs/src/images/Eiger_bottom_4.svg b/docs/src/images/Eiger_bottom_4.svg new file mode 100644 index 000000000..8b89a09f7 --- /dev/null +++ b/docs/src/images/Eiger_bottom_4.svg @@ -0,0 +1,3 @@ + + +
UDP Port 1
UDP...
UDP Port 2
UDP...
1
1
2
2
3
3
4
4
\ No newline at end of file diff --git a/docs/src/images/Eiger_module.png b/docs/src/images/Eiger_module.png deleted file mode 100644 index 44a36d072..000000000 Binary files a/docs/src/images/Eiger_module.png and /dev/null differ diff --git a/docs/src/images/Eiger_module.svg b/docs/src/images/Eiger_module.svg new file mode 100644 index 000000000..a8f4c9a4a --- /dev/null +++ b/docs/src/images/Eiger_module.svg @@ -0,0 +1,3 @@ + + +
Top Half Module
Top Half Module
1
1
2
2
UDP Port 1
UDP...
256 pixels
256 pixels
3
3
4
4
UDP Port 2
UDP...
Control Port
Cont...
256 pixels
256 pixels
Bottom Half Module
Bottom Half Module
UDP Port 1
UDP...
256 pixels
256 pixels
UDP Port 2
UDP...
1
1
3
3
2
2
4
4
256 pixels
256 pixels
Control Port
Cont...
Single Module
Single Module
\ No newline at end of file diff --git a/docs/src/images/Eiger_quad.png b/docs/src/images/Eiger_quad.png deleted file mode 100644 index 462ade28a..000000000 Binary files a/docs/src/images/Eiger_quad.png and /dev/null differ diff --git a/docs/src/images/Eiger_quad.svg b/docs/src/images/Eiger_quad.svg new file mode 100644 index 000000000..cfa951382 --- /dev/null +++ b/docs/src/images/Eiger_quad.svg @@ -0,0 +1,3 @@ + + +
1
1
2
2
256 pixels
256 pixels
4
4
3
3
256 pixels
256 pixels
UDP Port 1
UDP Po...
Control Port
Control...
Quad
(Top Half Module)
Quad...
UDP Port 2
UDP Port...
\ No newline at end of file diff --git a/docs/src/images/Eiger_read_rows.png b/docs/src/images/Eiger_read_rows.png deleted file mode 100644 index 5f2175de0..000000000 Binary files a/docs/src/images/Eiger_read_rows.png and /dev/null differ diff --git a/docs/src/images/Eiger_read_rows.svg b/docs/src/images/Eiger_read_rows.svg new file mode 100644 index 000000000..c2f4ff59e --- /dev/null +++ b/docs/src/images/Eiger_read_rows.svg @@ -0,0 +1,3 @@ + + +
1
1
2
2
UDP Port 1
UDP...
3
3
4
4
UDP Port 2
UDP...
UDP Port 1
UDP...
UDP Port 2
UDP...
3
3
2
2
4
4
1
1
\ No newline at end of file diff --git a/docs/src/images/Gotthard2_module.png b/docs/src/images/Gotthard2_module.png deleted file mode 100644 index dffbd45dd..000000000 Binary files a/docs/src/images/Gotthard2_module.png and /dev/null differ diff --git a/docs/src/images/Gotthard2_module.svg b/docs/src/images/Gotthard2_module.svg new file mode 100644 index 000000000..f59b24e63 --- /dev/null +++ b/docs/src/images/Gotthard2_module.svg @@ -0,0 +1,3 @@ + + +
Single Module
Single Module
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
10 Chips
10 Chips
1
1
128 channels
128 channels
Control Port
Control Po...
Veto Data Port
Veto Data P...
Data Port
Data Port
\ No newline at end of file diff --git a/docs/src/images/Jungfrau_module.png b/docs/src/images/Jungfrau_module.png deleted file mode 100644 index 5de6fccbe..000000000 Binary files a/docs/src/images/Jungfrau_module.png and /dev/null differ diff --git a/docs/src/images/Jungfrau_module.svg b/docs/src/images/Jungfrau_module.svg new file mode 100644 index 000000000..90f438373 --- /dev/null +++ b/docs/src/images/Jungfrau_module.svg @@ -0,0 +1,3 @@ + + +
Single Module
Single Module
3
3
1
1
2
2
4
4
7
7
5
5
6
6
8
8
256 pixels
256 pixels
256 pixels
256 pixels
8 Chips
8 Chips
Outer Data Port
Outer Data...
Inner Data Port
Inner Data...
Control Port
Control Po...
\ No newline at end of file diff --git a/docs/src/images/Jungfrau_read_rows.png b/docs/src/images/Jungfrau_read_rows.png deleted file mode 100644 index 701cfa913..000000000 Binary files a/docs/src/images/Jungfrau_read_rows.png and /dev/null differ diff --git a/docs/src/images/Jungfrau_read_rows.svg b/docs/src/images/Jungfrau_read_rows.svg new file mode 100644 index 000000000..66f5784e4 --- /dev/null +++ b/docs/src/images/Jungfrau_read_rows.svg @@ -0,0 +1,3 @@ + + +
3
3
1
1
2
2
4
4
7
7
5
5
6
6
8
8
Outer Data Port
Outer Data...
Inner Data Port
Inner Data...
\ No newline at end of file diff --git a/docs/src/images/Jungfrau_two_port.png b/docs/src/images/Jungfrau_two_port.png deleted file mode 100644 index cd7703111..000000000 Binary files a/docs/src/images/Jungfrau_two_port.png and /dev/null differ diff --git a/docs/src/images/Jungfrau_two_port.svg b/docs/src/images/Jungfrau_two_port.svg new file mode 100644 index 000000000..545c9dfb4 --- /dev/null +++ b/docs/src/images/Jungfrau_two_port.svg @@ -0,0 +1,3 @@ + + +
3
3
1
1
2
2
4
4
7
7
5
5
6
6
8
8
Inner Data Port
Inner Data...
Outer Data Port
Outer Data...
\ No newline at end of file diff --git a/docs/src/images/Module_architecture.png b/docs/src/images/Module_architecture.png deleted file mode 100644 index 5f5c62650..000000000 Binary files a/docs/src/images/Module_architecture.png and /dev/null differ diff --git a/docs/src/images/Module_architecture.svg b/docs/src/images/Module_architecture.svg new file mode 100644 index 000000000..c654a1ee5 --- /dev/null +++ b/docs/src/images/Module_architecture.svg @@ -0,0 +1,3 @@ + + +
Client
Client
Control Server
(C98)
Control Server...
Stop Server
(C98)
Stop Server...
Client 
Client 
On-board CPU
On-board CPU
Registers
Registers
FPGA (VHDL)
FPGA (VHDL)
UDP Generator
UDP Generator
Readout and Processing Logic
Readout and Proces...
Stop
Stop
Control
Control
Sensor & Chip
Sensor & Chip
Control
Control
Data
Data
MODULE
MODULE
Spawns
Spawns
UDP Port
UDP Port
UDP Port 2
UDP Port 2
TCP Port
Control
TCP Port...
TCP Port
Stop
TCP Port...
Receiver
Receiver
Receiver
Receiver
Data
Data
\ No newline at end of file diff --git a/docs/src/images/Module_receiver_commands.png b/docs/src/images/Module_receiver_commands.png deleted file mode 100644 index b9831a7f6..000000000 Binary files a/docs/src/images/Module_receiver_commands.png and /dev/null differ diff --git a/docs/src/images/Module_receiver_commands.svg b/docs/src/images/Module_receiver_commands.svg new file mode 100644 index 000000000..8a5788b65 --- /dev/null +++ b/docs/src/images/Module_receiver_commands.svg @@ -0,0 +1,3 @@ + + +
UDP
UDP
Receiver
pc1234
10.0.1.100
Receiver...
Raw Data 
Packets
Raw Data...
udp src port: hardcoded (32410)
udp_srcip  : 10.0.1.15
udp src port: hardcoded (32410)...
Module
bchip100
Module...
udp_dstport: 50001
udp_dstip  : 10.0.1.100
udp_dstmac : (specify for
custom receivers)
udp_dstport: 50001...
UDP
UDP
Receiver
pc1234
10.0.2.100
Receiver...
Raw Data 
Packets
Raw Data...
Module
bchip101
Module...
udp src port: hardcoded (32410)
udp_srcip  : 10.0.2.15
udp src port: hardcoded (32410)...
udp_dstport: 50002
udp_dstip  : 10.0.2.100
udp_dstmac : (specify for
custom receivers)
udp_dstport: 50002...
\ No newline at end of file diff --git a/docs/src/images/Moench_module.png b/docs/src/images/Moench_module.png deleted file mode 100644 index 975ffb325..000000000 Binary files a/docs/src/images/Moench_module.png and /dev/null differ diff --git a/docs/src/images/Moench_module.svg b/docs/src/images/Moench_module.svg new file mode 100644 index 000000000..f6a3bb867 --- /dev/null +++ b/docs/src/images/Moench_module.svg @@ -0,0 +1,3 @@ + + +
400 pixels
400 pixels
400 pixels
400 pixels
Control Port
Control Port
Outer Data Port
Outer Data...
Inner Data Port
Inner Data...
Single Module
Single Module
\ No newline at end of file diff --git a/docs/src/images/Moench_read_rows.png b/docs/src/images/Moench_read_rows.png deleted file mode 100644 index 696df2120..000000000 Binary files a/docs/src/images/Moench_read_rows.png and /dev/null differ diff --git a/docs/src/images/Moench_read_rows.svg b/docs/src/images/Moench_read_rows.svg new file mode 100644 index 000000000..c6b3f7ad3 --- /dev/null +++ b/docs/src/images/Moench_read_rows.svg @@ -0,0 +1,3 @@ + + +
Outer Data Port
Outer Data...
Inner Data Port
Inner Data...
\ No newline at end of file diff --git a/docs/src/images/Moench_two_port.png b/docs/src/images/Moench_two_port.png deleted file mode 100644 index b3c4f22d7..000000000 Binary files a/docs/src/images/Moench_two_port.png and /dev/null differ diff --git a/docs/src/images/Moench_two_port.svg b/docs/src/images/Moench_two_port.svg new file mode 100644 index 000000000..468c45925 --- /dev/null +++ b/docs/src/images/Moench_two_port.svg @@ -0,0 +1,3 @@ + + +
Inner Data Port
Inner Data...
Outer Data Port
Outer Data...
\ No newline at end of file diff --git a/docs/src/images/Mythen3_module.png b/docs/src/images/Mythen3_module.png deleted file mode 100644 index 73eccfe1f..000000000 Binary files a/docs/src/images/Mythen3_module.png and /dev/null differ diff --git a/docs/src/images/Mythen3_module.svg b/docs/src/images/Mythen3_module.svg new file mode 100644 index 000000000..2fd79812d --- /dev/null +++ b/docs/src/images/Mythen3_module.svg @@ -0,0 +1,3 @@ + + +
Single Module
Single Module
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
10 Chips
10 Chips
128 channels
x
3 counters
128 channels...
Control Port
Control Po...
Data Port
Data Port
\ No newline at end of file diff --git a/docs/src/images/Receiver_architecture.png b/docs/src/images/Receiver_architecture.png deleted file mode 100644 index 8aaf00af4..000000000 Binary files a/docs/src/images/Receiver_architecture.png and /dev/null differ diff --git a/docs/src/images/Receiver_architecture.svg b/docs/src/images/Receiver_architecture.svg new file mode 100644 index 000000000..cf59f0a6f --- /dev/null +++ b/docs/src/images/Receiver_architecture.svg @@ -0,0 +1,3 @@ + + +
Data Streamer
Data Streamer
Data Processor
Data Processor
Listener
Listener
Listener
Listener
Data Processor
Data Processor
Data Streamer
Data Streamer
TCP Server
TCP Server
Client 
Client 
TCP Port
Control
TCP Port...
Module
Module
UDP Port
UDP Port
Assembles 
into images in memory
Assembles...
Optional callbacks 
for online processing
Optional callbacks...
Optional File
Optional File
Optional Data Streaming
Optional Data Streaming
Module
Module
UDP Port 2
UDP Port 2
RECEIVER
RECEIVER
Data packets
Data packets
ZMQ Port
ZMQ Port
ZMQ Port 2
ZMQ Port 2
GUI
GUI
GUI
GUI
Frames
Frames
\ No newline at end of file diff --git a/docs/src/images/Receiver_external_process_commands.png b/docs/src/images/Receiver_external_process_commands.png deleted file mode 100644 index b09b80d74..000000000 Binary files a/docs/src/images/Receiver_external_process_commands.png and /dev/null differ diff --git a/docs/src/images/Receiver_external_process_commands.svg b/docs/src/images/Receiver_external_process_commands.svg new file mode 100644 index 000000000..56c43bf05 --- /dev/null +++ b/docs/src/images/Receiver_external_process_commands.svg @@ -0,0 +1,3 @@ + + +
Client / GUI
Client / GUI
External
Process
129.129.200.175
External...
Processed Data
Processed Data
ZMQ
ZMQ
Receiver streaming out
rx_zmqport = 30001

Receiver streaming out...
Receiver
pc1234
129.129.100.115
Receiver...
Receiver
pc1234
129.129.100.115
Receiver...
Receiver streaming out
rx_zmqport = 30002
Receiver streaming out...
ZMQ
ZMQ

Client listening to 
zmqport : 30004
zmqip   : 129.129.200.175

Client listening to...
External Process:
rx_zmqport (30001) != zmqport (30004)
External Process:...
ZMQ
ZMQ

Client listening to 
zmqport : 30003
zmqip   : 129.129.200.175

Client listening to...
ZMQ
ZMQ
Assembled Data
Assembled Data

External Process listening to 
Ports : 30001, 30002
Ip    : 129.129.100.115

External Process listening to...

External Process streaming out 
Ports : 30003, 30004

External Process streaming out...
\ No newline at end of file diff --git a/docs/src/images/Receiver_gui_commands.png b/docs/src/images/Receiver_gui_commands.png deleted file mode 100644 index 4cef3853f..000000000 Binary files a/docs/src/images/Receiver_gui_commands.png and /dev/null differ diff --git a/docs/src/images/Receiver_gui_commands.svg b/docs/src/images/Receiver_gui_commands.svg new file mode 100644 index 000000000..5e0146754 --- /dev/null +++ b/docs/src/images/Receiver_gui_commands.svg @@ -0,0 +1,3 @@ + + +
ZMQ
ZMQ
ZMQ
ZMQ
GUI:  
zmqport (30001) = rx_zmqport (30001)
GUI:...
Assembled Data
Assembled Data
Receiver streaming out
rx_zmqport = 30001

Receiver streaming out...
Receiver
pc1234
129.129.100.115
Receiver...
Receiver
pc1234
129.129.100.115
Receiver...
Receiver streaming out
rx_zmqport = 30002
Receiver streaming out...
Client / GUI
Client / GUI

Client listening to 
zmqport : 30002
zmqip   : 129.129.100.115

Client listening to...

Client listening to 
zmqport : 30001
zmqip   : 129.129.100.115

Client listening to...
\ No newline at end of file diff --git a/docs/src/images/Soft_upgrade_components.png b/docs/src/images/Soft_upgrade_components.png deleted file mode 100644 index cf715a90f..000000000 Binary files a/docs/src/images/Soft_upgrade_components.png and /dev/null differ diff --git a/docs/src/images/Soft_upgrade_components.svg b/docs/src/images/Soft_upgrade_components.svg new file mode 100644 index 000000000..1ece21d25 --- /dev/null +++ b/docs/src/images/Soft_upgrade_components.svg @@ -0,0 +1,3 @@ + + +
Blackfin on-board 
Detector Server
Blackfin on-board...
FPGA firmware 
(*.bit,*.pof,*.rbf)
FPGA firmware...
slsDetectorPackage
(Client & Receiver)
slsDetectorPackage...
UPGRADE COMPONENTS
UPGRADE COMPONENTS
\ No newline at end of file diff --git a/docs/src/images/System_communication_architecture.png b/docs/src/images/System_communication_architecture.png deleted file mode 100644 index 7376a0590..000000000 Binary files a/docs/src/images/System_communication_architecture.png and /dev/null differ diff --git a/docs/src/images/System_communication_architecture.svg b/docs/src/images/System_communication_architecture.svg new file mode 100644 index 000000000..af7ae4438 --- /dev/null +++ b/docs/src/images/System_communication_architecture.svg @@ -0,0 +1,3 @@ + + +
Module 3
Module 3
Module 2
Module 2
Module 1
Module 1
Module (s)
Module (s)
UDP
UDP
Client / GUI
Client / GUI
ZMQ
ZMQ
ZMQ
ZMQ
ZMQ
ZMQ
External 
Processing
Chain
External...
TCP
TCP
TCP
TCP
Control 1:N
Control 1:N
Control 1:N
Control 1:N
Raw Data Packets 1:1
Raw Data Packets 1:1
Image Data 1:N
Image Data 1:N
Assembled Data 1:N
Assembled Data 1:N
Processed Data 1:1
Processed Data 1:1
Module 3
Module 3
Module 2
Module 2
Module 1
Module 1
Receiver (s)
Receiver (s)
Option 1: Directly 
Option 1: Directly 
Option 2: Indirectly
Option 2: Indirectly
Detector
Detector
\ No newline at end of file diff --git a/docs/src/index.rst b/docs/src/index.rst index 498543384..8a5044cea 100644 --- a/docs/src/index.rst +++ b/docs/src/index.rst @@ -52,7 +52,7 @@ slsDetectorPackage pyenums pypower pyexamples - pyPatternGenerator + pypatterngenerator pattern .. toctree:: diff --git a/docs/src/installation.rst b/docs/src/installation.rst index f9b98b48e..926248843 100644 --- a/docs/src/installation.rst +++ b/docs/src/installation.rst @@ -126,7 +126,7 @@ One can either build using cmake or use the in-built cmk.sh script. .. code-block:: bash - # outside slsDetecorPackage folder + # outside slsDetectorPackage folder mkdir build && cd build # configure & generate Makefiles using cmake by listing all your options @@ -148,7 +148,7 @@ libraries and headers in your project, specify the install directory .. code-block:: bash - # outside slsDetecorPackage folder + # outside slsDetectorPackage folder mkdir build && cd build # configure & generate Makefiles cmake ../slsDetectorPackage -DCMAKE_INSTALL_PREFIX=/your/install/path @@ -253,7 +253,7 @@ using this compiler conda create -n myenv gxx_linux-64 cmake conda activate myenv - # outside slsDetecorPackage folder + # outside slsDetectorPackage folder mkdir build && cd build cmake ../slsDetectorPackage -DCMAKE_PREFIX_PATH=$CONDA_PREFIX make -j12 @@ -311,7 +311,7 @@ using this compiler # activate environment conda activate slsgui - # compile with cmake outside slsDetecorPackage folder + # compile with cmake outside slsDetectorPackage folder mkdir build && cd build cmake ../slsDetectorPackage -DSLS_USE_GUI=ON make -j12 @@ -341,7 +341,7 @@ is to use conda .. code-block:: bash # using cmake or ccmake to enable DSLS_BUILD_DOCS - # outside slsDetecorPackage folder + # outside slsDetectorPackage folder mkdir build && cd build cmake ../slsDetectorPackage -DSLS_BUILD_DOCS=ON diff --git a/docs/src/masterfileattributes.rst b/docs/src/masterfileattributes.rst index 5190ee647..3283de36f 100644 --- a/docs/src/masterfileattributes.rst +++ b/docs/src/masterfileattributes.rst @@ -32,7 +32,7 @@ Eiger +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -95,7 +95,7 @@ Jungfrau +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -146,7 +146,7 @@ Gotthard II +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -195,7 +195,7 @@ Mythen3 +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -262,7 +262,7 @@ Moench +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | @@ -315,7 +315,7 @@ Chip Test Board +-----------------------+-------------------------------------------------+ | Max Frames Per File | Maximum frames per file | +-----------------------+-------------------------------------------------+ - | Frame Discard Policy | Receiever Frame discard policy | + | Frame Discard Policy | Receiver Frame discard policy | | | for partial frames | +-----------------------+-------------------------------------------------+ | Frame Padding | Receiver Frame padding enable | diff --git a/docs/src/multidet.rst b/docs/src/multidet.rst index 4e74854c8..52489a443 100644 --- a/docs/src/multidet.rst +++ b/docs/src/multidet.rst @@ -79,7 +79,7 @@ the shared memory segments would be: The main difference between the command line and the Python API is that you set the index when you create the detector object and you don't have to repeat it for every call. -The C++ API works int the same way. +The C++ API works in the same way. .. code-block:: python diff --git a/docs/src/pattern.rst b/docs/src/pattern.rst index 471a3e570..e2ddc3d89 100644 --- a/docs/src/pattern.rst +++ b/docs/src/pattern.rst @@ -119,4 +119,13 @@ DIO: Driving the 32 FPGA pins corresponding to the lowest 32 bits of the patioct | SR_MODE | clk | EN | PULSE | RD | CHSIN | ANAMode | TBLOAD | +---------+-----+-------+-------+----+-------+---------+--------+ -For Mythen3 the pattern word only connects to output pins of the FPGA when the pattern is running. Afterwards the signals will switch back to other logic in the FPGA. Both CTB's hold the last executed pattern word until a new pattern is started. \ No newline at end of file + +For Mythen3 the pattern word only connects to output pins of the FPGA when the pattern is running. Afterwards the signals will switch back to other logic in the FPGA. Both CTB's hold the last executed pattern word until a new pattern is started. + +**Relation of received data to pattern execution** + +In the default configuration the Ctb will send out udp packets to the sls_receiver for every end of a pattern execution. This behavior can be changed using STREAMING_CTRL_REG, where one can configure a bit position in the 64-bit pattern word to trigger udp packets. This allows to send more than one packet per pattern or also no packets at all. + +The "patternstart" command on the ctb executes the pattern. As long as streaming_ctrl_reg is disabled, every pattern execution using this command will not send UDP packets. + +For Mythen3 the sending of udp packets is not connected to pattern execution. diff --git a/docs/src/pyenums.rst b/docs/src/pyenums.rst index 2c177e618..1d36e6d68 100644 --- a/docs/src/pyenums.rst +++ b/docs/src/pyenums.rst @@ -14,7 +14,7 @@ exposed to Python through pybind11. d = Detector() d.fformat = fileFormat.BINARY - # Altough not recommended for convenience all enums + # Although not recommended for convenience all enums # and some other things can be impored using * from slsdet import * @@ -24,7 +24,7 @@ exposed to Python through pybind11. import slsdet.enums for enum in dir(slsdet.enums): - # filter out special memebers + # filter out special members if not enum.startswith('_'): print(enum) diff --git a/docs/src/pyexamples.rst b/docs/src/pyexamples.rst index 1d7eedd4b..2acc178e3 100755 --- a/docs/src/pyexamples.rst +++ b/docs/src/pyexamples.rst @@ -2,7 +2,7 @@ Examples ================ Some short examples on how to use slsdet. If something is missing don't hesitate to -open an issue in our our `github repo +open an issue in our `github repo `_. @@ -62,7 +62,7 @@ datetime.timedelta, DurationWrapper or by setting the time in seconds. Converting numbers to hex ------------------------------------ -Python support entering numbers in format by using the 0x prefix. However, when reading +Python supports entering numbers in format by using the 0x prefix. However, when reading back you will get a normal integer. This can then be converted to a hex string representation using the built in hex() function. @@ -159,7 +159,7 @@ Non blocking acquire There are mainly two ways to achieve a non blocking acquire when calling from the Python API. One is to manually start the detector and the second one is to launch the normal acquire from a different process. Depending on your measurement -it might also be better to run the other task in a seperate process and use acq in the main thread. +it might also be better to run the other task in a separate process and use acq in the main thread. But lets start looking at the at the manual way: :: diff --git a/docs/src/pygettingstarted.rst b/docs/src/pygettingstarted.rst index 6f234d5ae..311dda940 100644 --- a/docs/src/pygettingstarted.rst +++ b/docs/src/pygettingstarted.rst @@ -11,7 +11,7 @@ Python installation. The examples in this documentation uses `conda `_ since it provides good support also for non Python packages but there are also other alternatives like, pyenv. -Using something like conda also allows you to quickly switch beteen different Python +Using something like conda also allows you to quickly switch between different Python environments. --------------------- diff --git a/docs/src/pyPatternGenerator.rst b/docs/src/pypatterngenerator.rst similarity index 100% rename from docs/src/pyPatternGenerator.rst rename to docs/src/pypatterngenerator.rst diff --git a/docs/src/quick_start_guide.rst b/docs/src/quick_start_guide.rst index 41430cb66..ad5fd3842 100644 --- a/docs/src/quick_start_guide.rst +++ b/docs/src/quick_start_guide.rst @@ -67,7 +67,7 @@ For a Single Module udp_dstport 50012 # 1g data out - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips # udp_srcip 192.168.1.112 # destination udp ip picked up from rx_hostname (if auto) # udp_dstip auto @@ -88,7 +88,7 @@ For a Single Module with custom Receiver (not slsReceiver) # sets destination udp ports (not needed, default is 50001) udp_dstport 50012 - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips udp_srcip 192.168.1.112 # destination udp ip @@ -118,7 +118,7 @@ For Multiple Modules # increasing udp ports (multi detector command) udp_dstport 50012 - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips 0:udp_srcip 192.168.1.112 1:udp_srcip 192.168.1.114 @@ -164,7 +164,7 @@ Compile with SLS_USE_GUI=ON in cmake or -g option in cmk.sh script. One can also .. note :: - | The streaming high water mark (commmand: rx_zmqhwm) and the receiving high water mark (command: zmqhwm) is by default the lib zmq's default (currently 1000). + | The streaming high water mark (command: rx_zmqhwm) and the receiving high water mark (command: zmqhwm) is by default the lib zmq's default (currently 1000). | At Gui startup, these values are set to 2. Hence, for very fast detectors, many frames will be dropped to be able to view the latest in the gui. | One can still change this setting in the gui in the Plot tab (ZMQ Streaming), from the command line or API. | Both hwm's can be set to a -1 to use the lib's default. diff --git a/docs/src/serverupgrade.rst b/docs/src/serverupgrade.rst index a215da8ae..ddeca8c37 100644 --- a/docs/src/serverupgrade.rst +++ b/docs/src/serverupgrade.rst @@ -23,7 +23,7 @@ Upgrade .. code-block:: bash # the following command copies new server, creates a soft link to xxxDetectorServerxxx - # [Jungfrau][CTB][Moench] also deletes the old server binary and edits initttab to respawn server on reboot + # [Jungfrau][CTB][Moench] also deletes the old server binary and edits inittab to respawn server on reboot # Then, the detector controller will reboot (except Eiger) sls_detector_put updatedetectorserver /complete-path-to-binary/xxxDetectorServerxxx @@ -42,7 +42,7 @@ Upgrade .. code-block:: bash # the following command copies new server from pc tftp folder, creates a soft link to xxxDetectorServerxxx - # [Jungfrau][CTB][Moench] also edits initttab to respawn server on reboot + # [Jungfrau][CTB][Moench] also edits inittab to respawn server on reboot # Then, the detector controller will reboot (except Eiger) sls_detector_put copydetectorserver xxxDetectorServerxxx pcxxx diff --git a/docs/src/slsreceiver.rst b/docs/src/slsreceiver.rst index d0bceff0a..07125d056 100644 --- a/docs/src/slsreceiver.rst +++ b/docs/src/slsreceiver.rst @@ -28,7 +28,7 @@ There are three main receiver types. How to start them is described :ref:`below< +======================+====================+=========================================+================================+ | Modules Supported | 1 | Multiple | Multiple | +----------------------+--------------------+-----------------------------------------+--------------------------------+ -| Internal Architecture| Threads per porttt | Multiple child processes of slsReceiver | Multi-threading of slsReceiver | +| Internal Architecture| Threads per port | Multiple child processes of slsReceiver | Multi-threading of slsReceiver | +----------------------+--------------------+-----------------------------------------+--------------------------------+ | ZMQ Streaming | Disabled by default| Disabled by default | Enabled, not optional | +----------------------+--------------------+-----------------------------------------+--------------------------------+ diff --git a/docs/src/slsreceiverheaderformat.rst b/docs/src/slsreceiverheaderformat.rst index 9449db88f..ff85bd1d0 100644 --- a/docs/src/slsreceiverheaderformat.rst +++ b/docs/src/slsreceiverheaderformat.rst @@ -37,4 +37,4 @@ It is 112 bytes and consists of: | The **packetNumber** from detector UDP header is modified in **sls_receiver_header** to number of packets caught by receiver for that frame and the bit mask for each packet caught is the **packetsMask**. The packetsMask is a total of 512 bits due to the largest number of packets per frame among our detectors. -| For eg. Jungfrau has 128 packets per frame. If **packetNumeber** is 128, then this frame is complete. If it is 127 or less, it is a partial frame due to missing packets. If one would still like to use it, the **packetsMask** will specify which packet has been received or is missing. +| For eg. Jungfrau has 128 packets per frame. If **packetNumber** is 128, then this frame is complete. If it is 127 or less, it is a partial frame due to missing packets. If one would still like to use it, the **packetsMask** will specify which packet has been received or is missing. diff --git a/docs/src/softwarearchitecture.rst b/docs/src/softwarearchitecture.rst index b4c56dc86..8638924b1 100644 --- a/docs/src/softwarearchitecture.rst +++ b/docs/src/softwarearchitecture.rst @@ -7,8 +7,8 @@ Software Architecture Introduction ------------------------------------ -.. figure:: images/System_communication_architecture.png - :target: _images/System_communication_architecture.png +.. figure:: images/System_communication_architecture.svg + :target: _images/System_communication_architecture.svg :width: 700px :align: center :alt: System communication architecture @@ -46,8 +46,8 @@ Next, each component is examined in detail. Module ------- -.. figure:: images/Module_architecture.png - :target: _images/Module_architecture.png +.. figure:: images/Module_architecture.svg + :target: _images/Module_architecture.svg :width: 700px :align: center :alt: Module architecture @@ -66,8 +66,8 @@ The module also includes an FPGA with VHDL firmware (file format depends on the Upgrade ^^^^^^^^ -.. figure:: images/Soft_upgrade_components.png - :target: _images/Soft_upgrade_components.png +.. figure:: images/Soft_upgrade_components.svg + :target: _images/Soft_upgrade_components.svg :width: 700px :align: center :alt: Software Upgrade Components @@ -80,7 +80,7 @@ There are mainly three components to the soft upgrade: * Firmware upgrade: The VHDL code running on the FPGA. * slsDetectorPackage upgrade: The client code running on the host PC to control the module(s) and receiver(s) if any. -Please use the `update command `_ when updating both the server and firmware simulataneously and `programfpga command `_ when only updating the firmware. See :ref:`firmware upgrade ` for details. +Please use the `update command `_ when updating both the server and firmware simultaneously and `programfpga command `_ when only updating the firmware. See :ref:`firmware upgrade ` for details. When only updating the detector server, use the `updatedetectorserver command `_ command. See :ref:`detector server upgrade ` for details. @@ -97,8 +97,8 @@ When only updating the detector server, use the `updatedetectorserver command 10k). * Check to see if the 10G link is up (blue or red LED on board, close to SFP+). If not: - * Check transeiver and fibers are compatible (all MMF 850nm or all SMF 1030nm) + * Check transceiver and fibers are compatible (all MMF 850nm or all SMF 1030nm) * Check fiber * Check fiber polarity (if short range, unplug the link anywhere, and look at the light/dark pattern: dark has to mate with light) * For Jungfrau, check if the blue sfp light is blinking rapidly (even when it is not sending data). If so, most likely the link is down and something is wrong with the board. If it connected to a switch, then you do not see it with the ethtool command if link is down. One option is to connect it directly to a pc to see if link is down. - * With nc, try "nc -u -p 50001 -l" in receiving pc, and from another pc try "echo hallo | nc -u 10.1.2.172 50001" to send something to the recieving pc interface to see if the link is up and see if the other nc console receives the hallo. + * With nc, try "nc -u -p 50001 -l" in receiving pc, and from another pc try "echo hallo | nc -u 10.1.2.172 50001" to send something to the receiving pc interface to see if the link is up and see if the other nc console receives the hallo. #. Detector is not acquiring (Not Eiger) * Take an acquisition with many images and using the following steps instead of acquire: @@ -279,7 +279,7 @@ Receiver PC Tuning Options # enable or disable permanently sudo systemctl enable cpupower -#. Give user speicific user scheduling privileges. +#. Give user specific scheduling privileges. .. code-block:: bash # edit /etc/security/limits.conf @@ -365,7 +365,7 @@ For errors due to access or size, use any of the following suggestions. # shared memory ending in jfxx export SLSDETNAME=jfxx - #. USe a different multi shared memory ID + #. Use a different multi shared memory ID .. code-block:: bash sls_detector_put 2-config xxxx.config @@ -447,15 +447,15 @@ Check if the control board or the flat band cable is connected properly. If not, Jungfrau --------- -Temperature event occured -^^^^^^^^^^^^^^^^^^^^^^^^^ +Temperature event occurred +^^^^^^^^^^^^^^^^^^^^^^^^^^^ This will occur only if: * temp_threshold (threshold temperature) has been set to a value * temp_control (temperature control) set to 1 -* and the temperature overshooted the threshold temperature. +* and the temperature overshot the threshold temperature. **Consequence** -* sls_detector_get temp_event will give 1 # temperature event occured +* sls_detector_get temp_event will give 1 # temperature event occurred * the chip will be powered off **Solution** @@ -492,7 +492,7 @@ Cannot get multi module data Cannot stop slaves in sync mode ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -#. If cabling is accessible, ensure termination board and flatband cable between the masters and the slaves are connnected properly. Then try to stop. +#. If cabling is accessible, ensure termination board and flatband cable between the masters and the slaves are connected properly. Then try to stop. #. If cabling is inaccessible, unsync first so that the slaves can get the stop directly from the client using the command. Then, don't use sync mode until the cabling is fixed. .. code-block:: bash diff --git a/docs/src/udpconfig.rst b/docs/src/udpconfig.rst index 847b11899..e54f52ad2 100644 --- a/docs/src/udpconfig.rst +++ b/docs/src/udpconfig.rst @@ -23,7 +23,7 @@ udp_srcmac - Source MAC MAC address of detector UDP interface to send packets from. Do not use for Eiger (uses hardware mac). For others, it is not necessary, but can help for switch and debugging to put unique values for each module. -udp_dstport - Desintation Port +udp_dstport - Destination Port ------------------------------- Port in receiver pc to listen to packets from the detector. diff --git a/docs/src/virtualserver.rst b/docs/src/virtualserver.rst index 239e51490..bbe78a5eb 100644 --- a/docs/src/virtualserver.rst +++ b/docs/src/virtualserver.rst @@ -85,7 +85,7 @@ For a Single Module (With Options) # sets destination udp ports (not needed, default is 50001) udp_dstport 50012 - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips # takes the same ip as hostname udp_srcip auto @@ -111,7 +111,7 @@ For Multiple Modules # sets increasing destination udp ports udp_dstport 50012 - # source udp ips must be same subnet at destintaion udp ips + # source udp ips must be same subnet at destination udp ips 0:udp_srcip 192.168.1.112 1:udp_srcip 192.168.1.114