mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-14 13:57:13 +02:00
Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
64de9f3ad0 | |||
08ea179519 | |||
8e6dfe9b0f | |||
6901368fd6 | |||
3f1dbb7d67 | |||
f6126abe31 | |||
1e8dacf9b8 | |||
58fb5321f0 | |||
faf885d2e0 | |||
d5dcc8e138 | |||
90a9cea670 | |||
2eea1882d2 |
@ -192,7 +192,7 @@ if (SLS_USE_INTEGRATION_TESTS)
|
||||
endif (SLS_USE_INTEGRATION_TESTS)
|
||||
|
||||
if (SLS_USE_PYTHON)
|
||||
set(PYBIND11_CPP_STANDARD -std=c++11)
|
||||
find_package (Python 3.6 COMPONENTS Interpreter Development)
|
||||
add_subdirectory(libs/pybind11)
|
||||
add_subdirectory(python)
|
||||
endif(SLS_USE_PYTHON)
|
||||
|
340
RELEASE.txt
340
RELEASE.txt
@ -1,326 +1,70 @@
|
||||
SLS Detector Package 5.0.0 released on 18.11.2020 (Major Release)
|
||||
=================================================================
|
||||
SLS Detector Package 5.0.1 released on 25.11.2020 (Bug Fix Release)
|
||||
===================================================================
|
||||
|
||||
This document describes the differences between 5.0.1 and 5.0.0 releases.
|
||||
|
||||
|
||||
|
||||
CONTENTS
|
||||
--------
|
||||
1. Topics Concerning
|
||||
2. New Features
|
||||
3. Resolved Issues
|
||||
4. Known Issues
|
||||
5. Firmware Requirements
|
||||
6. Download, Documentation & Support
|
||||
1. Topics Concerning
|
||||
2. Resolved Issues
|
||||
3. Known Issues
|
||||
4. Firmware Requirements
|
||||
5. Download, Documentation & Support
|
||||
|
||||
|
||||
|
||||
1. Topics Concerning
|
||||
====================
|
||||
|
||||
- Compilation requirements
|
||||
- Manuals
|
||||
- Client API complete change
|
||||
- Exceptions
|
||||
- Scan mode (dacs and trimbit)
|
||||
- Timing commands
|
||||
- Enum list (daclist, dacvalues, settingslist, drlist etc.)
|
||||
- Command line (return code)
|
||||
- Command line (dac)
|
||||
- UDP configuration change
|
||||
- Gappixels
|
||||
- Detector Simulators
|
||||
- (Jungfrau server) settings and default dacs
|
||||
- (Servers) Shared Memory
|
||||
- (Jungfrau) two interfaces
|
||||
- (Eiger, Jungfrau server) starting frame number
|
||||
- (Eiger server) Server Config File
|
||||
- (Eiger server) Partial Readout
|
||||
- (Eiger server) Removed Features
|
||||
- (Eiger server) Deactivation
|
||||
- Zmq interface (ZmqSocket.h)
|
||||
- slsReceiver (Metadata)
|
||||
- slsReceiver (Shared Memory)
|
||||
- slsReceiver (UDP IP)
|
||||
- (Eiger Custom Receiver) Header packet
|
||||
- Gui (zmq high water mark)
|
||||
- (Eiger Server) Blocked server
|
||||
- (Eiger Firmware) Extra 8 byte Packets
|
||||
|
||||
- Python bindings
|
||||
- CMake improvements
|
||||
|
||||
|
||||
2. New Features
|
||||
===============
|
||||
|
||||
Client
|
||||
------
|
||||
1. Compilation requirements
|
||||
They are very different now and can be accessed at
|
||||
https://slsdetectorgroup.github.io/devdoc/dependencies.html
|
||||
Gui not included in default cmk.sh script. Must be explicitly asked for.
|
||||
|
||||
2. Manuals
|
||||
They can be compiled in the package.
|
||||
https://slsdetectorgroup.github.io/devdoc/installation.html#build-this-documentation
|
||||
Or refer to the documentation provided in
|
||||
https://slsdetectorgroup.github.io/devdoc/index.html
|
||||
|
||||
3. API
|
||||
Changed to Detector class.
|
||||
C++: Detector.h
|
||||
Documentation:
|
||||
https://slsdetectorgroup.github.io/devdoc/detector.html
|
||||
Examples to use the Detector class:
|
||||
https://github.com/slsdetectorgroup/api-examples
|
||||
|
||||
Python API Documentation:
|
||||
https://slsdetectorgroup.github.io/devdoc/pydetector.html
|
||||
|
||||
Command line:
|
||||
Many commands have become deprecated. They will still execute,
|
||||
but give a warning.
|
||||
Documentation:
|
||||
https://slsdetectorgroup.github.io/devdoc/commandline.html
|
||||
Help on a command:
|
||||
sls_detector_help [command], or
|
||||
sls_detector_get -h [command]
|
||||
|
||||
4. Exceptions
|
||||
They are thrown instead of providing error codes.
|
||||
sls_detector_exceptions.h
|
||||
Make sure you catch all exceptions in custom gui and handle them or
|
||||
inform the user.
|
||||
Exceptions thrown in callbacks are also handled.
|
||||
- An exception in startAcquisitionCallBack will need to be handled in
|
||||
startReceiver or acquire()
|
||||
- An exception in acquisitionFinishedCallBack will need to be handled in
|
||||
stopReceiver or acquire()
|
||||
- An exception in rawDataReadyCallBack or rawDataModifyReadyCallBack
|
||||
will only print and skip image to free it in memory. If address is
|
||||
incorrect after callback, expect undefined behavior.
|
||||
|
||||
5. Scan mode
|
||||
One can do scans for dacs or trimbits. Trimbits are only for Eiger or
|
||||
Mythen3. Enable scan mode and then acquire using blocking or non blocking
|
||||
method. Command: scan.
|
||||
|
||||
6. Timing Commands
|
||||
In command line, all timing commands (eg. peiod) can now specify unit.
|
||||
eg 100ms 10us, 1s, 100ns
|
||||
In C++ API, one must use chrono library.
|
||||
eg. std::chrono::duration<double, std::milli> t1{232.57};
|
||||
det.setExptime(std::chrono::duration_cast<std::chrono::nanoseconds>(t1));
|
||||
In Python API, one must use timedelta library.
|
||||
eg. d.exptime = dt.timedelta(seconds = 1.2)
|
||||
|
||||
7. Enum list (daclist)
|
||||
Command line and API now has features to get the list of enums/commands
|
||||
for dacs, settings, dynamic range, timing modes and temperatures for
|
||||
the detector in shared memory.
|
||||
eg. daclist, settingslist, drlist, timinglist, templist
|
||||
Command line also has commands to get their values.
|
||||
eg. dacvalues, tempvalues
|
||||
Python has commands to get their values (detector specific class).
|
||||
eg. d.temp, d.dacs
|
||||
|
||||
8. Command Line (return code)
|
||||
Return code of the client command line applications now return 0 for
|
||||
success and 1 for failure.
|
||||
|
||||
9. Command Line (Dac)
|
||||
All dac commands have been converted to a single "dac" command with
|
||||
the previous dac commands as arguments.
|
||||
eg. sls_detector_get vcmp_ll
|
||||
is now
|
||||
sls_detector_get dac vcmp_ll
|
||||
|
||||
10. UDP Configuration
|
||||
Once all the udp details are set in the detector, the detector's
|
||||
destination is then configured automatically. If the detector is not
|
||||
configured, it will fail when acquiring. If any of these parameters
|
||||
are also changed, then this is configured again. Hence, configuremac
|
||||
command has been removed. Instead, there are commands such as
|
||||
udp_validate (to validate if it has been configured) and
|
||||
udp_reconfigure (to reconfigure).
|
||||
|
||||
11. Gap Pixels
|
||||
Gap pixels are now only available in client call back or gui (not in
|
||||
receiver anymore). It can be enabled for Eiger and Jungfrau and
|
||||
includes inter chip and inter module gap pixels.
|
||||
|
||||
Detector Servers
|
||||
----------------
|
||||
|
||||
1. Detector Simulators
|
||||
Or virtual detector servers for every detector have been provided.
|
||||
They are compiled along with the client by enabling its option.
|
||||
They should also send fake data (increasing pixel/channel value).
|
||||
|
||||
2. (Jungfrau) settings
|
||||
Settings command do not implicitly set default dacs from now on.
|
||||
One can use the command 'defaultdacs' to set them explicitly.
|
||||
|
||||
3. Shared Memory
|
||||
Almost all the detector parameters removed from shared memory.
|
||||
Therefore, they are all fetched directly from detector.
|
||||
|
||||
4. (Jungfrau) Two 10G data interfaces
|
||||
Only Jungfrau PCBs with version 2.0 can run at full speed using both
|
||||
the 10G UDP interfaces to stream out data. This is available from
|
||||
the current firmware and software. To enable two interfaces, one has
|
||||
to enable two interfaces using "numinterfaces" to 2 and set corresponding
|
||||
udp_dstip2, udp_dstport2 etc. One can also decide to select which of
|
||||
the two interfaces to use, when using only 1 interface.
|
||||
|
||||
5. (Eiger, Jungfrau) Next Frame number
|
||||
Both now have running frame numbers that is only reset at boot up
|
||||
and increments continuously through acquisitions. One is able to
|
||||
set the next frame number now. Command: nextframenumber.
|
||||
|
||||
6. (Eiger) Server Config file (config_eiger.txt)
|
||||
A config file on the detector can take in 2 parameters "master"
|
||||
and "top" being set to 1 or 0 to enable or disable the same.
|
||||
When server is started without this file, it is set to hardware
|
||||
settings.
|
||||
|
||||
7. (Eiger) Partial readout
|
||||
It is possible for partial readouts, where you specify the number
|
||||
of pixel rows to read out. Not all values are allowed. The current
|
||||
slsReceiver does not complain about missing packets, but only puts
|
||||
this partial image into the complete image (padding the rest). One
|
||||
can cut out required subimage using callbacks, but this feature
|
||||
is probably more useful for custom receivers. Command: readnlines.
|
||||
|
||||
8. (Eiger) Removed Features
|
||||
storeinram, safe speed and ability to set settings via the settings
|
||||
command has been removed.
|
||||
|
||||
9. (Eiger) Deactivation
|
||||
The detector is deactivated by default upon boot up and activated only
|
||||
upon setting hostname in the client. This is to ensure if the
|
||||
network of a board or a board is broken and one cannot connect
|
||||
to this board, then it is deactivated by default upon reboot.
|
||||
Therefore, one can use other half modules of the detector.
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. Zmq
|
||||
The static library and the zmq.h is no longer provided with package.
|
||||
One must install ZeroMQ version 4.
|
||||
ZmqSocket.h API has changed, especially in parsing receiving JSON header.
|
||||
One must pick up needed parameters from exposed struct zmqHeader in
|
||||
ZmqSocket.h.
|
||||
|
||||
2. Metadata
|
||||
Detector dependant metadata has been added to the master files.
|
||||
|
||||
3. Shared Memory
|
||||
Almost all receiver parameters have been removed from client shared memory.
|
||||
Therefore the receiver process needs to be alive to access any receiver
|
||||
parameter as they are now fetched directly from the receiver.
|
||||
|
||||
4. UDP IP
|
||||
Since all the parameters are fetched from receiver or detector directly
|
||||
(not shared memory), the udp desintation ip (previously rx_udpip) is safer
|
||||
to be specified before setting rx_hostname. Setting it before has the
|
||||
advantage that the detector is updated first before the receiver is
|
||||
requested for the udp mac. This helps when changing pc and the receiver
|
||||
cannot find the udp ip to get the udp mac.
|
||||
|
||||
5. (Eiger) Header packet
|
||||
The header packets of Eiger are not sent in this firmware version. So,
|
||||
custom receivers should handle accordingly.
|
||||
|
||||
Gui
|
||||
---
|
||||
|
||||
1. Zmq high water mark
|
||||
When opening the Gui, the zmq send and receiver high water mark is set to 2
|
||||
instead of default (1000 for zmq library version 4). This is to ensure
|
||||
fast and large detectors can still see latest data on the gui at the cost of
|
||||
losing images in between.
|
||||
When using a different processor or client data call back to handle zmq data,
|
||||
please ensure this is set back to default to get every zmq packet. Setting it to
|
||||
-1 sets it to library defaults.
|
||||
|
||||
|
||||
|
||||
|
||||
3. Resolved Issues
|
||||
2. Resolved Issues
|
||||
==================
|
||||
|
||||
Detector Server
|
||||
Python bindings
|
||||
---------------
|
||||
|
||||
1. (Eiger) Blocked Server
|
||||
Very rarely, Eiger control or stop server would block and would require a restart
|
||||
of server. This is due to both servers accessing the same link to get to FEB
|
||||
registers. Locking has been implemented in server shared memory to resolve.
|
||||
1. Fixed function signatures for getRxUDPSocketBufferSize,
|
||||
setRxUDPSocketBufferSize and getRxRealUDPSocketBufferSize.
|
||||
|
||||
2. Updated pybind11 to v2.6.1 to remove warnings with Python 3.9 and
|
||||
better handling of C++ standard.
|
||||
|
||||
3. Added missing properties in Python.
|
||||
|
||||
|
||||
CMake improvements
|
||||
------------------
|
||||
|
||||
1. Explicitly state Python 3.6 or greater.
|
||||
|
||||
2. Finds the Python of the activated environment when using conda
|
||||
without having to supply additional arguments.
|
||||
|
||||
3. Removed redundant libraries for linking targets.
|
||||
|
||||
|
||||
|
||||
3. Firmware Requirements
|
||||
========================
|
||||
|
||||
No updates from 5.0.0
|
||||
|
||||
|
||||
|
||||
4. Known Issues
|
||||
===============
|
||||
|
||||
1. (Eiger) Extra 8 byte Packets
|
||||
When stopping detector acquisition while acquiring for more than 128 frames,
|
||||
the next acquisition sends out first an 8 byte packet. This is discarded
|
||||
by the slsReceiver/slsMultiReceiver. Please handle this in custom receivers.
|
||||
No updates from 5.0.0
|
||||
|
||||
|
||||
|
||||
5. Firmware Requirements
|
||||
========================
|
||||
|
||||
Eiger
|
||||
=====
|
||||
Compatible version : 08.09.2020 (v27)
|
||||
|
||||
Jungfrau
|
||||
========
|
||||
Compatible version : 24.07.2020 (v1.1, PCB v1.0)
|
||||
: 21.07.2020 (v2.1, PCB v2.0)
|
||||
|
||||
Gotthard
|
||||
========
|
||||
Compatible version : 08.02.2018 (50um and 25um Master)
|
||||
: 09.02.2018 (25 um Slave)
|
||||
|
||||
Mythen3
|
||||
=======
|
||||
Compatible version : 25.09.2020 (development)
|
||||
|
||||
Gotthard2
|
||||
=========
|
||||
Compatible version : 25.09.2020 (development)
|
||||
|
||||
Moench
|
||||
======
|
||||
Compatible version : 05.10.2020 (v1.0)
|
||||
|
||||
Ctb
|
||||
===
|
||||
Compatible version : 05.10.2020 (v1.0)
|
||||
|
||||
Detector Upgrade
|
||||
================
|
||||
|
||||
The following can be upgraded remotely:
|
||||
Eiger via bit files
|
||||
Jungfrau via command <.pof>
|
||||
Mythen3 via command <.rbf>
|
||||
Gotthard2 via command <.rbf>
|
||||
Moench via command <.pof>
|
||||
Ctb via command <.pof>
|
||||
|
||||
The following cannot be upgraded remotely:
|
||||
Gotthard
|
||||
|
||||
Instructions available at
|
||||
https://slsdetectorgroup.github.io/devdoc/firmware.html
|
||||
and
|
||||
https://slsdetectorgroup.github.io/devdoc/serverupgrade.html
|
||||
|
||||
|
||||
6. Download, Documentation & Support
|
||||
5. Download, Documentation & Support
|
||||
====================================
|
||||
|
||||
Download
|
||||
|
@ -9,7 +9,7 @@ CMake approaches.
|
||||
One can test with :ref:`detector simulators<Virtual Detector Servers>` before testing the API with a real detector or when a real detector is not at hand.
|
||||
|
||||
CMake: slsDetectorPackage as submodule in your project
|
||||
---------------------------------------
|
||||
---------------------------------------------------------------
|
||||
|
||||
If you are using CMake to build your integration and want to build everything
|
||||
in one go, we support adding slsDetectorPackage as a subfolder in your cmake project.
|
||||
|
@ -12,32 +12,7 @@ Download
|
||||
|
||||
- detector server corresponding to package in slsDetectorPackage/serverBin
|
||||
|
||||
- bit files
|
||||
.. list-table::
|
||||
:widths: 25 10 30 25 10
|
||||
:header-rows: 1
|
||||
|
||||
* - Software
|
||||
- Hardware
|
||||
- Firmware Date
|
||||
- Firmware Link
|
||||
- Comments
|
||||
* - v5.0.0-rcx
|
||||
-
|
||||
- 08.09.2020
|
||||
- `v27 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/eiger/v27/>`__
|
||||
-
|
||||
* - v4.0.0 - v4.2.0
|
||||
-
|
||||
- 30.07.2019
|
||||
- `v24 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/eiger/v24/>`__
|
||||
-
|
||||
* - v3.1.0 - v3.1.5
|
||||
-
|
||||
- 17.08.2017
|
||||
- `v20 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/eiger/v20/>`__
|
||||
-
|
||||
|
||||
- `bit files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
Upgrade
|
||||
^^^^^^^^
|
||||
@ -116,37 +91,7 @@ Download
|
||||
^^^^^^^^^^^^^
|
||||
- detector server corresponding to package in slsDetectorPackage/serverBin
|
||||
|
||||
- pof files
|
||||
.. list-table::
|
||||
:widths: 25 10 30 25 10
|
||||
:header-rows: 1
|
||||
|
||||
* - Software
|
||||
- Hardware
|
||||
- Firmware Date
|
||||
- Firmware Link
|
||||
- Comments
|
||||
* - v5.0.0-rcx
|
||||
- 2.0
|
||||
- 21.07.2020
|
||||
- `v2.1 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/jungfrau/v2_1/jungfrau_v2_1.pof>`__
|
||||
-
|
||||
* - v5.0.0-rcx
|
||||
- 1.0
|
||||
- 24.07.2020
|
||||
- `v1.1 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/jungfrau/v1_1/jungfrau_v1_1.pof>`__
|
||||
-
|
||||
* - v4.0.1 - v4.2.0
|
||||
- 1.0
|
||||
- 06.12.2018
|
||||
- `v0.7 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/jungfrau/v0_7/jungfrau_v0_7.pof>`__
|
||||
-
|
||||
* - v3.1.0 - v3.1.5
|
||||
- 1.0
|
||||
- 13.11.2017
|
||||
- `v0.6 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/jungfrau/v0_6/jungfrau_v0_6.pof>`__
|
||||
-
|
||||
|
||||
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
|
||||
Upgrade (from v4.x.x)
|
||||
@ -156,7 +101,7 @@ Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you
|
||||
|
||||
#. Tftp must be installed on pc.
|
||||
|
||||
#. Update client package to the latest (5.0.0-rc1).
|
||||
#. Update client package to the latest (5.x.x).
|
||||
|
||||
#. Disable server respawning or kill old server
|
||||
.. code-block:: bash
|
||||
@ -204,7 +149,7 @@ Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you
|
||||
jungfrauDetectorServervxxx --stop-server 1953
|
||||
|
||||
|
||||
Upgrade (from v5.0.0-rcx)
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
|
||||
@ -230,31 +175,8 @@ Download
|
||||
^^^^^^^^^^^^^
|
||||
- detector server corresponding to package in slsDetectorPackage/serverBin
|
||||
|
||||
- pof files
|
||||
.. list-table::
|
||||
:widths: 15 15 15 15 5
|
||||
:header-rows: 1
|
||||
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
* - Software
|
||||
- Hardware
|
||||
- Firmware Date
|
||||
- Firmware Link
|
||||
- Comments
|
||||
* - All versions
|
||||
- 50um
|
||||
- 08.02.2018
|
||||
- `50um <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/gotthard_I/50um/gotthard_I_50um.pof>`__
|
||||
-
|
||||
* - All versions
|
||||
- 25um (master)
|
||||
- 08.02.2018
|
||||
- `25um (master) <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/gotthard_I/25um/master/gotthard_I_25um_master.pof>`__
|
||||
-
|
||||
* - All versions
|
||||
- 25um (slave)
|
||||
- 09.02.2018
|
||||
- `25um (slave) <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/gotthard_I/25um/slave/gotthard_I_25um_slave.pof>`__
|
||||
-
|
||||
|
||||
.. _firmware upgrade using blaster for blackfin:
|
||||
|
||||
@ -294,24 +216,10 @@ Download
|
||||
|
||||
- detector server corresponding to package in slsDetectorPackage/serverBin
|
||||
|
||||
- rbf files
|
||||
.. list-table::
|
||||
:widths: 25 10 30 25 10
|
||||
:header-rows: 1
|
||||
|
||||
* - Software
|
||||
- Hardware
|
||||
- Firmware Date
|
||||
- Firmware Link
|
||||
- Comments
|
||||
* - v5.0.0-rcx
|
||||
-
|
||||
- 25.09.2020
|
||||
-
|
||||
- development
|
||||
- rbf files (in developement)
|
||||
|
||||
|
||||
Upgrade (from v5.0.0-rcx)
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
#. Program from console
|
||||
@ -337,23 +245,10 @@ Download
|
||||
^^^^^^^^^^^^^
|
||||
- detector server corresponding to package in slsDetectorPackage/serverBin
|
||||
|
||||
- rbf files
|
||||
.. list-table::
|
||||
:widths: 25 10 30 25 10
|
||||
:header-rows: 1
|
||||
- rbf files (in development)
|
||||
|
||||
* - Software
|
||||
- Hardware
|
||||
- Firmware Date
|
||||
- Firmware Link
|
||||
- Comments
|
||||
* - v5.0.0-rcx
|
||||
-
|
||||
- 25.09.2020
|
||||
-
|
||||
- development
|
||||
|
||||
Upgrade (from v5.0.0-rcx)
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
#. Program from console
|
||||
@ -375,28 +270,10 @@ Download
|
||||
^^^^^^^^^^^^^
|
||||
- detector server corresponding to package in slsDetectorPackage/serverBin
|
||||
|
||||
- pof files
|
||||
.. list-table::
|
||||
:widths: 25 10 30 25 10
|
||||
:header-rows: 1
|
||||
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
* - Software
|
||||
- Hardware
|
||||
- Firmware Date
|
||||
- Firmware Link
|
||||
- Comments
|
||||
* - v5.0.0-rcx
|
||||
- EPCQ128
|
||||
- 05.10.2020
|
||||
- `v1.0 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/moench/EPCQ128/v1_0/moench_v1_0_201005.pof>`__
|
||||
-
|
||||
* - v5.0.0-rcx
|
||||
- EPCS128
|
||||
- 05.10.2020
|
||||
- `v1.0 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/moench/EPCS128/v1_0/moench_v1_0_201005.pof>`__
|
||||
-
|
||||
|
||||
Upgrade (from v5.0.0-rcx)
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
|
||||
@ -419,28 +296,10 @@ Download
|
||||
^^^^^^^^^^^^^
|
||||
- detector server corresponding to package in slsDetectorPackage/serverBin
|
||||
|
||||
- pof files
|
||||
.. list-table::
|
||||
:widths: 25 10 30 25 10
|
||||
:header-rows: 1
|
||||
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
* - Software
|
||||
- Hardware
|
||||
- Firmware Date
|
||||
- Firmware Link
|
||||
- Comments
|
||||
* - v5.0.0-rcx
|
||||
- EPCQ128
|
||||
- 05.10.2020
|
||||
- `v1.0 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/ctb/EPCQ128/v1_0/ctb_v1_0_201005.pof>`__
|
||||
-
|
||||
* - v5.0.0-rcx
|
||||
- EPCS128
|
||||
- 05.10.2020
|
||||
- `v1.0 <https://github.com/slsdetectorgroup/slsDetectorFirmware/blob/master/binaries/ctb/EPCS128/v1_0/ctb_v1_0_201005.pof>`__
|
||||
-
|
||||
|
||||
Upgrade (from v5.0.0-rcx)
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
|
||||
@ -462,11 +321,12 @@ Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you
|
||||
Firmware Troubleshooting with blackfin
|
||||
----------------------------------------
|
||||
|
||||
#. v4.x.x client after programming will most likely reboot the blackfin processor, regardless of error.
|
||||
1. 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.
|
||||
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:
|
||||
|
||||
#. 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:
|
||||
.. code-block:: bash
|
||||
|
||||
# connect to the board
|
||||
@ -482,7 +342,7 @@ Firmware Troubleshooting with blackfin
|
||||
|
||||
4. If one can see the mtd3 drive, one can already try to flash again using the **programfpga** command (without rebooting blackfin or detector).
|
||||
|
||||
#. If one can't list it, read the next section to try to get the blackfin to list it.
|
||||
5. If one can't list it, read the next section to try to get the blackfin to list it.
|
||||
|
||||
How to get back mtd3 drive remotely
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
Submodule libs/pybind11 updated: 4f72ef846f...f1abf5d915
@ -1,6 +1,4 @@
|
||||
|
||||
# find_package (Python COMPONENTS Interpreter Development)
|
||||
|
||||
pybind11_add_module(_slsdet
|
||||
src/main.cpp
|
||||
src/enums.cpp
|
||||
@ -9,11 +7,8 @@ pybind11_add_module(_slsdet
|
||||
)
|
||||
|
||||
target_link_libraries(_slsdet PUBLIC
|
||||
slsDetectorShared
|
||||
slsReceiverShared
|
||||
slsSupportShared
|
||||
${ZeroMQ_LIBRARIES}
|
||||
)
|
||||
slsDetectorStatic
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
@ -349,7 +349,7 @@ class Detector(CppDetectorApi):
|
||||
|
||||
@property
|
||||
@element
|
||||
def nframes(self):
|
||||
def framecounter(self):
|
||||
"""
|
||||
[Jungfrau][Mythen3][Gotthard2][Moench][CTB] Number of frames from start run control.
|
||||
Note
|
||||
@ -1009,6 +1009,32 @@ class Detector(CppDetectorApi):
|
||||
ip = ut.make_ip(ip) #Convert from int or string to IpAddr
|
||||
ut.set_using_dict(self.setClientZmqIp, ip)
|
||||
|
||||
|
||||
@property
|
||||
def zmqhwm(self):
|
||||
"""
|
||||
Client's zmq receive high water mark. Default is the zmq library's default (1000), can also be set here using -1.
|
||||
This is a high number and can be set to 2 for gui purposes.
|
||||
One must also set the receiver's send high water mark to similar value. Final effect is sum of them.
|
||||
Setting it via command line is useful only before zmq enabled (before opening gui).
|
||||
"""
|
||||
return self.getClientZmqHwm()
|
||||
|
||||
@zmqhwm.setter
|
||||
def zmqhwm(self, n_frames):
|
||||
self.setClientZmqHwm(n_frames)
|
||||
|
||||
@property
|
||||
def rx_zmqhwm(self):
|
||||
"""
|
||||
Receiver's zmq send high water mark. Default is the zmq library's default (1000). This is a high number and can be set to 2 for gui purposes. One must also set the client's receive high water mark to similar value. Final effect is sum of them. Also restarts receiver zmq streaming if enabled. Can set to -1 to set default value.
|
||||
"""
|
||||
return self.getRxZmqHwm()
|
||||
|
||||
@rx_zmqhwm.setter
|
||||
def rx_zmqhwm(self, n_frames):
|
||||
self.setRxZmqHwm(n_frames)
|
||||
|
||||
@property
|
||||
@element
|
||||
def udp_dstip(self):
|
||||
@ -1499,7 +1525,7 @@ class Detector(CppDetectorApi):
|
||||
|
||||
@property
|
||||
@element
|
||||
def timestamp(self):
|
||||
def frametime(self):
|
||||
"""[Jungfrau][Mythen3][Gotthard2][Moench][CTB] Timestamp at a frame start.
|
||||
Note
|
||||
----
|
||||
@ -1965,7 +1991,7 @@ class Detector(CppDetectorApi):
|
||||
|
||||
@property
|
||||
@element
|
||||
def now(self):
|
||||
def runtime(self):
|
||||
"""[Jungfrau][Mythen3][Gotthard2][Moench][CTB] Time from detector start up.
|
||||
Note
|
||||
-----
|
||||
@ -3079,6 +3105,14 @@ class Detector(CppDetectorApi):
|
||||
"""
|
||||
return ClkFreqProxy(self)
|
||||
|
||||
|
||||
def readout(self):
|
||||
"""
|
||||
Mythen3] Starts detector readout. Status changes to TRANSMITTING and automatically returns to idle at the end of readout.
|
||||
"""
|
||||
self.startDetectorReadout()
|
||||
|
||||
|
||||
"""
|
||||
---------------------------<<<Debug>>>---------------------------
|
||||
"""
|
||||
|
@ -120,6 +120,10 @@ void init_det(py::module &m) {
|
||||
(void (Detector::*)(const bool)) &
|
||||
Detector::setGapPixelsinCallback,
|
||||
py::arg())
|
||||
.def("isVirtualDetectorServer",
|
||||
(Result<bool>(Detector::*)(sls::Positions) const) &
|
||||
Detector::isVirtualDetectorServer,
|
||||
py::arg() = Positions{})
|
||||
.def("registerAcquisitionFinishedCallback",
|
||||
(void (Detector::*)(void (*)(double, int, void *), void *)) &
|
||||
Detector::registerAcquisitionFinishedCallback,
|
||||
@ -314,6 +318,9 @@ void init_det(py::module &m) {
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("getDacList", (std::vector<defs::dacIndex>(Detector::*)() const) &
|
||||
Detector::getDacList)
|
||||
.def("setDefaultDacs",
|
||||
(void (Detector::*)(sls::Positions)) & Detector::setDefaultDacs,
|
||||
py::arg() = Positions{})
|
||||
.def("getDAC",
|
||||
(Result<int>(Detector::*)(defs::dacIndex, bool, sls::Positions)
|
||||
const) &
|
||||
@ -356,6 +363,8 @@ void init_det(py::module &m) {
|
||||
.def("startReceiver", (void (Detector::*)()) & Detector::startReceiver)
|
||||
.def("stopReceiver", (void (Detector::*)()) & Detector::stopReceiver)
|
||||
.def("startDetector", (void (Detector::*)()) & Detector::startDetector)
|
||||
.def("startDetectorReadout",
|
||||
(void (Detector::*)()) & Detector::startDetectorReadout)
|
||||
.def("stopDetector", (void (Detector::*)()) & Detector::stopDetector)
|
||||
.def("getDetectorStatus",
|
||||
(Result<defs::runStatus>(Detector::*)(sls::Positions) const) &
|
||||
@ -599,15 +608,15 @@ void init_det(py::module &m) {
|
||||
Detector::setPartialFramesPadding,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("getRxUDPSocketBufferSize",
|
||||
(Result<int64_t>(Detector::*)(sls::Positions) const) &
|
||||
(Result<int>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getRxUDPSocketBufferSize,
|
||||
py::arg() = Positions{})
|
||||
.def("setRxUDPSocketBufferSize",
|
||||
(void (Detector::*)(int64_t, sls::Positions)) &
|
||||
(void (Detector::*)(int, sls::Positions)) &
|
||||
Detector::setRxUDPSocketBufferSize,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("getRxRealUDPSocketBufferSize",
|
||||
(Result<int64_t>(Detector::*)(sls::Positions) const) &
|
||||
(Result<int>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getRxRealUDPSocketBufferSize,
|
||||
py::arg() = Positions{})
|
||||
.def("getRxLock",
|
||||
@ -747,6 +756,17 @@ void init_det(py::module &m) {
|
||||
(void (Detector::*)(const sls::IpAddr, sls::Positions)) &
|
||||
Detector::setClientZmqIp,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("getClientZmqHwm",
|
||||
(int (Detector::*)() const) & Detector::getClientZmqHwm)
|
||||
.def("setClientZmqHwm",
|
||||
(void (Detector::*)(const int)) & Detector::setClientZmqHwm,
|
||||
py::arg())
|
||||
.def("getRxZmqHwm",
|
||||
(Result<int>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getRxZmqHwm,
|
||||
py::arg() = Positions{})
|
||||
.def("setRxZmqHwm",
|
||||
(void (Detector::*)(const int)) & Detector::setRxZmqHwm, py::arg())
|
||||
.def("getSubExptime",
|
||||
(Result<sls::ns>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getSubExptime,
|
||||
|
@ -1,5 +1,5 @@
|
||||
/** API versions */
|
||||
#define GITBRANCH "5.0.0"
|
||||
#define GITBRANCH "5.0.1"
|
||||
#define APICTB 0x201117
|
||||
#define APIGOTTHARD 0x201117
|
||||
#define APIGOTTHARD2 0x201117
|
||||
@ -7,6 +7,6 @@
|
||||
#define APIMYTHEN3 0x201117
|
||||
#define APIMOENCH 0x201117
|
||||
#define APIEIGER 0x201117
|
||||
#define APILIB 0x201118
|
||||
#define APIRECEIVER 0x201118
|
||||
#define APIGUI 0x201118
|
||||
#define APILIB 0x201125
|
||||
#define APIRECEIVER 0x201125
|
||||
#define APIGUI 0x201125
|
||||
|
Reference in New Issue
Block a user