mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-14 13:57:13 +02:00
Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
4404ee717a | |||
595b7aa5e8 | |||
f72ad4326f | |||
2306e44ae3 | |||
17c20748bc | |||
d5f8a1b4e7 | |||
70ce8c1653 | |||
5203a0d621 | |||
59ad15b54e | |||
afac5be3c3 | |||
688dd15fe9 |
350
RELEASE.txt
350
RELEASE.txt
@ -1,353 +1,31 @@
|
||||
SLS Detector Package 3.1.0 released on 2018-03-12
|
||||
SLS Detector Package 3.1.1 released on 2018-03-20
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 3.1.0 and 3.0.0 releases.
|
||||
|
||||
The conda package of the binaries can be downloaded from
|
||||
|
||||
https://github.com/slsdetectorgroup/sls_detector_software.git
|
||||
|
||||
The Python interface to the software package (including the package) is at
|
||||
|
||||
https://github.com/slsdetectorgroup/sls_detector.git
|
||||
|
||||
Manual (both HTML and pdf versions) are provided in
|
||||
|
||||
manual/docs/
|
||||
|
||||
Documentation from Source Code can be found for the Command Line and C++ API in
|
||||
|
||||
html:
|
||||
manual/docs/html/slsDetectorClientDocs/index.html
|
||||
manual/docs/html/slsDetectorUsersDocs/index.html
|
||||
pdf:
|
||||
manual/docs/pdf/slsDetectorClientDocs.pdf
|
||||
manual/docs/pdf/slsDetectorUsersDocs.pdf
|
||||
|
||||
Documentation to the python API is available at
|
||||
|
||||
https://slsdetectorgroup.github.io/sls_detector/
|
||||
|
||||
Example including binaries for detector and receiver user classes can be found in
|
||||
|
||||
manual/manual-api
|
||||
|
||||
User documentation can also be accessed directly at this location:
|
||||
|
||||
https://www.psi.ch/detectors/users-support
|
||||
|
||||
If you have any software related questions or comments, please send them to:
|
||||
|
||||
dhanya.thattil@psi.ch
|
||||
anna.bergamaschi@psi.ch
|
||||
|
||||
If you have any python related questions or comments, please send them to:
|
||||
|
||||
erik.frojdh@psi.ch
|
||||
This document describes the differences between 3.1.0 into 3.1.0 releases.
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
- Firmware Requirements
|
||||
- Changes in User Interface
|
||||
- New Features
|
||||
- Resolved Issues
|
||||
- Known Issues
|
||||
|
||||
|
||||
|
||||
Firmware Requirements
|
||||
=====================
|
||||
|
||||
Please refer to the link below for more details on the firmware versions.
|
||||
https://www.psi.ch/detectors/firmware.
|
||||
|
||||
Gotthard
|
||||
========
|
||||
Minimum compatible version : 11.01.2013
|
||||
Latest version : 08.02.2018 (50um and 25um Master)
|
||||
09.02.2018 (25 um Slave)
|
||||
|
||||
-Can not be upgraded remotely.
|
||||
|
||||
|
||||
Eiger
|
||||
=====
|
||||
Minimum compatible version : 16
|
||||
Latest version : 20
|
||||
|
||||
-Can be upgraded remotely via bit files.
|
||||
|
||||
|
||||
Jungfrau
|
||||
========
|
||||
Minimum compatible version : 13.11.2017
|
||||
Latest version : 13.11.2017
|
||||
|
||||
-Can be upgraded remotely via sls_detector_put programfpga <pof>.
|
||||
|
||||
|
||||
|
||||
Changes in User Interface
|
||||
=========================
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. Additional functions added for advanced users in users class:
|
||||
(setSpeed, setClockDivider, setReadOutFlags, setDac, getADC,
|
||||
setAllTrimbits, startReceiver, stopReceiver,
|
||||
startAcquisition non blocking, setReceiverSilentMode, setHighVoltage,
|
||||
enableDataStreamingToClient, enableDataStreamingFromReceiver,
|
||||
setReceiverDataStreamingOutPort, setClientDataStreamingInPort)
|
||||
|
||||
2. Zmq set up for client and receiver are separated.
|
||||
zmqport for client and rx_zmqport for receiver. By default, they are the
|
||||
same for the slsDetectorGui to work.
|
||||
|
||||
3. Users example also works without config file, where detector already
|
||||
configured in shared memory.
|
||||
|
||||
4. Use "sls_detector_get busy 0" to clear acquiring flag in shared memory
|
||||
caused due to an earlier interrupted acquisition from Ctrl+C"
|
||||
|
||||
5. Set bit, clear bit, read register and write register cannot give -1 for
|
||||
inconsistent values from multiple detectors. One has to check error from
|
||||
API or read the values individually.
|
||||
|
||||
6. multiSlsDetector::char* getSettingsFile() function signature has been
|
||||
changed to string getSettingsFile().
|
||||
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
7. Modified the help manaual/main-api/mainReceiver.cpp to make it more
|
||||
robust (handling child process exit) and flexible to determine upon
|
||||
start up the number of receivers (child processes), the start TCP port
|
||||
and whether to call back data.
|
||||
|
||||
detReceiver is now executed with [start tcp port] [number of receivers]
|
||||
[1 for call back, 0 for none] as arguments.
|
||||
By default, start tcp port is 1954, number of receivers is 1, and call
|
||||
back is initiated.
|
||||
|
||||
8. rx_datastream to enable/disable data streaming in receiver. Using the GUI
|
||||
or registering data call back in client automatically enables zmq in
|
||||
receiver and client. "externalgui" is removed from the command line. Use
|
||||
this command instead.
|
||||
|
||||
9. Rx_tcpport argument to the slsReceiver can be given using -t.
|
||||
Eg. slsReceiver -t1955
|
||||
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
|
||||
Package
|
||||
-------
|
||||
1. In addition to the C++ API, the Python API is also now provided.
|
||||
|
||||
2. CMAKE now with debug flag and rpath, show warnings, compile only certain
|
||||
components (such as receiver or gui)
|
||||
|
||||
3. One repository for entire package and made available at github.
|
||||
|
||||
4. One can do --version or -v to all the binaries to find out the release
|
||||
version of the particular executable.
|
||||
|
||||
5. All the software version numbers have only date in format YYMMDD.
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
6. Parallelized more commands to detector. Beneficial for large detectors.
|
||||
(setTimer, setFileIndex, setOnline, setReceiverOnline, getReceiverStatus,
|
||||
resetFramesCaught, setFrameIndex, setFileName, getFramesCaughtByReceiver,
|
||||
setDynamicRange, setRateCorrection)
|
||||
|
||||
Option to also use "sls_detector_put threaded 0" to improve speed by
|
||||
eliminating progress display during acquisition. Effective only for
|
||||
large detectors.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
7. (Eiger) Virtual class to execute on pc.
|
||||
|
||||
8. One can now read temperatures during acquisition. It goes via the stop
|
||||
server.
|
||||
|
||||
9. (Jungfrau) One can start server in "debug" mode and then program the
|
||||
new firmware via software command "sls_detector_put programfpga xx.pof".
|
||||
|
||||
10. (Jungfrau) Server can exit on start up if either the firmware or the
|
||||
server is incompatible with each other.
|
||||
|
||||
11. (Jungfrau) One is able to set transmission delay (ms) of image for each
|
||||
individual detector using "txndelay_frame" command. Beneficial for
|
||||
large detectors.
|
||||
|
||||
12. (Jungfrau) One can set a threshold temperature (temp_threshold) and
|
||||
enable the temperature control feature (temp_control). When the
|
||||
temperature (temp_fpga) overshoots the threshold temperature, it will
|
||||
set the temperature event (temp_event) and power off the chip. One must
|
||||
then switch off the detector and check cooling. Switching back on starts
|
||||
with defaults.
|
||||
|
||||
13. (25um Gotthard) Added start acquisition delay to master module.
|
||||
|
||||
14. (Gotthard) New constraints for firmware dated 08.02.2018 and 09.02.2018
|
||||
(25 um Slave) include minimum exposure time is 186 ns and minimum
|
||||
period is 1278 ns + current exposure time.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
14. The detectorip and rx_udpip does not have to be in the same subnet anymore.
|
||||
Add the following commands after rx_hostname in config file to overwrite
|
||||
mac configuration:
|
||||
rx_udpmac [router mac]
|
||||
configuremac 0
|
||||
|
||||
15. Added silent mode to receiver using command r_silent [i] from client.
|
||||
It might be beneficial for max frame rate applications.
|
||||
|
||||
16. Receiver print out can handle black or white backgrounds.
|
||||
|
||||
17. zmq package included updated to v4.0.8.
|
||||
|
||||
18. Zmq streaming from receiver also sends file index in json header.
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
19. If acquisition is done, but "stop dummy packet" to the gui was lost in
|
||||
the network, stop acquisition command will restream it so that the gui
|
||||
doesnt hang forever. This is used only for very fast detectors like
|
||||
Moench.
|
||||
|
||||
Topics Concerning
|
||||
==================
|
||||
Jungfrau adcphase
|
||||
Eiger in 10 GbE mode
|
||||
|
||||
|
||||
Resolved Issues
|
||||
===============
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. gethostbyname used in connecting to sockets was not thread safe for
|
||||
multiple detectors. Using getaddrinfo for stability in multi threaded
|
||||
environment.
|
||||
Detector Server and Client
|
||||
--------------------------
|
||||
1. (Jungfrau) Bug fix: Same adc phase given to the PLL will still shift
|
||||
adc by one step. One can now give same adc phase repeatedly.
|
||||
|
||||
2. Updated writing content of config and parameter dump into files.
|
||||
|
||||
3. More locking to handle main and processing threads using the threadpool.
|
||||
Removing unlock twice, which is undefined behavior.
|
||||
Updated Command Line Manual for adcphase and clkdivider.
|
||||
|
||||
4. (Jungfrau) adcphase returns the correct value, instead of -1.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
4. (Eiger) The hardware MAC of the detector is used during configuration
|
||||
and relayed back to client. Similarly, hardware IP for 1 Gbe data mode.
|
||||
|
||||
5. (Eiger) Status will return error if there was the unlikely trouble
|
||||
reading status register in the front end board. Earlier, it would only
|
||||
return idle.
|
||||
|
||||
6. (Jungfrau) patch server v3.0.0.6.3
|
||||
Able to set settings, high voltage now correctly reads 0 when
|
||||
switched off, dacs are properly set.
|
||||
|
||||
7. (Jungfrau) FPGA reset and programming FPGA firmware via software is done
|
||||
properly
|
||||
|
||||
8. (Gotthard) patch server v3.0.0.5.1
|
||||
Able to read temperature properly.
|
||||
|
||||
9. (Gotthard) butst mode if set too fast had unwanted behavior such as
|
||||
sending same image continuously. Now it is handled to display error
|
||||
and stop acquisition.
|
||||
|
||||
10. (Gotthard) completely removed the possibility to set timing modes
|
||||
other than auto and trigger as they are not implemented anyway. Also
|
||||
signal index 1, 2 and 3 are reserved and hence, cannot be configured for
|
||||
an external trigger.
|
||||
|
||||
11. Non Mythen and non Eiger detectors can also now get settings file from
|
||||
board.
|
||||
|
||||
12. (Gotthard) Did not get first few images initially after configuring MAC
|
||||
of detector. Fixed.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
12. Made it easier to disable the standard receiver and fixing bugs related
|
||||
to the use of a custom one.
|
||||
|
||||
13. (Jungfrau) HDF5 dimensions (npixelsY) required for mapping fixed.
|
||||
|
||||
14. patch2-v3.0.0-slsReceiverSoftware.patch
|
||||
x, y and z coordinates in the call backs and the files are hardcoded
|
||||
for this release.
|
||||
|
||||
15. Rest implementation (not used by standard receiver) removed.
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
16. patch1-v3.0.0-slsDetectorGui.patch
|
||||
(Eiger) In expert mode and in advanced tab, when trimbits
|
||||
loaded are different for every pixel, the gui complains and sets
|
||||
all trimbits to zero. This has been resolved. Now, the "Set All
|
||||
Trimbits" field is just set to -1.
|
||||
|
||||
17. Fixed segmentation fault of xputsn properly.
|
||||
|
||||
18. Upon clicking on "Start", clears acquiring flag in shared memory
|
||||
caused due to an earlier interrupted acquisition from Ctrl+C"
|
||||
|
||||
19. Fixed plotting twice caused due to unzooming the first time.
|
||||
|
||||
20. Removed option for compression in Gui as it is not available currently.
|
||||
|
||||
21. Can also show Jungfrau multi detector in x direction in gui.
|
||||
|
||||
22. Switching tabs sometimes results in delay and gates fields being incorrectly
|
||||
enabled. Fixed.
|
||||
|
||||
|
||||
|
||||
Known Issues
|
||||
============
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. File name prefix can only be done at multi deector level. Changing at
|
||||
individual detector level will not include scan or position variables.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
2. Standard header fills x-coord in 1D. y-coord and z-coord is not
|
||||
implemented (3D).
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
3. HDF5 compression and filters are not implemented yet.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2. (Eiger) Bug Fix: This bug was introduced in 3.1.0 release.
|
||||
In 10GbE mode, if "detectorip" is before "tengiga", the detector still
|
||||
used the 1G IP (DHCP IP). This is fixed in this release.
|
||||
|
||||
|
||||
|
@ -78,7 +78,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -54,7 +54,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -183,7 +183,7 @@ Versions</a></h2>
|
||||
Speed</a></h2>
|
||||
<p>commands to configure speed of detector</p>
|
||||
<ul>
|
||||
<li><b>clkdivider [i]</b> sets/gets the readout clock divider. EIGER, JUNGFRAU [0(fast speed), 1(half speed), 2(quarter speed)]. MYTHEN[???]. <code>Returns</code> <code></code>(int)</li>
|
||||
<li><b>clkdivider [i]</b> sets/gets the readout clock divider. EIGER, JUNGFRAU [0(fast speed), 1(half speed), 2(quarter speed)]. Jungfrau, full speed is not implemented and overwrites adcphase to recommended default. MYTHEN[???]. <code>Returns</code> <code></code>(int)</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>setlength [i]</b> sets/gets length of set/reset signals (in clock cycles). Used in MYTHEN only. <code>Returns</code> <code></code>(int)</li>
|
||||
@ -207,7 +207,7 @@ Speed</a></h2>
|
||||
<li><b>adcclk [i]</b> sets/gets the ADC clock frequency in MHz. For the new chiptestboard!<code>Returns</code> <code></code>(int)</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>adcphase [i]</b> Sets/gets the ADC clock frequency in MHz. For the new chiptestboard!<code>Returns</code> <code></code>(int)</li>
|
||||
<li><b>adcphase [i]</b> Sets/gets phase of the sampling clock. For JUNGFRAU, setting speed (clkdivider) overwrites adcphase to its default recommended value. (Not for EIGER) <code>Returns</code> <code></code>(int)</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>adcpipeline [i]</b> Sets/gets the pipeline of the ADC. For the new chiptestbaord!<code>Returns</code> <code></code>(int)</li>
|
||||
@ -251,7 +251,7 @@ Detector Parameters</a></h2>
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -83,7 +83,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -75,7 +75,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -77,7 +77,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -87,7 +87,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -317,7 +317,7 @@ Temp Control</a></h2>
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -96,7 +96,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 12 Mar 2018 by
|
||||
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by
|
||||
<a href="http://www.doxygen.org/index.html">
|
||||
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
|
||||
</body>
|
||||
|
@ -1,4 +1,4 @@
|
||||
This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=latex 2014.12.17) 12 MAR 2018 15:45
|
||||
This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6) (format=latex 2014.12.17) 20 MAR 2018 12:10
|
||||
entering extended mode
|
||||
%&-line parsing enabled.
|
||||
**./images.tex
|
||||
|
@ -43,7 +43,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<H1 ALIGN="CENTER">SLS Detector text clients manual</H1>
|
||||
<DIV>
|
||||
|
||||
<P ALIGN="CENTER"><STRONG>March 12, 2018</STRONG></P>
|
||||
<P ALIGN="CENTER"><STRONG>March 20, 2018</STRONG></P>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
@ -148,7 +148,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<BR><HR>
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-03-12
|
||||
2018-03-20
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -123,7 +123,7 @@ For additional questions concerning the indexing of the detector, please refer t
|
||||
<!--End of Navigation Panel-->
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-03-12
|
||||
2018-03-20
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -68,7 +68,7 @@ For additional questions concerning the acquisition flow, please refer to the <I
|
||||
<BR><HR>
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-03-12
|
||||
2018-03-20
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -763,7 +763,7 @@ Debug</A>
|
||||
<!--End of Navigation Panel-->
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-03-12
|
||||
2018-03-20
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -815,7 +815,7 @@ Advanced settings changing the analog or digital performance of the acquisition.
|
||||
<!--End of Navigation Panel-->
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-03-12
|
||||
2018-03-20
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -160,7 +160,7 @@ sls_detector_put ratecorr -1
|
||||
<!--End of Navigation Panel-->
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-03-12
|
||||
2018-03-20
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -61,11 +61,11 @@ Mathematics Department, Macquarie University, Sydney.
|
||||
The command line arguments were: <BR>
|
||||
<STRONG>latex2html</STRONG> <TT>-split 4 slsDetectorClientHowTo.tex</TT>
|
||||
<P>
|
||||
The translation was initiated by Thattil Dhanya on 2018-03-12
|
||||
The translation was initiated by Thattil Dhanya on 2018-03-20
|
||||
<BR><HR>
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-03-12
|
||||
2018-03-20
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
@ -43,7 +43,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<H1 ALIGN="CENTER">SLS Detector text clients manual</H1>
|
||||
<DIV>
|
||||
|
||||
<P ALIGN="CENTER"><STRONG>March 12, 2018</STRONG></P>
|
||||
<P ALIGN="CENTER"><STRONG>March 20, 2018</STRONG></P>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
@ -148,7 +148,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<BR><HR>
|
||||
<ADDRESS>
|
||||
Thattil Dhanya
|
||||
2018-03-12
|
||||
2018-03-20
|
||||
</ADDRESS>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
||||
../slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.1.0.16.1
|
1
serverBin/eigerDetectorServerv3.1.1.16.0
Symbolic link
1
serverBin/eigerDetectorServerv3.1.1.16.0
Symbolic link
@ -0,0 +1 @@
|
||||
../slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.1.1.16.0
|
@ -1 +0,0 @@
|
||||
../slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.1.0.2
|
1
serverBin/jungfrauDetectorServerv3.1.1.0
Symbolic link
1
serverBin/jungfrauDetectorServerv3.1.1.0
Symbolic link
@ -0,0 +1 @@
|
||||
../slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.1.1.0
|
Binary file not shown.
@ -1,9 +1,9 @@
|
||||
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
|
||||
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repsitory UUID: 8b02aa9e91bbee0470492dcf1ff67415851e14fa
|
||||
Revision: 315
|
||||
Branch: 3.1.0-rc
|
||||
Last Changed Author: Erik_Frojdh
|
||||
Last Changed Rev: 3455
|
||||
Last Changed Date: 2018-03-08 16:44:32.000000002 +0100 ./FebRegisterDefs.h
|
||||
Repsitory UUID: afac5be3c3674fe87044d3b7a54471291698d4ba
|
||||
Revision: 316
|
||||
Branch: 3.1.1-rc
|
||||
Last Changed Author: Dhanya_Thattil
|
||||
Last Changed Rev: 3467
|
||||
Last Changed Date: 2018-03-19 17:26:38.000000002 +0100 ./FebRegisterDefs.h
|
||||
|
@ -1,6 +1,6 @@
|
||||
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
||||
#define GITREPUUID "8b02aa9e91bbee0470492dcf1ff67415851e14fa"
|
||||
#define GITAUTH "Erik_Frojdh"
|
||||
#define GITREV 0x3455
|
||||
#define GITDATE 0x20180308
|
||||
#define GITBRANCH "3.1.0-rc"
|
||||
#define GITREPUUID "afac5be3c3674fe87044d3b7a54471291698d4ba"
|
||||
#define GITAUTH "Dhanya_Thattil"
|
||||
#define GITREV 0x3467
|
||||
#define GITDATE 0x20180319
|
||||
#define GITBRANCH "3.1.1-rc"
|
||||
|
@ -1,9 +1,9 @@
|
||||
Path: slsDetectorsPackage/slsDetectorSoftware
|
||||
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repsitory UUID: b389402d647e939342dbb2c9317c688c0eb6b105
|
||||
Revision: 1714
|
||||
Branch: 3.1.0-rc
|
||||
Last Changed Author: Erik_Frojdh
|
||||
Last Changed Rev: 3458
|
||||
Last Changed Date: 2018-03-12 14:19:44.000000002 +0100 ./threadFiles/ThreadPool.o
|
||||
Repsitory UUID: 85aa47b8353bb84f52c435a967a03ddf46af5dd1
|
||||
Revision: 1716
|
||||
Branch: 3.1.1-rc
|
||||
Last Changed Author: Dhanya_Thattil
|
||||
Last Changed Rev: 3465
|
||||
Last Changed Date: 2018-03-19 18:13:27.000000002 +0100 ./threadFiles/ThreadPool.o
|
||||
|
Binary file not shown.
@ -1,9 +1,9 @@
|
||||
Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer
|
||||
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repsitory UUID: 8b02aa9e91bbee0470492dcf1ff67415851e14fa
|
||||
Revision: 117
|
||||
Branch: 3.1.0-rc
|
||||
Last Changed Author: Erik_Frojdh
|
||||
Last Changed Rev: 3455
|
||||
Last Changed Date: 2018-03-08 16:44:32.000000002 +0100 ./RegisterDefs.h
|
||||
Repsitory UUID: 85aa47b8353bb84f52c435a967a03ddf46af5dd1
|
||||
Revision: 118
|
||||
Branch: 3.1.1-rc
|
||||
Last Changed Author: Dhanya_Thattil
|
||||
Last Changed Rev: 3465
|
||||
Last Changed Date: 2018-03-19 17:26:38.000000002 +0100 ./RegisterDefs.h
|
||||
|
@ -1,6 +1,6 @@
|
||||
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
||||
#define GITREPUUID "8b02aa9e91bbee0470492dcf1ff67415851e14fa"
|
||||
#define GITAUTH "Erik_Frojdh"
|
||||
#define GITREV 0x3455
|
||||
#define GITDATE 0x20180308
|
||||
#define GITBRANCH "3.1.0-rc"
|
||||
#define GITREPUUID "85aa47b8353bb84f52c435a967a03ddf46af5dd1"
|
||||
#define GITAUTH "Dhanya_Thattil"
|
||||
#define GITREV 0x3465
|
||||
#define GITDATE 0x20180319
|
||||
#define GITBRANCH "3.1.1-rc"
|
||||
|
@ -487,9 +487,11 @@ int adcPhase(int st){ /**carlos needed clkphase 1 and 2? cehck with Aldo */
|
||||
printf("Setting ADC Phase to %d\n",st);
|
||||
if (st > 65535 || st < -65535)
|
||||
return clkPhase[0];
|
||||
clkPhase[1] = st - clkPhase[0];
|
||||
|
||||
printf(" phase %d\n", clkPhase[1] );
|
||||
clkPhase[1] = st - clkPhase[0];
|
||||
if (clkPhase[1] == 0)
|
||||
return clkPhase[0];
|
||||
|
||||
configurePll();
|
||||
clkPhase[0] = st;
|
||||
return clkPhase[0];
|
||||
@ -1230,8 +1232,12 @@ void configurePll() {
|
||||
#endif
|
||||
u_int32_t val;
|
||||
int32_t phase=0, inv=0;
|
||||
// ensuring PLL is never configured with same phase
|
||||
if (clkPhase[1] == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
printf(" phase in %d\n", clkPhase[1]);
|
||||
printf("Configuring PLL with phase in %d\n", clkPhase[1]);
|
||||
if (clkPhase[1]>0) {
|
||||
inv=0;
|
||||
phase=clkPhase[1];
|
||||
|
@ -101,8 +101,8 @@ enum NETWORKINDEX { TXN_FRAME };
|
||||
#define CONFIG_QUARTER_SPEED (CONFIG_TDMA_DISABLE_VAL + CONFIG_QUARTER_SPEED_10MHZ_VAL + CONFIG_MODE_1_X_10GBE_VAL)
|
||||
#define ADC_OFST_HALF_SPEED_VAL (0x20) //adc pipeline
|
||||
#define ADC_OFST_QUARTER_SPEED_VAL (0x0f)
|
||||
#define ADC_PHASE_HALF_SPEED (0x41)
|
||||
#define ADC_PHASE_QUARTER_SPEED (0x19)
|
||||
#define ADC_PHASE_HALF_SPEED (0x48) //72
|
||||
#define ADC_PHASE_QUARTER_SPEED (0x48) //72
|
||||
|
||||
/* Maybe not required for jungfrau */
|
||||
#define NTRIMBITS (6)
|
||||
|
@ -1,6 +1,6 @@
|
||||
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
||||
#define GITREPUUID "b389402d647e939342dbb2c9317c688c0eb6b105"
|
||||
#define GITAUTH "Erik_Frojdh"
|
||||
#define GITREV 0x3458
|
||||
#define GITDATE 0x20180312
|
||||
#define GITBRANCH "3.1.0-rc"
|
||||
#define GITREPUUID "85aa47b8353bb84f52c435a967a03ddf46af5dd1"
|
||||
#define GITAUTH "Dhanya_Thattil"
|
||||
#define GITREV 0x3465
|
||||
#define GITDATE 0x20180319
|
||||
#define GITBRANCH "3.1.1-rc"
|
||||
|
@ -710,7 +710,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
|
||||
*/
|
||||
|
||||
/*! \page config
|
||||
- <b>clkdivider [i]</b> sets/gets the readout clock divider. EIGER, JUNGFRAU [0(fast speed), 1(half speed), 2(quarter speed)]. MYTHEN[???]. \c Returns \c (int)
|
||||
- <b>clkdivider [i]</b> sets/gets the readout clock divider. EIGER, JUNGFRAU [0(fast speed), 1(half speed), 2(quarter speed)]. Jungfrau, full speed is not implemented and overwrites adcphase to recommended default. MYTHEN[???]. \c Returns \c (int)
|
||||
*/
|
||||
descrToFuncMap[i].m_pFuncName="clkdivider"; //
|
||||
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSpeed;
|
||||
@ -766,7 +766,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
|
||||
++i;
|
||||
|
||||
/*! \page config
|
||||
- <b>adcphase [i]</b> Sets/gets the ADC clock frequency in MHz. For the new chiptestboard!\c Returns \c (int)
|
||||
- <b>adcphase [i]</b> Sets/gets phase of the sampling clock. For JUNGFRAU, setting speed (clkdivider) overwrites adcphase to its default recommended value. (Not for EIGER) \c Returns \c (int)
|
||||
*/
|
||||
descrToFuncMap[i].m_pFuncName="adcphase"; //
|
||||
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSpeed;
|
||||
@ -5685,9 +5685,6 @@ string slsDetectorCommand::cmdSpeed(int narg, char *args[], int action) {
|
||||
return string("cannot scan speed value ")+string(args[1]);
|
||||
|
||||
}
|
||||
// -1 could work
|
||||
else if (cmd=="adcphase")
|
||||
t = 65536;
|
||||
|
||||
myDet->setOnline(ONLINE_FLAG);
|
||||
|
||||
@ -5707,21 +5704,23 @@ string slsDetectorCommand::helpSpeed(int narg, char *args[], int action) {
|
||||
ostringstream os;
|
||||
if (action==PUT_ACTION || action==HELP_ACTION) {
|
||||
|
||||
os << "clkdivider c \t sets readout clock divider" << std::endl;
|
||||
os << "clkdivider c \t sets readout clock divider. For Jungfrau, it also overwrites adcphase to recommended default" << std::endl;
|
||||
os << "setlength c\t sets the length of the set/reset signals (in clock cycles)" << std::endl;
|
||||
os << "waitstates c \t sets the waitstates of the bus interface" << std::endl;
|
||||
os << "totdivider c\t sets the clock divider in tot mode" << std::endl;
|
||||
os << "totdutycycle c\t sets the duty cycle of the tot clock" << std::endl;
|
||||
os << "adcphase c\t Sets phase of the sampling clock. For JUNGFRAU, setting speed (clkdivider) overwrites adcphase to its default recommended value. (Not for EIGER)" << std::endl;
|
||||
os << std::endl;
|
||||
|
||||
}
|
||||
if (action==GET_ACTION || action==HELP_ACTION) {
|
||||
|
||||
os << "clkdivider \t gets readout clock divider" << std::endl;
|
||||
os << "clkdivider \t gets readout clock divider. For Jungfrau, it also overwrites adcphase to recommended default" << std::endl;
|
||||
os << "setlength \t gets the length of the set/reset signals (in clock cycles)" << std::endl;
|
||||
os << "waitstates \t gets the waitstates of the bus interface" << std::endl;
|
||||
os << "totdivider \t gets the clock divider in tot mode" << std::endl;
|
||||
os << "totdutycycle \t gets the duty cycle of the tot clock" << std::endl;
|
||||
os << "totdutycycle \t gets phase of the sampling clock. For JUNGFRAU, setting speed (clkdivider) overwrites adcphase to its default recommended value. (Not for EIGER)" << std::endl;
|
||||
os << std::endl;
|
||||
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ You can find examples of how this classes can be instatiated in mainClient.cpp
|
||||
@libdoc The slsDetectorUsers class is a minimal interface class which should be instantiated by the users in their acquisition software (EPICS, spec etc.). More advanced configuration functions are not implemented and can be written in a configuration or parameters file that can be read/written.
|
||||
*/
|
||||
/**
|
||||
@short Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc.
|
||||
@short Class for detector functionalities to embed the detector controls in the users custom interface e.g. EPICS, Lima etc.
|
||||
|
||||
*/
|
||||
|
||||
@ -270,7 +270,7 @@ class slsDetectorUsers
|
||||
*/
|
||||
int getDetectorSize(int &x0, int &y0, int &nx, int &ny);
|
||||
/**
|
||||
@short setsthe maximum detector size
|
||||
@short gets the maximum detector size
|
||||
\param x0 horizontal position origin in channel number
|
||||
\param y0 vertical position origin in channel number
|
||||
\param nx number of channels in horiziontal
|
||||
|
@ -39,6 +39,9 @@ char mess[MAX_STR_LENGTH];
|
||||
int dataBytes = 10;
|
||||
int isControlServer = 0;
|
||||
int debugflag = 0;
|
||||
#ifdef EIGERD
|
||||
uint32_t dhcpipad = 0;
|
||||
#endif
|
||||
|
||||
/* initialization functions */
|
||||
|
||||
@ -64,6 +67,9 @@ void init_detector(int controlserver) {
|
||||
if (controlserver) {
|
||||
isControlServer = 1;
|
||||
initControlServer();
|
||||
#ifdef EIGERD
|
||||
dhcpipad = getDetectorIP();
|
||||
#endif
|
||||
}
|
||||
else initStopServer();
|
||||
#endif
|
||||
@ -2988,7 +2994,7 @@ int set_speed(int file_des) {
|
||||
#ifdef JUNGFRAUD
|
||||
case ADC_PHASE:
|
||||
retval = adcPhase(val);
|
||||
if ((val != 65536) && (retval!=val) && (val>=0)) {
|
||||
if ((val != 100000) && (retval!=val) && (val>=0)) {
|
||||
ret=FAIL;
|
||||
sprintf(mess,"could not change set adc phase: should be %d but is %d \n", val, retval);
|
||||
cprintf(RED, "Warning: %s", mess);
|
||||
@ -3488,16 +3494,19 @@ int configure_mac(int file_des) {
|
||||
printf("WARNING: Matched detectormac to the hardware mac now\n");
|
||||
printf("*************************************************\n");
|
||||
}
|
||||
|
||||
// always remember the ip sent from the client (could be for 10g(if not dhcp))
|
||||
if (detipad != getDetectorIP())
|
||||
dhcpipad = detipad;
|
||||
|
||||
//only for 1Gbe
|
||||
if(!enableTenGigabitEthernet(-1)){
|
||||
if (detipad != getDetectorIP()){
|
||||
printf("*************************************************\n");
|
||||
printf("WARNING: actual detector ip address %x does not match the one from client %x\n",getDetectorIP(),detipad);
|
||||
detipad = getDetectorIP();
|
||||
printf("WARNING: Matched detector ip to the hardware ip now\n");
|
||||
printf("*************************************************\n");
|
||||
}
|
||||
}
|
||||
printf("*************************************************\n");
|
||||
printf("WARNING: Using DHCP IP for Configuring MAC\n");
|
||||
printf("*************************************************\n");
|
||||
detipad = getDetectorIP();
|
||||
} else
|
||||
detipad = dhcpipad;
|
||||
#endif
|
||||
retval=configureMAC(ipad,imacadd,idetectormacadd,detipad,udpport,udpport2,0); //digitalTestBit);
|
||||
if(retval==-1) {
|
||||
|
Reference in New Issue
Block a user