resolved conflicts from merging 3.1.1 in here

This commit is contained in:
maliakal_d 2018-03-21 09:03:31 +01:00
commit a36b715eab
22 changed files with 61 additions and 161 deletions

View File

@ -1,113 +1 @@
SLS Detector Package 3.1.1 released on 2018-03-12
=================================================
INTRODUCTION
This document describes the differences between 3.1.0 and 3.1.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 for the 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
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
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
=========================
New Features
============
Resolved Issues
===============
Known Issues
============

View File

@ -0,0 +1 @@
../slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer_developer

View File

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

View File

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

View File

@ -0,0 +1 @@
../slsDetectorSoftware/gotthardDetectorServer/gotthardDetectorServer_developer

View File

@ -1 +0,0 @@
../slsDetectorSoftware/gotthardDetectorServer/gotthardDetectorServerv3.1.0.1

View File

@ -0,0 +1 @@
../slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer

View File

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

View File

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

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: 06cdf8ad9204fd306cb1017b91e67452c61715d4 Repsitory UUID: 98752e1cdbd78167ad20c6a01a17852b1a2263a7
Revision: 323 Revision: 326
Branch: developer Branch: developer
Last Changed Author: Erik_Frojdh Last Changed Author: Gemma_Tinti
Last Changed Rev: 3671 Last Changed Rev: 3733
Last Changed Date: 2018-03-13 10:28:12.000000002 +0100 ./FebRegisterDefs.h Last Changed Date: 2018-03-21 08:34:29.000000002 +0100 ./FebRegisterDefs.h

View File

@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "06cdf8ad9204fd306cb1017b91e67452c61715d4" #define GITREPUUID "98752e1cdbd78167ad20c6a01a17852b1a2263a7"
#define GITAUTH "Erik_Frojdh" #define GITAUTH "Gemma_Tinti"
#define GITREV 0x3671 #define GITREV 0x3733
#define GITDATE 0x20180313 #define GITDATE 0x20180321
#define GITBRANCH "developer" #define GITBRANCH "developer"

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware Path: slsDetectorsPackage/slsDetectorSoftware
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: b58c3e8951625ed9124669404f6b68aca340a1b8 Repsitory UUID: 98752e1cdbd78167ad20c6a01a17852b1a2263a7
Revision: 1842 Revision: 1846
Branch: developer Branch: developer
Last Changed Author: Dhanya_Thattil Last Changed Author: Gemma_Tinti
Last Changed Rev: 3727 Last Changed Rev: 3733
Last Changed Date: 2018-03-14 16:10:22.000000002 +0100 ./multiSlsDetector/multiSlsDetector.cpp Last Changed Date: 2018-03-21 09:01:24.000000002 +0100 ./threadFiles/ThreadPool.o

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: 06cdf8ad9204fd306cb1017b91e67452c61715d4 Repsitory UUID: 98752e1cdbd78167ad20c6a01a17852b1a2263a7
Revision: 122 Revision: 133
Branch: developer Branch: developer
Last Changed Author: Erik_Frojdh Last Changed Author: Gemma_Tinti
Last Changed Rev: 3671 Last Changed Rev: 3733
Last Changed Date: 2018-03-13 10:29:31.000000002 +0100 ./Makefile.virtual Last Changed Date: 2018-03-21 08:34:29.000000002 +0100 ./RegisterDefs.h

View File

@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "06cdf8ad9204fd306cb1017b91e67452c61715d4" #define GITREPUUID "98752e1cdbd78167ad20c6a01a17852b1a2263a7"
#define GITAUTH "Erik_Frojdh" #define GITAUTH "Gemma_Tinti"
#define GITREV 0x3671 #define GITREV 0x3733
#define GITDATE 0x20180313 #define GITDATE 0x20180321
#define GITBRANCH "developer" #define GITBRANCH "developer"

View File

@ -1250,6 +1250,10 @@ void configurePll() {
#endif #endif
u_int32_t val; u_int32_t val;
int32_t phase=0, inv=0; int32_t phase=0, inv=0;
// ensuring PLL is never configured with same phase
if (clkPhase[1] == 0) {
return;
}
printf("Configuring PLL with phase in %d\n", clkPhase[1]); printf("Configuring PLL with phase in %d\n", clkPhase[1]);
if (clkPhase[1]>0) { if (clkPhase[1]>0) {

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 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_HALF_SPEED_VAL (0x20) //adc pipeline
#define ADC_OFST_QUARTER_SPEED_VAL (0x0f) #define ADC_OFST_QUARTER_SPEED_VAL (0x0f)
#define ADC_PHASE_HALF_SPEED (0x41) #define ADC_PHASE_HALF_SPEED (0x48) //72
#define ADC_PHASE_QUARTER_SPEED (0x19) #define ADC_PHASE_QUARTER_SPEED (0x48) //72
/* Maybe not required for jungfrau */ /* Maybe not required for jungfrau */
#define NTRIMBITS (6) #define NTRIMBITS (6)

View File

@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "b58c3e8951625ed9124669404f6b68aca340a1b8" #define GITREPUUID "98752e1cdbd78167ad20c6a01a17852b1a2263a7"
#define GITAUTH "Dhanya_Thattil" #define GITAUTH "Gemma_Tinti"
#define GITREV 0x3727 #define GITREV 0x3733
#define GITDATE 0x20180314 #define GITDATE 0x20180321
#define GITBRANCH "developer" #define GITBRANCH "developer"

View File

@ -718,7 +718,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
*/ */
/*! \page config /*! \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_pFuncName="clkdivider"; //
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSpeed; descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSpeed;
@ -774,7 +774,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
++i; ++i;
/*! \page config /*! \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_pFuncName="adcphase"; //
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSpeed; descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSpeed;
@ -5830,7 +5830,6 @@ string slsDetectorCommand::cmdSpeed(int narg, char *args[], int action) {
} }
myDet->setOnline(ONLINE_FLAG); myDet->setOnline(ONLINE_FLAG);
ret=myDet->setSpeed(index,t); ret=myDet->setSpeed(index,t);
@ -5849,21 +5848,23 @@ string slsDetectorCommand::helpSpeed(int narg, char *args[], int action) {
ostringstream os; ostringstream os;
if (action==PUT_ACTION || action==HELP_ACTION) { 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 << "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 << "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 << "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 << "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; os << std::endl;
} }
if (action==GET_ACTION || action==HELP_ACTION) { 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 << "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 << "waitstates \t gets the waitstates of the bus interface" << std::endl;
os << "totdivider \t gets the clock divider in tot mode" << 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 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; 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. @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); 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 x0 horizontal position origin in channel number
\param y0 vertical position origin in channel number \param y0 vertical position origin in channel number
\param nx number of channels in horiziontal \param nx number of channels in horiziontal

View File

@ -41,6 +41,9 @@ char mess[MAX_STR_LENGTH];
int dataBytes = 10; int dataBytes = 10;
int isControlServer = 0; int isControlServer = 0;
int debugflag = 0; int debugflag = 0;
#ifdef EIGERD
uint32_t dhcpipad = 0;
#endif
/* initialization functions */ /* initialization functions */
@ -66,6 +69,9 @@ void init_detector(int controlserver) {
if (controlserver) { if (controlserver) {
isControlServer = 1; isControlServer = 1;
initControlServer(); initControlServer();
#ifdef EIGERD
dhcpipad = getDetectorIP();
#endif
} }
else initStopServer(); else initStopServer();
#endif #endif
@ -3678,16 +3684,19 @@ int configure_mac(int file_des) {
printf("WARNING: Matched detectormac to the hardware mac now\n"); printf("WARNING: Matched detectormac to the hardware mac now\n");
printf("*************************************************\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 //only for 1Gbe
if(!enableTenGigabitEthernet(-1)){ if(!enableTenGigabitEthernet(-1)){
if (detipad != getDetectorIP()){ printf("*************************************************\n");
printf("*************************************************\n"); printf("WARNING: Using DHCP IP for Configuring MAC\n");
printf("WARNING: actual detector ip address %x does not match the one from client %x\n",getDetectorIP(),detipad); printf("*************************************************\n");
detipad = getDetectorIP(); detipad = getDetectorIP();
printf("WARNING: Matched detector ip to the hardware ip now\n"); } else
printf("*************************************************\n"); detipad = dhcpipad;
}
}
#endif #endif
retval=configureMAC(ipad,imacadd,idetectormacadd,detipad,udpport,udpport2,0); //digitalTestBit); retval=configureMAC(ipad,imacadd,idetectormacadd,detipad,udpport,udpport2,0); //digitalTestBit);
if(retval==-1) { if(retval==-1) {