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.
@@ -232,7 +232,7 @@ If you want to run them for a specific virtual detector or a specific test use t
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.
diff --git a/developer/_images/Client_architecture.svg b/developer/_images/Client_architecture.svg
new file mode 100644
index 000000000..abd7e4159
--- /dev/null
+++ b/developer/_images/Client_architecture.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Client_module_commands.svg b/developer/_images/Client_module_commands.svg
new file mode 100644
index 000000000..d12ca0615
--- /dev/null
+++ b/developer/_images/Client_module_commands.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Client_receiver_commands.svg b/developer/_images/Client_receiver_commands.svg
new file mode 100644
index 000000000..086fbf338
--- /dev/null
+++ b/developer/_images/Client_receiver_commands.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Eiger_bottom_1.svg b/developer/_images/Eiger_bottom_1.svg
new file mode 100644
index 000000000..c724ed26c
--- /dev/null
+++ b/developer/_images/Eiger_bottom_1.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Eiger_bottom_2.svg b/developer/_images/Eiger_bottom_2.svg
new file mode 100644
index 000000000..f9cf84dd6
--- /dev/null
+++ b/developer/_images/Eiger_bottom_2.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Eiger_bottom_3.svg b/developer/_images/Eiger_bottom_3.svg
new file mode 100644
index 000000000..1217b9120
--- /dev/null
+++ b/developer/_images/Eiger_bottom_3.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Eiger_bottom_4.svg b/developer/_images/Eiger_bottom_4.svg
new file mode 100644
index 000000000..8b89a09f7
--- /dev/null
+++ b/developer/_images/Eiger_bottom_4.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Eiger_module.svg b/developer/_images/Eiger_module.svg
new file mode 100644
index 000000000..a8f4c9a4a
--- /dev/null
+++ b/developer/_images/Eiger_module.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Eiger_quad.svg b/developer/_images/Eiger_quad.svg
new file mode 100644
index 000000000..cfa951382
--- /dev/null
+++ b/developer/_images/Eiger_quad.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Eiger_read_rows.svg b/developer/_images/Eiger_read_rows.svg
new file mode 100644
index 000000000..c2f4ff59e
--- /dev/null
+++ b/developer/_images/Eiger_read_rows.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Gotthard2_module.svg b/developer/_images/Gotthard2_module.svg
new file mode 100644
index 000000000..f59b24e63
--- /dev/null
+++ b/developer/_images/Gotthard2_module.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Jungfrau_module.svg b/developer/_images/Jungfrau_module.svg
new file mode 100644
index 000000000..90f438373
--- /dev/null
+++ b/developer/_images/Jungfrau_module.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Jungfrau_read_rows.svg b/developer/_images/Jungfrau_read_rows.svg
new file mode 100644
index 000000000..66f5784e4
--- /dev/null
+++ b/developer/_images/Jungfrau_read_rows.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Jungfrau_two_port.svg b/developer/_images/Jungfrau_two_port.svg
new file mode 100644
index 000000000..545c9dfb4
--- /dev/null
+++ b/developer/_images/Jungfrau_two_port.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Module_architecture.svg b/developer/_images/Module_architecture.svg
new file mode 100644
index 000000000..c654a1ee5
--- /dev/null
+++ b/developer/_images/Module_architecture.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Module_receiver_commands.svg b/developer/_images/Module_receiver_commands.svg
new file mode 100644
index 000000000..8a5788b65
--- /dev/null
+++ b/developer/_images/Module_receiver_commands.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Moench_module.svg b/developer/_images/Moench_module.svg
new file mode 100644
index 000000000..f6a3bb867
--- /dev/null
+++ b/developer/_images/Moench_module.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Moench_read_rows.svg b/developer/_images/Moench_read_rows.svg
new file mode 100644
index 000000000..c6b3f7ad3
--- /dev/null
+++ b/developer/_images/Moench_read_rows.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Moench_two_port.svg b/developer/_images/Moench_two_port.svg
new file mode 100644
index 000000000..468c45925
--- /dev/null
+++ b/developer/_images/Moench_two_port.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Mythen3_module.svg b/developer/_images/Mythen3_module.svg
new file mode 100644
index 000000000..2fd79812d
--- /dev/null
+++ b/developer/_images/Mythen3_module.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Receiver_architecture.svg b/developer/_images/Receiver_architecture.svg
new file mode 100644
index 000000000..cf59f0a6f
--- /dev/null
+++ b/developer/_images/Receiver_architecture.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Receiver_external_process_commands.svg b/developer/_images/Receiver_external_process_commands.svg
new file mode 100644
index 000000000..56c43bf05
--- /dev/null
+++ b/developer/_images/Receiver_external_process_commands.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Receiver_gui_commands.svg b/developer/_images/Receiver_gui_commands.svg
new file mode 100644
index 000000000..5e0146754
--- /dev/null
+++ b/developer/_images/Receiver_gui_commands.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/Soft_upgrade_components.svg b/developer/_images/Soft_upgrade_components.svg
new file mode 100644
index 000000000..1ece21d25
--- /dev/null
+++ b/developer/_images/Soft_upgrade_components.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_images/System_communication_architecture.svg b/developer/_images/System_communication_architecture.svg
new file mode 100644
index 000000000..af7ae4438
--- /dev/null
+++ b/developer/_images/System_communication_architecture.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/developer/_sources/Testing.rst.txt b/developer/_sources/Testing.rst.txt
index 99dd202da..b735e2d66 100644
--- a/developer/_sources/Testing.rst.txt
+++ b/developer/_sources/Testing.rst.txt
@@ -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/developer/_sources/configcommands.rst.txt b/developer/_sources/configcommands.rst.txt
index dbc0eabd6..90dcce0cb 100644
--- a/developer/_sources/configcommands.rst.txt
+++ b/developer/_sources/configcommands.rst.txt
@@ -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/developer/_sources/consuming.rst.txt b/developer/_sources/consuming.rst.txt
index 04465f942..fadf5611b 100644
--- a/developer/_sources/consuming.rst.txt
+++ b/developer/_sources/consuming.rst.txt
@@ -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/developer/_sources/dataformat.rst.txt b/developer/_sources/dataformat.rst.txt
index a8c2f0991..e9d9f773d 100644
--- a/developer/_sources/dataformat.rst.txt
+++ b/developer/_sources/dataformat.rst.txt
@@ -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/developer/_sources/examples.rst.txt b/developer/_sources/examples.rst.txt
index 65d734c8e..138f7bcf3 100644
--- a/developer/_sources/examples.rst.txt
+++ b/developer/_sources/examples.rst.txt
@@ -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/developer/_sources/fileformat.rst.txt b/developer/_sources/fileformat.rst.txt
index a9594a5e1..0c870ff08 100644
--- a/developer/_sources/fileformat.rst.txt
+++ b/developer/_sources/fileformat.rst.txt
@@ -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/developer/_sources/firmware.rst.txt b/developer/_sources/firmware.rst.txt
index e2ad00df3..145611e57 100644
--- a/developer/_sources/firmware.rst.txt
+++ b/developer/_sources/firmware.rst.txt
@@ -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/developer/_sources/index.rst.txt b/developer/_sources/index.rst.txt
index 498543384..8a5044cea 100644
--- a/developer/_sources/index.rst.txt
+++ b/developer/_sources/index.rst.txt
@@ -52,7 +52,7 @@ slsDetectorPackage
pyenums
pypower
pyexamples
- pyPatternGenerator
+ pypatterngenerator
pattern
.. toctree::
diff --git a/developer/_sources/installation.rst.txt b/developer/_sources/installation.rst.txt
index f9b98b48e..926248843 100644
--- a/developer/_sources/installation.rst.txt
+++ b/developer/_sources/installation.rst.txt
@@ -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/developer/_sources/masterfileattributes.rst.txt b/developer/_sources/masterfileattributes.rst.txt
index e21e4915d..24990f0db 100644
--- a/developer/_sources/masterfileattributes.rst.txt
+++ b/developer/_sources/masterfileattributes.rst.txt
@@ -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/developer/_sources/multidet.rst.txt b/developer/_sources/multidet.rst.txt
index 4e74854c8..52489a443 100644
--- a/developer/_sources/multidet.rst.txt
+++ b/developer/_sources/multidet.rst.txt
@@ -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/developer/_sources/pattern.rst.txt b/developer/_sources/pattern.rst.txt
index a043b3714..be875c792 100644
--- a/developer/_sources/pattern.rst.txt
+++ b/developer/_sources/pattern.rst.txt
@@ -125,6 +125,6 @@ For Mythen3 the pattern word only connects to output pins of the FPGA when the p
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 exectues the pattern. As long as streaming_ctrl_reg is disabeld, every pattern execution using this command will not send UDP packets.
+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/developer/_sources/pyenums.rst.txt b/developer/_sources/pyenums.rst.txt
index baf840196..03e4f03e2 100644
--- a/developer/_sources/pyenums.rst.txt
+++ b/developer/_sources/pyenums.rst.txt
@@ -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/developer/_sources/pyexamples.rst.txt b/developer/_sources/pyexamples.rst.txt
index 1d7eedd4b..2acc178e3 100644
--- a/developer/_sources/pyexamples.rst.txt
+++ b/developer/_sources/pyexamples.rst.txt
@@ -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/developer/_sources/pygettingstarted.rst.txt b/developer/_sources/pygettingstarted.rst.txt
index 6f234d5ae..311dda940 100644
--- a/developer/_sources/pygettingstarted.rst.txt
+++ b/developer/_sources/pygettingstarted.rst.txt
@@ -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/developer/_sources/pypatterngenerator.rst.txt b/developer/_sources/pypatterngenerator.rst.txt
new file mode 100644
index 000000000..19e186f8d
--- /dev/null
+++ b/developer/_sources/pypatterngenerator.rst.txt
@@ -0,0 +1,34 @@
+PatternGenerator
+=====================================================
+
+Python class to generate patterns for the Chip Test Board.
+
+.. code-block:: python
+
+ from slsdet import PatternGenerator
+
+ p = PatternGenerator()
+ p.SB(5)
+ p.PW()
+ p.SB(8,9)
+ p.PW()
+ p.CB(5)
+
+Created a pattern like this:
+
+.. code-block:: bash
+
+ patword 0x0000 0x0000000000000020
+ patword 0x0001 0x0000000000000320
+ patword 0x0002 0x0000000000000300
+ patioctrl 0x0000000000000000
+ patlimits 0x0000 0x0002
+ ...
+
+.. py:currentmodule:: slsdet
+
+.. autoclass:: PatternGenerator
+ :members:
+ :undoc-members:
+ :show-inheritance:
+ :inherited-members:
diff --git a/developer/_sources/quick_start_guide.rst.txt b/developer/_sources/quick_start_guide.rst.txt
index 2a87f8f81..8ef99312c 100644
--- a/developer/_sources/quick_start_guide.rst.txt
+++ b/developer/_sources/quick_start_guide.rst.txt
@@ -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/developer/_sources/serverupgrade.rst.txt b/developer/_sources/serverupgrade.rst.txt
index ae297a5f2..57b610f11 100644
--- a/developer/_sources/serverupgrade.rst.txt
+++ b/developer/_sources/serverupgrade.rst.txt
@@ -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/developer/_sources/slsreceiver.rst.txt b/developer/_sources/slsreceiver.rst.txt
index d0bceff0a..07125d056 100644
--- a/developer/_sources/slsreceiver.rst.txt
+++ b/developer/_sources/slsreceiver.rst.txt
@@ -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/developer/_sources/slsreceiverheaderformat.rst.txt b/developer/_sources/slsreceiverheaderformat.rst.txt
index 9449db88f..ff85bd1d0 100644
--- a/developer/_sources/slsreceiverheaderformat.rst.txt
+++ b/developer/_sources/slsreceiverheaderformat.rst.txt
@@ -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/developer/_sources/softwarearchitecture.rst.txt b/developer/_sources/softwarearchitecture.rst.txt
index b4c56dc86..8638924b1 100644
--- a/developer/_sources/softwarearchitecture.rst.txt
+++ b/developer/_sources/softwarearchitecture.rst.txt
@@ -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/developer/_sources/udpconfig.rst.txt b/developer/_sources/udpconfig.rst.txt
index 847b11899..e54f52ad2 100644
--- a/developer/_sources/udpconfig.rst.txt
+++ b/developer/_sources/udpconfig.rst.txt
@@ -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/developer/_sources/virtualserver.rst.txt b/developer/_sources/virtualserver.rst.txt
index 239e51490..bbe78a5eb 100644
--- a/developer/_sources/virtualserver.rst.txt
+++ b/developer/_sources/virtualserver.rst.txt
@@ -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
diff --git a/developer/binaryfileformat.html b/developer/binaryfileformat.html
index f210c0b73..f9b0d5e89 100644
--- a/developer/binaryfileformat.html
+++ b/developer/binaryfileformat.html
@@ -72,7 +72,7 @@
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 desintation MAC - Also obtained from the interface using ifconfig. For built-in receivers, the module configures this automatically from the UDPdestinationIP. For custom receivers, it must be explicitly provided. Command: udp_dstmac
+
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 destination MAC - Also obtained from the interface using ifconfig. For built-in receivers, the module configures this automatically from the UDPdestinationIP. 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
50001 - Default Receiver UDP port
@@ -290,12 +290,12 @@ udp_srcipauto#
UDP source MAC - By default, it is set to aa:bb:cc:dd:xx:yy where xx and yy are module row and column indices to differentiate the modules while debugging. Command: udp_srcmac
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.
By default, only the outer 10GbE interface is enabled, transmitting the full image over a single UDP port. This results in one file per module containing the complete image.
If both interfaces are enabled using the numinterfaces command on compatible hardware and firmware, the image splits into top and bottom halves sent over two UDP ports:
The number of image rows per port can be adjusted using the readnrows command. By default, 512 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 are multiples of 8.
By default, only the outer 10GbE interface is enabled, transmitting the full image over a single UDP port. This results in one file per module containing the complete image.
If both interfaces are enabled using the numinterfaces command on compatible hardware and firmware, the image splits into top and bottom halves sent over two UDP ports:
The number of image rows per port can be adjusted using the readnrows command. By default, 400 rows are read, but a smaller value centers the readout vertically (e.g., 16 rows reads 8 above and 8 below the center). Increasing the value symmetrically expands the region toward the top and bottom. Permissible values are multiples of 16.
Each Eiger module has two independent identical readout systems (other than firmware), each with its own control port and hostname to be configured with. They are referred to as the ‘top’ and ‘bottom’ half modules. The bottom half module is flipped vertically.
Each half module has 2 parallel UDP ports for 2 chips each. The left UDP port is configured with udp_dstport, while the right UDP port is configured with udp_dstport2. This is vice versa for the bottom half module.
@@ -346,28 +346,28 @@
The myth, the legend, the bottom ports: Demystifying them
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.
Datastream: The datastream command with arguments to specify which port can be used to disable the data streaming from one or both the two UDP ports in a half module. This allows for more flexible configurations, such as reading only two chips or one UDP port of a half module. To specify which half module to activate or deactivate, use the module index (for Eiger, each half module has its own module index).
Note: Only the activated ports will write data as it does not make sense to write an empty file.
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.
The Eiger quad is a special hardware configuration that uses only the top half-module to create a quad layout. In this setup, the second half of the top module—normally associated with the right-side UDP port—is used to represent the inverted bottom half of the quad.
As with any standard half-module, it includes one control TCP port (with a hostname) and two UDP data ports (top and bottom). When the quad option is enabled, the firmware automatically flips the second UDP port vertically.
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
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.
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.
Therefore we return Result<T> which is a thin wrapper around
diff --git a/developer/fileformat.html b/developer/fileformat.html
index f32be08a9..cba669680 100644
--- a/developer/fileformat.html
+++ b/developer/fileformat.html
@@ -72,7 +72,7 @@
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’.
Tftp must be already installed on your pc to use the bcp script.
-
Copy new servers to the board. See 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 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.
@@ -307,7 +307,7 @@ reconfigfw0
# 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
@@ -339,7 +339,7 @@ sls_detector_putprogramfpgaxxx.p
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
@@ -375,7 +375,7 @@ sls_detector_putprogramfpgaxxx.r
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
@@ -421,7 +421,7 @@ sls_detector_putprogramfpgaxxx.r
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
@@ -454,7 +454,7 @@ sls_detector_putprogramfpgaxxx.p
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
@@ -476,7 +476,7 @@ sls_detector_putprogramfpgaxxx.p
v4.x.x client after programming will most likely reboot the blackfin processor, regardless of error.
v5.x.x-rcx client after programming will not reboot the blackfin processor, if error occurred.
-
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:
+
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:
# connect to the board
diff --git a/developer/genindex.html b/developer/genindex.html
index 47671128f..6991d8451 100644
--- a/developer/genindex.html
+++ b/developer/genindex.html
@@ -69,7 +69,7 @@
# outside slsDetectorPackage folder
mkdirbuild&&cdbuild
# configure & generate Makefiles using cmake by listing all your options
@@ -304,7 +304,7 @@ make-j12#or wha
To install in a clean custom directory and to use the slsDetectorPackage
libraries and headers in your project, specify the install directory
(eg. /your/install/path).
-
# outside slsDetecorPackage folder
+
# outside slsDetectorPackage folder
mkdirbuild&&cdbuild
# configure & generate Makefiles
cmake../slsDetectorPackage-DCMAKE_INSTALL_PREFIX=/your/install/path
@@ -413,7 +413,7 @@ using this compiler
condacreate-nmyenvgxx_linux-64cmake
condaactivatemyenv
-# outside slsDetecorPackage folder
+# outside slsDetectorPackage folder
mkdirbuild&&cdbuild
cmake../slsDetectorPackage-DCMAKE_PREFIX_PATH=$CONDA_PREFIX
make-j12
@@ -470,7 +470,7 @@ condacreate-n# activate environment
condaactivateslsgui
-# compile with cmake outside slsDetecorPackage folder
+# compile with cmake outside slsDetectorPackage folder
mkdirbuild&&cdbuild
cmake../slsDetectorPackage-DSLS_USE_GUI=ON
make-j12
@@ -497,7 +497,7 @@ is to use conda
# using cmake or ccmake to enable DSLS_BUILD_DOCS
-# outside slsDetecorPackage folder
+# outside slsDetectorPackage folder
mkdirbuild&&cdbuild
cmake../slsDetectorPackage-DSLS_BUILD_DOCS=ON
diff --git a/developer/masterfileattributes.html b/developer/masterfileattributes.html
index bc7e0d1db..6e218621b 100644
--- a/developer/masterfileattributes.html
+++ b/developer/masterfileattributes.html
@@ -72,7 +72,7 @@
@@ -223,7 +223,7 @@ the shared memory segments would be:
Python
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.
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 exectues the pattern. As long as streaming_ctrl_reg is disabeld, every pattern execution using this command will not send UDP packets.
+
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.
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.
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.
@@ -558,7 +558,7 @@ sudosystemctlen
-
Give user speicific user scheduling privileges.
# edit /etc/security/limits.conf
+
Give user specific scheduling privileges.
# edit /etc/security/limits.conf# add following line or similar depending on your distribution
usernamertprio99
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
* Even after fixing the cooling, any subsequent powerchip command will fail unless the temperature event has been cleared.
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.
# unsync, slaves command will fail as it is still in waiting state
diff --git a/developer/type_traits.html b/developer/type_traits.html
index 23055fc18..5300054ee 100644
--- a/developer/type_traits.html
+++ b/developer/type_traits.html
@@ -72,7 +72,7 @@
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.
@@ -245,7 +245,7 @@ rx_hostnamempc1922:2012+
# sets destination udp ports (not needed, default is 50001)
udp_dstport50012
-# 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_srcipauto
@@ -270,7 +270,7 @@ rx_hostnamempc1922
# sets increasing destination udp ports
udp_dstport50012
-# source udp ips must be same subnet at destintaion udp ips
+# source udp ips must be same subnet at destination udp ips0:udp_srcip192.168.1.112
1:udp_srcip192.168.1.114
diff --git a/developer/zmqjsonheaderformat.html b/developer/zmqjsonheaderformat.html
index d53dd9983..52a4bc49e 100644
--- a/developer/zmqjsonheaderformat.html
+++ b/developer/zmqjsonheaderformat.html
@@ -72,7 +72,7 @@