fixed gitinfo

This commit is contained in:
2018-04-23 14:19:55 +02:00
64 changed files with 1276 additions and 649 deletions

View File

@@ -24,6 +24,7 @@ using namespace std;
// 0xFFF0000000000000ULL
#define MULTI_DETECTORS_NOT_ADDED 0x8000000000000000ULL
#define MULTI_HAVE_DIFFERENT_VALUES 0x4000000000000000ULL
#define MULTI_CONFIG_FILE_ERROR 0x2000000000000000ULL
// sls errors
#define CRITICAL_ERROR_MASK 0xFFFFFFF
@@ -91,6 +92,7 @@ using namespace std;
#define RESTREAM_STOP_FROM_RECEIVER 0x0000000800000000ULL
#define TEMPERATURE_CONTROL 0x0000001000000000ULL
#define AUTO_COMP_DISABLE 0x0000002000000000ULL
#define CONFIG_FILE 0x0000004000000000ULL
// 0x000000FFFFFFFFFFULL
@@ -289,6 +291,8 @@ public:
if(slsErrorMask&AUTO_COMP_DISABLE)
retval.append("Could not set/get auto comparator disable\n");
if(slsErrorMask&CONFIG_FILE)
retval.append("Could not load/write config file\n");
//------------------------------------------------------ length of message

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: 06cdf8ad9204fd306cb1017b91e67452c61715d4
Revision: 323
Repsitory UUID: da010a03d725b6f18020d2142d58771534414274
Revision: 328
Branch: developer
Last Changed Author: Erik_Frojdh
Last Changed Rev: 3671
Last Changed Date: 2018-03-13 10:28:12.000000002 +0100 ./FebRegisterDefs.h
Last Changed Rev: 3751
Last Changed Date: 2018-04-03 16:29:39.000000002 +0200 ./xparameters.h

View File

@@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "06cdf8ad9204fd306cb1017b91e67452c61715d4"
#define GITREPUUID "da010a03d725b6f18020d2142d58771534414274"
#define GITAUTH "Erik_Frojdh"
#define GITREV 0x3671
#define GITDATE 0x20180313
#define GITREV 0x3751
#define GITDATE 0x20180403
#define GITBRANCH "developer"

View File

@@ -1,9 +1,18 @@
Path: slsDetectorsPackage/slsDetectorSoftware
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
<<<<<<< HEAD
Repsitory UUID: ab06c33107ecfeb4741d49407903ff80286cf75b
Revision: 1846
Branch: developer
Last Changed Author: Anna_Bergamaschi
Last Changed Rev: 3731
Last Changed Date: 2018-03-15 12:30:34.000000002 +0100 ./threadFiles/ThreadPool.o
=======
Repsitory UUID: b8bdbf4da61f95b88893b02ddabc2491b16fa10f
Revision: 1852
Branch: developer
Last Changed Author: Dhanya_Thattil
Last Changed Rev: 3746
Last Changed Date: 2018-03-27 10:47:02.000000002 +0200 ./slsDetector/slsDetector.o
>>>>>>> 7cd35f24b87501374fbaf45693a2adf16dfae3e3

View File

@@ -1289,6 +1289,7 @@ int64_t setExposureTime(int64_t value){
/* time is in ns */
if (value!=-1)
value*=(1E-3*clkDivider[0]);//(1E-9*CLK_FREQ);
setPatternWaitTime(0,value);
return set64BitReg(value,SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG)/(1E-3*clkDivider[0]);//(1E-9*CLK_FREQ);
}

View File

@@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/jctbDetectorServer
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: 3da6a6df6556312f7467407a8b5691bdc478424e
Revision: 21
Repsitory UUID: 807189a4923dc257d812c9974f1a4a4d143c2f70
Revision: 23
Branch: developer
Last Changed Author: Dhanya_Thattil
Last Changed Rev: 3597
Last Changed Date: 2018-02-07 10:44:13.000000002 +0100 ./server_funcs.h
Last Changed Author: Anna_Bergamaschi
Last Changed Rev: 3734
Last Changed Date: 2018-04-17 12:35:10.000000002 +0200 ./firmware_funcs.c

View File

@@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "3da6a6df6556312f7467407a8b5691bdc478424e"
#define GITAUTH "Dhanya_Thattil"
#define GITREV 0x3597
#define GITDATE 0x20180207
#define GITREPUUID "807189a4923dc257d812c9974f1a4a4d143c2f70"
#define GITAUTH "Anna_Bergamaschi"
#define GITREV 0x3734
#define GITDATE 0x20180417
#define GITBRANCH "developer"

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: 06cdf8ad9204fd306cb1017b91e67452c61715d4
Revision: 122
Repsitory UUID: da010a03d725b6f18020d2142d58771534414274
Revision: 135
Branch: developer
Last Changed Author: Erik_Frojdh
Last Changed Rev: 3671
Last Changed Date: 2018-03-13 10:29:31.000000002 +0100 ./Makefile.virtual
Last Changed Rev: 3751
Last Changed Date: 2018-04-03 16:29:40.000000002 +0200 ./RegisterDefs.h

View File

@@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "06cdf8ad9204fd306cb1017b91e67452c61715d4"
#define GITREPUUID "da010a03d725b6f18020d2142d58771534414274"
#define GITAUTH "Erik_Frojdh"
#define GITREV 0x3671
#define GITDATE 0x20180313
#define GITREV 0x3751
#define GITDATE 0x20180403
#define GITBRANCH "developer"

View File

@@ -1250,6 +1250,10 @@ 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("Configuring PLL with phase in %d\n", clkPhase[1]);
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 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)

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,8 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "ab06c33107ecfeb4741d49407903ff80286cf75b"
#define GITAUTH "Anna_Bergamaschi"
#define GITREV 0x3731
#define GITDATE 0x20180315
#define GITREPUUID "b8bdbf4da61f95b88893b02ddabc2491b16fa10f"
#define GITAUTH "Dhanya_Thattil"
#define GITREV 0x3746
#define GITDATE 0x20180327
#define GITBRANCH "developer"

View File

@@ -2246,8 +2246,7 @@ int64_t slsDetector::getId( idMode mode, int imod){
#endif
if (mode==THIS_SOFTWARE_VERSION) {
ret=OK;
retval=GITREV;
retval=(retval<<32) | GITDATE;
retval=GITDATE;
} else if (mode==RECEIVER_VERSION) {
if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) {
if (connectData() == OK){
@@ -7265,6 +7264,7 @@ int slsDetector::readConfigurationFile(string const fname){
infile.close();
} else {
std::cout<< "Error opening configuration file " << fname << " for reading" << std::endl;
setErrorMask((getErrorMask())|(CONFIG_FILE));
return FAIL;
}
#ifdef VERBOSE
@@ -7362,6 +7362,7 @@ int slsDetector::writeConfigurationFile(string const fname){
}
else {
std::cout<< "Error opening configuration file " << fname << " for writing" << std::endl;
setErrorMask((getErrorMask())|(CONFIG_FILE));
return FAIL;
}
#ifdef VERBOSE

View File

@@ -718,7 +718,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;
@@ -774,7 +774,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;
@@ -5830,7 +5830,6 @@ string slsDetectorCommand::cmdSpeed(int narg, char *args[], int action) {
}
myDet->setOnline(ONLINE_FLAG);
ret=myDet->setSpeed(index,t);
@@ -5849,21 +5848,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 << "adcphase \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

@@ -275,8 +275,9 @@ int64_t slsDetectorUsers::getThisSoftwareVersion(){
return myDetector->getThisSoftwareVersion();
}
int slsDetectorUsers::enableGapPixels(int enable) {
return myDetector->enableGapPixels(enable);
}
void slsDetectorUsers::registerDataCallback(int( *userCallback)(detectorData*, int, int, void*), void *pArg){
myDetector->registerDataCallback(userCallback,pArg);
@@ -382,3 +383,19 @@ int slsDetectorUsers::setReceiverSilentMode(int i) {
int slsDetectorUsers::setHighVoltage(int i) {
return myDetector->setHighVoltage(i);
}
int slsDetectorUsers::resetFramesCaughtInReceiver() {
return myDetector->resetFramesCaught();
}
int slsDetectorUsers::setReceiverFifoDepth(int i) {
return myDetector->setReceiverFifoDepth(i);
}
int slsDetectorUsers::setFlowControl10G(int i) {
return myDetector->setFlowControl10G(i);
}
int slsDetectorUsers::setTenGigabitEthernet(int i) {
return myDetector->enableTenGigabitEthernet(i);
}

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
@@ -528,6 +528,14 @@ class slsDetectorUsers
*/
int64_t getThisSoftwareVersion();
/**
* Enable gap pixels, only for Eiger and for 8,16 and 32 bit mode.
* 4 bit mode gap pixels only in gui call back (registerDataCallback)
* @param enable 1 sets, 0 unsets, -1 gets
* @return gap pixel enable or -1 for error
*/
int enableGapPixels(int enable=-1);
/**
@short register calbback for accessing detector final data
\param func function to be called at the end of the acquisition. gets detector status and progress index as arguments
@@ -658,17 +666,45 @@ class slsDetectorUsers
/**
* set receiver in silent mode
* @param i 1 sets, 0 unsets (-1 gets)
* @return silent mode of receiver
* @returns silent mode of receiver
*/
int setReceiverSilentMode(int i);
/**
* set high voltage
* @param i > 0 sets, 0 unsets, (-1 gets)
* @return high voltage
* @returns high voltage
*/
int setHighVoltage(int i);
/**
* reset frames caught in receiver
* should be called before startReceiver()
* @retuns OK or FAIL
*/
int resetFramesCaughtInReceiver();
/**
* set receiver fifo depth
* @param i number of images in fifo depth (-1 gets)
* @returns receiver fifo depth
*/
int setReceiverFifoDepth(int i = -1);
/**
* set flow control for 10Gbe (Eiger only)
* @param i 1 sets, 0 unsets (-1 gets)
* @return flow control enable for 10 Gbe
*/
int setFlowControl10G(int i = -1);
/**
* enable/disable 10GbE (Eiger only)
* @param i 1 sets, 0 unsets (-1 gets)
* @return 10GbE enable
*/
int setTenGigabitEthernet(int i = -1);
/************************************************************************
STATIC FUNCTIONS

View File

@@ -259,6 +259,19 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing {
*/
virtual string setNetworkParameter(networkParameter i, string s)=0;
int setFlowControl10G(int i = -1) {
string sret="";
if (i != -1) {
ostringstream o;
o << ((i >= 1) ? 1 : 0);
string sval = o.str();
sret = setNetworkParameter(FLOW_CONTROL_10G, sval);
} else
sret = getNetworkParameter(FLOW_CONTROL_10G);
return atoi(sret.c_str());
}
/**
changes/gets the port number
\param t type port type can be CONTROL_PORT, DATA_PORT, STOP_PORT

View File

@@ -10,8 +10,7 @@ int main(int argc, char *argv[])
{
for (int i = 1; i < argc; ++i ) {
if (!(strcmp (argv[i],"--version")) || !(strcmp (argv[i],"-v"))) {
int64_t tempval = GITREV;
tempval = (tempval <<32) | GITDATE;
int64_t tempval = GITDATE;
cout << argv[0] << " " << GITBRANCH << " (0x" << hex << tempval << ")" << endl;
return 0;
}

View File

@@ -41,6 +41,9 @@ char mess[MAX_STR_LENGTH];
int dataBytes = 10;
int isControlServer = 0;
int debugflag = 0;
#ifdef EIGERD
uint32_t dhcpipad = 0;
#endif
/* initialization functions */
@@ -66,6 +69,9 @@ void init_detector(int controlserver) {
if (controlserver) {
isControlServer = 1;
initControlServer();
#ifdef EIGERD
dhcpipad = getDetectorIP();
#endif
}
else initStopServer();
#endif
@@ -647,7 +653,7 @@ int get_id(int file_des) {
n = receiveData(file_des,&arg,sizeof(arg),INT32);
if (n < 0) return printSocketReadError();
if (arg == MODULE_FIRMWARE_VERSION) {
if (arg == MODULE_SERIAL_NUMBER) {
n = receiveData(file_des,&imod,sizeof(imod),INT32);
if (n < 0) return printSocketReadError();
}
@@ -3678,16 +3684,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) {