Compare commits

...

11 Commits
3.1.0 ... 3.1.1

43 changed files with 114 additions and 422 deletions

View File

@ -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.

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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&nbsp;
<hr size="1"/><address style="text-align: right;"><small>Generated on 20 Mar 2018 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -763,7 +763,7 @@ Debug</A>
<!--End of Navigation Panel-->
<ADDRESS>
Thattil Dhanya
2018-03-12
2018-03-20
</ADDRESS>
</BODY>
</HTML>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -1 +0,0 @@
../slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.1.0.16.1

View File

@ -0,0 +1 @@
../slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.1.1.16.0

View File

@ -1 +0,0 @@
../slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.1.0.2

View File

@ -0,0 +1 @@
../slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.1.1.0

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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];

View File

@ -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)

View File

@ -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"

View File

@ -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;
}

View File

@ -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

View File

@ -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) {