From 68d6c514a9b9c0f44e53e212f88f29349037c891 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 10 Jan 2018 15:49:40 +0100 Subject: [PATCH 01/13] jungfrau server has same resetfpga, programfpga and debug mode as developer branch, eiger server has effects from debug flag, but not compiled --- .../slsDetectorFunctionList.c | 2 +- .../jungfrauDetectorServer/gitInfo.txt | 14 +++++++------- .../jungfrauDetectorServer/gitInfoJungfrau.h | 10 +++++----- .../slsDetectorFunctionList.c | 12 +++++++++--- .../slsDetectorFunctionList.h | 2 +- .../slsDetectorServer/slsDetectorServer.c | 13 +++++++++++-- .../slsDetectorServer_funcs.c | 19 ++++++++++++++----- .../slsDetectorServer_funcs.h | 2 +- 8 files changed, 49 insertions(+), 25 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index be09db5b5..49de345af 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -68,7 +68,7 @@ int normal = 0; /* basic tests */ -void checkFirmwareCompatibility(){ +void checkFirmwareCompatibility(int flag){ uint32_t ipadd = getDetectorIP(); uint64_t macadd = getDetectorMAC(); int64_t fwversion = getDetectorId(DETECTOR_FIRMWARE_VERSION); diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt index d904ed28b..ae7f83f2c 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer -URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 3c1eb747d1930d6d38030a5a607f72d3b58a7a21 -Revision: 90 -Branch: 3.0 +URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git +Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git +Repsitory UUID: 669033597145b4eae2e94f620a4dd50a2fa50231 +Revision: 95 +Branch: jungfrauchanges Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1549 -Last Changed Date: 2017-10-25 16:48:35.000000002 +0200 ./RegisterDefs.h +Last Changed Rev: 3331 +Last Changed Date: 2017-12-20 16:57:32.000000002 +0100 ./RegisterDefs.h diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h index cc7c81cf7..5d5676c0a 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,6 +1,6 @@ -#define GITURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" -#define GITREPUUID "3c1eb747d1930d6d38030a5a607f72d3b58a7a21" +#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" +#define GITREPUUID "669033597145b4eae2e94f620a4dd50a2fa50231" #define GITAUTH "Dhanya_Maliakal" -#define GITREV 0x1549 -#define GITDATE 0x20171025 -#define GITBRANCH "blabla" +#define GITREV 0x3331 +#define GITDATE 0x20171220 +#define GITBRANCH "jungfrauchanges" diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index e05096ee1..49b120121 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -25,11 +25,17 @@ int32_t clkPhase[2] = {0, 0}; /* basic tests */ -void checkFirmwareCompatibility() { +void checkFirmwareCompatibility(int flag) { defineGPIOpins(); resetFPGA(); - if ((mapCSP0() == FAIL) || (checkType() == FAIL) || (testFpga() == FAIL) || (testBus() == FAIL)) { + if (mapCSP0() == FAIL) { + cprintf(BG_RED, "Dangerous to continue. Goodbye!\n"); + exit(EXIT_FAILURE); + } + + // does check only if flag is 0 (by default), set by command line + if ((!flag) && ((checkType() == FAIL) || (testFpga() == FAIL) || (testBus() == FAIL))) { cprintf(BG_RED, "Dangerous to continue. Goodbye!\n"); exit(EXIT_FAILURE); } @@ -254,7 +260,7 @@ u_int32_t getDetectorIP(){ /* initialization */ void initControlServer(){ - + clkPhase[0] = 0; clkPhase[1] = 0; setupDetector(); printf("\n"); } diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h index ee3e16d94..b0ab9e2c7 100644 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h @@ -17,7 +17,7 @@ Here are the definitions, but the actual implementation should be done for each // basic tests -void checkFirmwareCompatibility(); +void checkFirmwareCompatibility(int flag); #ifdef JUNGFRAUD int checkType(); u_int32_t testFpga(void); diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c index 4a59e28c1..8e1157980 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c @@ -10,7 +10,7 @@ #include #include #include - +#include extern int sockfd; @@ -23,11 +23,19 @@ int main(int argc, char *argv[]){ int portno, b; int retval=OK; int sd, fd; + int debugflag = 0; // if socket crash, ignores SISPIPE, prevents global signal handler // subsequent read/write to socket gives error - must handle locally signal(SIGPIPE, SIG_IGN); + // circumvent the basic tests + if(argc > 1) { + if(!strcasecmp(argv[1],"-debug")){ + debugflag = 1; + argc=1; + } + } #ifdef STOP_SERVER char cmd[100]; @@ -40,9 +48,10 @@ int main(int argc, char *argv[]){ "********************************************************\n\n" , portno); b=1; - basictests(); + basictests(debugflag); #ifdef STOP_SERVER sprintf(cmd,"%s %d &",argv[0],DEFAULT_PORTNO+1); + //cprintf(BLUE,"cmd:%s\n", cmd); system(cmd); #endif } else { diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 653c1d785..dcb91b293 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -37,7 +37,8 @@ int sockfd; // (updated in slsDetectorServer) as extern int (*flist[NUM_DET_FUNCTIONS])(int); char mess[MAX_STR_LENGTH]; int dataBytes = 10; - +int isControlServer = 0; +int debugflag = 0; /* initialization functions */ @@ -46,9 +47,10 @@ int printSocketReadError() { return FAIL; } -void basictests() { +void basictests(int flag) { + debugflag = flag; #ifdef SLS_DETECTOR_FUNCTION_LIST - checkFirmwareCompatibility(); + checkFirmwareCompatibility(debugflag); #endif } @@ -59,8 +61,10 @@ void init_detector(int controlserver) { #endif #ifdef SLS_DETECTOR_FUNCTION_LIST - if (controlserver) + if (controlserver) { + isControlServer = 1; initControlServer(); + } else initStopServer(); #endif strcpy(mess,"dummy message"); @@ -4601,6 +4605,9 @@ int program_fpga(int file_des) { #ifdef VERY_VERBOSE printf("Done with program receiving command\n"); #endif + if (isControlServer) + basictests(debugflag); + init_detector(isControlServer); } #endif if (ret==OK) @@ -4646,7 +4653,9 @@ int reset_fpga(int file_des) { } #ifdef SLS_DETECTOR_FUNCTION_LIST else { - initControlServer(); + if (isControlServer) + basictests(debugflag); + initControlServer(isControlServer); ret = FORCE_UPDATE; } #endif diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h index 68cba7e0c..e98feb57f 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h @@ -6,7 +6,7 @@ // initialization functions int printSocketReadError(); -void basictests(); +void basictests(int); void init_detector(int); int decode_function(int); const char* getFunctionName(enum detFuncs func); From 348a426242863c230b9525951ba0e7833e38e3d7 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 11 Jan 2018 09:14:45 +0100 Subject: [PATCH 02/13] updating to have developer's debug mode, resetfpga, programfpga and added api versioning, changed software date to only have date --- .../jungfrauDetectorServer/RegisterDefs.h | 46 ++++++- .../jungfrauDetectorServer/gitInfo.txt | 8 +- .../jungfrauDetectorServer/gitInfoJungfrau.h | 6 +- .../slsDetectorFunctionList.c | 121 +++++++++++------- .../slsDetectorServer_defs.h | 7 +- .../slsDetectorFunctionList.h | 1 + 6 files changed, 134 insertions(+), 55 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h index 45a9761dc..eb8b81663 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h @@ -62,6 +62,14 @@ #define HARDWARE_VERSION_NUM_MSK (0x0000003F << HARDWARE_VERSION_NUM_OFST) //Not used in software +/* API Version Register */ +#define API_VERSION_REG (0x0F << 11) + +#define API_VERSION_OFST (0) +#define API_VERSION_MSK (0x00FFFFFF << API_VERSION_OFST) +#define API_VERSION_DETECTOR_TYPE_OFST (24) //Not used in software +#define API_VERSION_DETECTOR_TYPE_MSK (0x000000FF << API_VERSION_DETECTOR_TYPE_OFST) //Not used in software + /* Time from Start 64 bit register */ #define TIME_FROM_START_LSB_REG (0x10 << 11) #define TIME_FROM_START_MSB_REG (0x11 << 11) @@ -188,7 +196,7 @@ #define CONFIG_TDMA_ENABLE_VAL ((0x1 << CONFIG_TDMA_OFST) & CONFIG_TDMA_MSK) #define CONFIG_TDMA_TIMESLOT_OFST (25) #define CONFIG_TDMA_TIMESLOT_MSK (0x0000001F << CONFIG_TDMA_TIMESLOT_OFST) -#define CONFIG_TDMA_TIMESLOT_0_VAL ((0x0 << CONFIG_TDMA_TIMESLOT_OFST) & CONFIG_TDMA_TIMESLOT_MSK) + /* External Signal Register */ #define EXT_SIGNAL_REG (0x4E << 11) @@ -211,6 +219,8 @@ #define CONTROL_DDR3_MEM_RST_MSK (0x00000001 << CONTROL_DDR3_MEM_RST_OFST) //only PHY, not DDR3 PLL ,Not used in software #define CONTROL_ACQ_FIFO_CLR_OFST (14) #define CONTROL_ACQ_FIFO_CLR_MSK (0x00000001 << CONTROL_ACQ_FIFO_CLR_OFST) +#define CONTROL_STORAGE_CELL_NUM_OFST (16) +#define CONTROL_STORAGE_CELL_NUM_MSK (0x0000000F << CONTROL_STORAGE_CELL_NUM_OFST) /* Reconfiguratble PLL Paramater Register */ #define PLL_PARAM_REG (0x50 << 11) @@ -278,7 +288,13 @@ #define SAMPLE_DECMT_FACTOR_4_VAL ((0x2 << SAMPLE_DGTL_DECMT_FACTOR_OFST) & SAMPLE_DGTL_DECMT_FACTOR_MSK) /** Vref Comp Mod Register */ -#define VREF_COMP_MOD_REG (0x5C << 11) //Not used in software, TBD in firmware +#define VREF_COMP_MOD_REG (0x5C << 11) + +#define VREF_COMP_MOD_OFST (0) +#define VREF_COMP_MOD_MSK (0x00000FFF << VREF_COMP_OFST) +#define VREF_COMP_MOD_ENABLE_OFST (31) +#define VREF_COMP_MOD_ENABLE_MSK (0x00000FFF << VREF_COMP_MOD_ENABLE_OFST) + /** DAQ Register */ #define DAQ_REG (0x5D << 11) //TBD in firmware @@ -288,6 +304,21 @@ #define CHIP_POWER_ENABLE_OFST (0) #define CHIP_POWER_ENABLE_MSK (0x00000001 << CHIP_POWER_ENABLE_OFST) +#define CHIP_POWER_STATUS_OFST (1) +#define CHIP_POWER_STATUS_MSK (0x00000001 << CHIP_POWER_STATUS_OFST) + + +/** Temperature Control Register */ +#define TEMP_CTRL_REG (0x5F << 11) + +#define TEMP_CTRL_PROTCT_THRSHLD_OFST (0) +#define TEMP_CTRL_PROTCT_THRSHLD_MSK (0x000007FF << TEMP_CTRL_PRTCT_THRSHLD_OFST) +#define TEMP_CTRL_PROTCT_ENABLE_OFST (16) +#define TEMP_CTRL_PROTCT_ENABLE_MSK (0x00000001 << TEMP_CTRL_PROTCT_ENABLE_OFST) +#define TEMP_CTRL_OVR_TMP_EVNT_OFST (31) +#define TEMP_CTRL_OVR_TMP_EVNT_MSK (0x00000001 << TEMP_CTRL_OVR_TMP_EVNT_OFST) +#define TEMP_CTRL_CLR_OVR_TMP_EVNT_VAL ((0x1 << TEMP_CTRL_OVR_TMP_EVNT_OFST) & TEMP_CTRL_OVR_TMP_EVNT_MSK) + /* Set Delay 64 bit register */ #define SET_DELAY_LSB_REG (0x60 << 11) @@ -309,6 +340,9 @@ #define SET_EXPTIME_LSB_REG (0x68 << 11) #define SET_EXPTIME_MSB_REG (0x69 << 11) +/* Trigger Delay 32 bit register */ +#define SET_TRIGGER_DELAY_REG (0x70 << 11) + /* Module Coordinates Register 0 */ #define COORD_0 (0x7C << 11) @@ -323,6 +357,14 @@ #define COORD_0_Z_OFST (0) #define COORD_0_Z_MSK (0x0000FFFF << COORD_0_Z_OFST) +/* ASIC Control Register */ +#define ASIC_CTRL_REG (0x7F) + +#define ASIC_CTRL_PRCHRG_TMR_OFST (0) +#define ASIC_CTRL_PRCHRG_TMR_MSK (0x000000FF << ASIC_CTRL_PRCHRG_TMR_OFST) +#define ASIC_CTRL_DS_TMR_OFST (8) +#define ASIC_CTRL_DS_TMR_MSK (0x000000FF << ASIC_CTRL_DS_TMR_OFST) + #endif //REGISTERS_G_H diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt index ae7f83f2c..269c385ab 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt @@ -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: 669033597145b4eae2e94f620a4dd50a2fa50231 -Revision: 95 +Repsitory UUID: 68d6c514a9b9c0f44e53e212f88f29349037c891 +Revision: 96 Branch: jungfrauchanges Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 3331 -Last Changed Date: 2017-12-20 16:57:32.000000002 +0100 ./RegisterDefs.h +Last Changed Rev: 3332 +Last Changed Date: 2018-01-11 08:42:43.000000002 +0100 ./RegisterDefs.h diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h index 5d5676c0a..bc7f1a3cf 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,6 +1,6 @@ #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" -#define GITREPUUID "669033597145b4eae2e94f620a4dd50a2fa50231" +#define GITREPUUID "68d6c514a9b9c0f44e53e212f88f29349037c891" #define GITAUTH "Dhanya_Maliakal" -#define GITREV 0x3331 -#define GITDATE 0x20171220 +#define GITREV 0x3332 +#define GITDATE 0x20180111 #define GITBRANCH "jungfrauchanges" diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index 49b120121..cd8922c75 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -46,7 +46,9 @@ void checkFirmwareCompatibility(int flag) { uint64_t macadd = getDetectorMAC(); int64_t fwversion = getDetectorId(DETECTOR_FIRMWARE_VERSION); int64_t swversion = getDetectorId(DETECTOR_SOFTWARE_VERSION); - //int64_t sw_fw_apiversion = getDetectorId(SOFTWARE_FIRMWARE_API_VERSION); + int64_t sw_fw_apiversion = 0; + if (fwversion >= MIN_REQRD_VRSN_T_RD_API) + sw_fw_apiversion = getDetectorId(SOFTWARE_FIRMWARE_API_VERSION); cprintf(BLUE,"\n\n" "********************************************************\n" "****************** Jungfrau Server *********************\n" @@ -55,46 +57,49 @@ void checkFirmwareCompatibility(int flag) { "Hardware Serial Nr:\t\t 0x%x\n" "Detector IP Addr:\t\t 0x%x\n" - "Detector MAC Addr:\t\t 0x%llx\n" + "Detector MAC Addr:\t\t 0x%llx\n\n" "Firmware Version:\t\t 0x%llx\n" "Software Version:\t\t 0x%llx\n" - //"F/w-S/w API Version:\t\t 0x%llx\n" - //"Required Firmware Version:\t 0x%x\n" + "F/w-S/w API Version:\t\t 0x%llx\n" + "Required Firmware Version:\t 0x%x\n" "\n" "********************************************************\n", hversion, hsnumber, ipadd, macadd, - fwversion, swversion - //, sw_fw_apiversion, REQUIRED_FIRMWARE_VERSION + fwversion, swversion, + sw_fw_apiversion, REQRD_FRMWR_VRSN ); + // return if flag is not zero, debug mode + if (flag) + return; + -/* - * printf("Testing firmware capability... "); //cant read versions + printf("Testing Firmware-software compatibility ...\n"); if(!fwversion || !sw_fw_apiversion){ cprintf(RED,"FATAL ERROR: Cant read versions from FPGA. Please update firmware\n"); cprintf(RED,"Exiting Server. Goodbye!\n\n"); - exit(-1); + exit(EXIT_FAILURE); } //check for API compatibility - old server - if(sw_fw_apiversion > REQUIRED_FIRMWARE_VERSION){ + if(sw_fw_apiversion > REQRD_FRMWR_VRSN){ cprintf(RED,"FATAL ERROR: This software version is incompatible.\n" "Please update it to be compatible with this firmware\n\n"); cprintf(RED,"Exiting Server. Goodbye!\n\n"); - exit(-1); + exit(EXIT_FAILURE); } //check for firmware compatibility - old firmware - if( REQUIRED_FIRMWARE_VERSION > fwversion){ + if( REQRD_FRMWR_VRSN > fwversion){ cprintf(RED,"FATAL ERROR: This firmware version is incompatible.\n" - "Please update it to v%d to be compatible with this server\n\n", REQUIRED_FIRMWARE_VERSION); + "Please update it to v%d to be compatible with this server\n\n", REQRD_FRMWR_VRSN); cprintf(RED,"Exiting Server. Goodbye!\n\n"); - exit(-1); + exit(EXIT_FAILURE); } -*/ + printf("Compatibility - success\n"); } @@ -176,28 +181,26 @@ int64_t getDetectorId(enum idMode arg){ switch(arg){ case DETECTOR_SERIAL_NUMBER: - retval = getDetectorNumber();// or getDetectorMAC() - break; + return getDetectorNumber();// or getDetectorMAC() case DETECTOR_FIRMWARE_VERSION: - retval = getFirmwareVersion(); - break; - //case SOFTWARE_FIRMWARE_API_VERSION: - //return GetFirmwareSoftwareAPIVersion(); + return getFirmwareVersion(); + case SOFTWARE_FIRMWARE_API_VERSION: + return getFirmwareAPIVersion(); case DETECTOR_SOFTWARE_VERSION: - retval= GITREV; - retval= (retval <<32) | GITDATE; - break; + return GITDATE; default: - break; + return retval; } - - return retval; } u_int64_t getFirmwareVersion() { return ((bus_r(FPGA_VERSION_REG) & BOARD_REVISION_MSK) >> BOARD_REVISION_OFST); } +u_int64_t getFirmwareAPIVersion() { + return ((bus_r(API_VERSION_REG) & API_VERSION_MSK) >> API_VERSION_OFST); +} + u_int16_t getHardwareVersionNumber() { return ((bus_r(MOD_SERIAL_NUM_REG) & HARDWARE_VERSION_NUM_MSK) >> HARDWARE_VERSION_NUM_OFST); } @@ -455,33 +458,65 @@ int setSpeed(enum speedVariable arg, int val) { // setting if(val >= 0) { - switch(val){ + // stop state machine if running + if(runBusy()) + stopStateMachine(); - // stop state machine if running - if(runBusy()) - stopStateMachine(); + uint32_t txndelay_msk = 0; + + switch(val){ // todo in firmware, for now setting half speed case FULL_SPEED://40 printf("\nSetting Half Speed (20 MHz):\n"); - printf("Setting Sample Reg to 0x%x\n", SAMPLE_ADC_HALF_SPEED); bus_w(SAMPLE_REG, SAMPLE_ADC_HALF_SPEED); - printf("Setting Config Reg to 0x%x\n", CONFIG_HALF_SPEED); bus_w(CONFIG_REG, CONFIG_HALF_SPEED); - printf("Setting ADC Ofst Reg to 0x%x\n", ADC_OFST_HALF_SPEED_VAL); bus_w(ADC_OFST_REG, ADC_OFST_HALF_SPEED_VAL); - printf("Setting ADC Phase Reg to 0x%x\n", ADC_PHASE_HALF_SPEED); adcPhase(ADC_PHASE_HALF_SPEED); + + printf("Setting Sample Reg to 0x%x\n", SAMPLE_ADC_HALF_SPEED); + bus_w(SAMPLE_REG, SAMPLE_ADC_HALF_SPEED); + + txndelay_msk = (bus_r(CONFIG_REG) & CONFIG_TDMA_TIMESLOT_MSK); // read config tdma timeslot value + printf("Setting Config Reg to 0x%x\n", CONFIG_HALF_SPEED | txndelay_msk); + bus_w(CONFIG_REG, CONFIG_HALF_SPEED | txndelay_msk); + + printf("Setting ADC Ofst Reg to 0x%x\n", ADC_OFST_HALF_SPEED_VAL); + bus_w(ADC_OFST_REG, ADC_OFST_HALF_SPEED_VAL); + + printf("Setting ADC Phase Reg to 0x%x\n", ADC_PHASE_HALF_SPEED); + adcPhase(ADC_PHASE_HALF_SPEED); + break; case HALF_SPEED: printf("\nSetting Half Speed (20 MHz):\n"); - printf("Setting Sample Reg to 0x%x\n", SAMPLE_ADC_HALF_SPEED); bus_w(SAMPLE_REG, SAMPLE_ADC_HALF_SPEED); - printf("Setting Config Reg to 0x%x\n", CONFIG_HALF_SPEED); bus_w(CONFIG_REG, CONFIG_HALF_SPEED); - printf("Setting ADC Ofst Reg to 0x%x\n", ADC_OFST_HALF_SPEED_VAL); bus_w(ADC_OFST_REG, ADC_OFST_HALF_SPEED_VAL); - printf("Setting ADC Phase Reg to 0x%x\n", ADC_PHASE_HALF_SPEED); adcPhase(ADC_PHASE_HALF_SPEED); + + printf("Setting Sample Reg to 0x%x\n", SAMPLE_ADC_HALF_SPEED); + bus_w(SAMPLE_REG, SAMPLE_ADC_HALF_SPEED); + + txndelay_msk = (bus_r(CONFIG_REG) & CONFIG_TDMA_TIMESLOT_MSK); // read config tdma timeslot value + printf("Setting Config Reg to 0x%x\n", CONFIG_HALF_SPEED | txndelay_msk); + bus_w(CONFIG_REG, CONFIG_HALF_SPEED | txndelay_msk); + + printf("Setting ADC Ofst Reg to 0x%x\n", ADC_OFST_HALF_SPEED_VAL); + bus_w(ADC_OFST_REG, ADC_OFST_HALF_SPEED_VAL); + + printf("Setting ADC Phase Reg to 0x%x\n", ADC_PHASE_HALF_SPEED); + adcPhase(ADC_PHASE_HALF_SPEED); + break; case QUARTER_SPEED: printf("\nSetting Half Speed (10 MHz):\n"); - printf("Setting Sample Reg to 0x%x\n", SAMPLE_ADC_QUARTER_SPEED); bus_w(SAMPLE_REG, SAMPLE_ADC_QUARTER_SPEED); - printf("Setting Config Reg to 0x%x\n", CONFIG_QUARTER_SPEED); bus_w(CONFIG_REG, CONFIG_QUARTER_SPEED); - printf("Setting ADC Ofst Reg to 0x%x\n", ADC_OFST_QUARTER_SPEED_VAL); bus_w(ADC_OFST_REG, ADC_OFST_QUARTER_SPEED_VAL); - printf("Setting ADC Phase Reg to 0x%x\n", ADC_PHASE_QUARTER_SPEED); adcPhase(ADC_PHASE_QUARTER_SPEED); + + printf("Setting Sample Reg to 0x%x\n", SAMPLE_ADC_QUARTER_SPEED); + bus_w(SAMPLE_REG, SAMPLE_ADC_QUARTER_SPEED); + + txndelay_msk = (bus_r(CONFIG_REG) & CONFIG_TDMA_TIMESLOT_MSK); // read config tdma timeslot value + printf("Setting Config Reg to 0x%x\n", CONFIG_QUARTER_SPEED | txndelay_msk); + bus_w(CONFIG_REG, CONFIG_QUARTER_SPEED | txndelay_msk); + + printf("Setting ADC Ofst Reg to 0x%x\n", ADC_OFST_QUARTER_SPEED_VAL); + bus_w(ADC_OFST_REG, ADC_OFST_QUARTER_SPEED_VAL); + + printf("Setting ADC Phase Reg to 0x%x\n", ADC_PHASE_QUARTER_SPEED); + adcPhase(ADC_PHASE_QUARTER_SPEED); + break; } printf("\n"); diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h index c54847911..c5830ce0b 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -8,7 +8,8 @@ #define GOODBYE (-200) -//#define REQUIRED_FIRMWARE_VERSION 16 +#define MIN_REQRD_VRSN_T_RD_API 0x171113 +#define REQRD_FRMWR_VRSN 0x171113 /* Struct Definitions */ @@ -92,8 +93,8 @@ enum DACINDEX {VB_COMP, VDD_PROT, VIN_COM, VREF_PRECH, VB_PIXBUF, VB_DS, VREF #define SAMPLE_ADC_HALF_SPEED (SAMPLE_DECMT_FACTOR_2_VAL + SAMPLE_DGTL_SAMPLE_0_VAL + SAMPLE_ADC_DECMT_FACTOR_0_VAL + SAMPLE_ADC_SAMPLE_0_VAL) /* 0x1000 */ #define SAMPLE_ADC_QUARTER_SPEED (SAMPLE_DECMT_FACTOR_4_VAL + SAMPLE_DGTL_SAMPLE_8_VAL + SAMPLE_ADC_DECMT_FACTOR_1_VAL + SAMPLE_ADC_SAMPLE_0_VAL) /* 0x2810 */ -#define CONFIG_HALF_SPEED (CONFIG_TDMA_TIMESLOT_0_VAL + CONFIG_TDMA_DISABLE_VAL + CONFIG_HALF_SPEED_20MHZ_VAL + CONFIG_MODE_1_X_10GBE_VAL) -#define CONFIG_QUARTER_SPEED (CONFIG_TDMA_TIMESLOT_0_VAL + CONFIG_TDMA_DISABLE_VAL + CONFIG_QUARTER_SPEED_10MHZ_VAL + CONFIG_MODE_1_X_10GBE_VAL) +#define CONFIG_HALF_SPEED (CONFIG_TDMA_DISABLE_VAL + CONFIG_HALF_SPEED_20MHZ_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_QUARTER_SPEED_VAL (0x0f) #define ADC_PHASE_HALF_SPEED (0x41) diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h index b0ab9e2c7..e789374d2 100644 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h @@ -35,6 +35,7 @@ u_int64_t getFirmwareVersion(); #ifdef MYTHEND int64_t getModuleId(enum idMode arg, int imod); #elif JUNGFRAUD +u_int64_t getFirmwareAPIVersion(); u_int16_t getHardwareVersionNumber(); u_int16_t getHardwareSerialNumber(); #endif From beabd03be26c17701dbfc184796a15803333d6c5 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 11 Jan 2018 09:24:36 +0100 Subject: [PATCH 03/13] jungfrau server: (also previous commit) date changed to have only 6 nibbles in format yymmdd --- .../jungfrauDetectorServer/slsDetectorFunctionList.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index cd8922c75..5fcc4e26d 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -187,7 +187,7 @@ int64_t getDetectorId(enum idMode arg){ case SOFTWARE_FIRMWARE_API_VERSION: return getFirmwareAPIVersion(); case DETECTOR_SOFTWARE_VERSION: - return GITDATE; + return (GITDATE & 0xFFFFFF); default: return retval; } From 8fc3d97e785fd7c99151fbf237dc5c46b14ef1d1 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 11 Jan 2018 09:26:50 +0100 Subject: [PATCH 04/13] jungfrau server: changed delay to trigger delay to have better trigger being caught --- slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h | 3 ++- .../jungfrauDetectorServer/slsDetectorFunctionList.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h index eb8b81663..1ddb91695 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h @@ -341,7 +341,8 @@ #define SET_EXPTIME_MSB_REG (0x69 << 11) /* Trigger Delay 32 bit register */ -#define SET_TRIGGER_DELAY_REG (0x70 << 11) +#define SET_TRIGGER_DELAY_LSB_REG (0x70 << 11) +#define SET_TRIGGER_DELAY_MSB_REG (0x71 << 11) /* Module Coordinates Register 0 */ #define COORD_0 (0x7C << 11) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index 5fcc4e26d..c043d33bc 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -578,7 +578,7 @@ int64_t setTimer(enum timerIndex ind, int64_t val) { printf("\nSetting delay to %lldns\n", (long long int)val); val *= (1E-3 * CLK_SYNC); } - retval = set64BitReg(val, SET_DELAY_LSB_REG, SET_DELAY_MSB_REG) / (1E-3 * CLK_SYNC); + retval = set64BitReg(val, SET_TRIGGER_DELAY_LSB_REG, SET_TRIGGER_DELAY_MSB_REG) / (1E-3 * CLK_SYNC); printf("Getting delay: %lldns\n", (long long int)retval); break; From d879379aa41091540ece8ac15afffba9a2960188 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 11 Jan 2018 11:33:26 +0100 Subject: [PATCH 05/13] jungfrau server: incorporated transmission delay --- .../slsDetectorFunctionList.c | 18 +++++++++++++++++ .../slsDetectorServer_defs.h | 6 ++++-- .../slsDetectorFunctionList.h | 4 +++- .../slsDetectorServer/slsDetectorServer.c | 6 ++++-- .../slsDetectorServer_funcs.c | 20 ++++++++++++++----- 5 files changed, 44 insertions(+), 10 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index c043d33bc..fe9758c49 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -1146,6 +1146,24 @@ void configurePll() { +int setNetworkParameter(enum NETWORKINDEX mode, int value) { + if (mode != TXN_FRAME) + return -1;\ + + if (value >= 0) { + printf("\nSetting transmission delay: %d\n", value); + bus_w(CONFIG_REG, ((value << CONFIG_TDMA_TIMESLOT_OFST) & CONFIG_TDMA_TIMESLOT_MSK)); +#ifdef VERBOSE + printf("Transmission delay set to %d\n", ((bus_r(CONFIG_REG) & CONFIG_TDMA_TIMESLOT_MSK) >> CONFIG_TDMA_TIMESLOT_OFST)); +#endif + } + + return ((bus_r(CONFIG_REG) & CONFIG_TDMA_TIMESLOT_MSK) >> CONFIG_TDMA_TIMESLOT_OFST); +} + + + + /* aquisition */ diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h index c5830ce0b..351d2a087 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -49,13 +49,14 @@ enum DACINDEX {VB_COMP, VDD_PROT, VIN_COM, VREF_PRECH, VB_PIXBUF, VB_DS, VREF 0x1f00, /* FORCESWITCHG1 */ \ 0x3f00 /* FORCESWITCHG2 */ \ }; -#define DEFAULT_SETT_NAMES { "Dynamic Gain", /* DYNAMICGAIN */ \ +#define DEFAULT_SETT_NAMES { "Dynamic Gain", /* DYNAMICGAIN */ \ "Dynamic High Gain 0", /* DYNAMICHG0 */ \ "Fix Gain 1", /* FIXGAIN1 */ \ "Fix Gain 2", /* FIXGAIN2 */ \ "Force Switch Gain 1", /* FORCESWITCHG1*/ \ "Force Switch Gain 2" /* FORCESWITCHG2*/ \ - }; + }; +enum NETWORKINDEX { TXN_FRAME }; @@ -89,6 +90,7 @@ enum DACINDEX {VB_COMP, VDD_PROT, VIN_COM, VREF_PRECH, VB_PIXBUF, VB_DS, VREF /* Defines in the Firmware */ #define FIX_PATT_VAL (0xACDC2014) #define ADC_PORT_INVERT_VAL (0x453b2a9c) +#define MAX_TIMESLOT_VAL (0x1F) #define SAMPLE_ADC_HALF_SPEED (SAMPLE_DECMT_FACTOR_2_VAL + SAMPLE_DGTL_SAMPLE_0_VAL + SAMPLE_ADC_DECMT_FACTOR_0_VAL + SAMPLE_ADC_SAMPLE_0_VAL) /* 0x1000 */ diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h index e789374d2..149a76dbc 100644 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h @@ -192,7 +192,9 @@ int setAllTrimbits(int val); int getAllTrimbits(); int getBebFPGATemp(); int activate(int enable); -int setNetworkParameter(enum NETWORKINDEX mode, int value); +#endif +#if defined(JUNGFRAUD) || defined(EIGERD) +int setNetworkParameter(enum NETWORKINDEX mode, int value); #endif diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c index 8e1157980..c11201893 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c @@ -83,8 +83,10 @@ int main(int argc, char *argv[]){ printf("function table assigned \n"); #endif - - printf("\nReady...\n\n"); + if (b) + printf("\nControl Server Ready...\n\n"); + else + printf("\nStop Server Ready...\n\n"); /* waits for connection */ while(retval!=GOODBYE) { diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index dcb91b293..4b72e2c26 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -4405,7 +4405,7 @@ int set_network_parameter(int file_des) { int retval=-1; sprintf(mess,"set network parameter failed\n"); -#ifndef EIGERD +#if !defined(EIGERD) && !defined(JUNGFRAUD) //to receive any arguments while (n > 0) n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER); @@ -4426,7 +4426,7 @@ int set_network_parameter(int file_des) { if (n < 0) return printSocketReadError(); // execute action - if (differentClients && lockStatus && value<0) { + if (differentClients && lockStatus && value >= 0) { ret = FAIL; sprintf(mess,"Detector locked by %s\n",lastClientIP); cprintf(RED, "Warning: %s", mess); @@ -4437,17 +4437,27 @@ int set_network_parameter(int file_des) { printf("setting network parameter mode %d to %d\n",(int)mode,value); #endif switch (mode) { + +#ifdef EIGERD + case FLOW_CONTROL_10G: + index = FLOWCTRL_10G; + break; case DETECTOR_TXN_DELAY_LEFT: index = TXN_LEFT; break; case DETECTOR_TXN_DELAY_RIGHT: index = TXN_RIGHT; break; +#endif case DETECTOR_TXN_DELAY_FRAME: index = TXN_FRAME; - break; - case FLOW_CONTROL_10G: - index = FLOWCTRL_10G; +#ifdef JUNGFRAUD + if (value > MAX_TIMESLOT_VAL) { + ret=FAIL; + sprintf(mess,"Transmission delay %d should be in range: 0 - 31\n", value); + cprintf(RED, "Warning: %s", mess); + } +#endif break; default: ret=FAIL; From a87687199f82d0e320fd22a3cfb0fb29cfc353f3 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 11 Jan 2018 11:36:40 +0100 Subject: [PATCH 06/13] jungfrau server: minor typo in previous ocmmit --- .../jungfrauDetectorServer/slsDetectorFunctionList.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index fe9758c49..d8a6fe315 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -1148,7 +1148,7 @@ void configurePll() { int setNetworkParameter(enum NETWORKINDEX mode, int value) { if (mode != TXN_FRAME) - return -1;\ + return -1; if (value >= 0) { printf("\nSetting transmission delay: %d\n", value); From 2d6e4c95a2beba348e9f67341917f16355cd89d4 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 11 Jan 2018 15:37:24 +0100 Subject: [PATCH 07/13] temp_threshold, temp_control, temp_event done --- slsDetectorSoftware/commonFiles/error_defs.h | 5 +- .../commonFiles/sls_detector_funcs.h | 4 + .../jungfrauDetectorServer/RegisterDefs.h | 2 +- .../slsDetectorFunctionList.c | 56 +++++- .../slsDetectorServer_defs.h | 1 + .../multiSlsDetector/multiSlsDetector.cpp | 167 ++++++++++++++++ .../multiSlsDetector/multiSlsDetector.h | 25 +++ .../slsDetector/slsDetector.cpp | 129 ++++++++++++ slsDetectorSoftware/slsDetector/slsDetector.h | 24 +++ .../slsDetector/slsDetectorCommand.cpp | 102 ++++++++++ .../slsDetector/slsDetectorCommand.h | 2 + .../slsDetector/slsDetectorUtils.h | 24 +++ .../slsDetectorFunctionList.h | 3 + .../slsDetectorServer_funcs.c | 183 +++++++++++++++++- .../slsDetectorServer_funcs.h | 4 +- 15 files changed, 725 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 868af8836..c69a53240 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -88,7 +88,7 @@ using namespace std; #define RECEIVER_SUBF_TIME_NOT_SET 0x0000000100000000ULL #define RECEIVER_SILENT_MODE_NOT_SET 0x0000000200000000ULL #define RESTREAM_STOP_FROM_RECEIVER 0x0000000400000000ULL - +#define TEMPERATURE_CONTROL 0x0000000800000000ULL // 0x0000000FFFFFFFFFULL /** @short class returning all error messages for error mask */ @@ -277,7 +277,8 @@ public: if(slsErrorMask&RESTREAM_STOP_FROM_RECEIVER) retval.append("Could not restream stop from receiver.\n"); - + if(slsErrorMask&TEMPERATURE_CONTROL) + retval.append("Could not set/get threshold temperature, temp control or temp event.\n"); diff --git a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h index 12ddb896f..ac0788ff0 100644 --- a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h @@ -112,6 +112,10 @@ enum detFuncs{ F_ACTIVATE, /** < activate */ F_PREPARE_ACQUISITION, /** < prepare acquisition */ F_CLEANUP_ACQUISITION, /** < clean up after acquisition */ + + F_THRESHOLD_TEMP, /** < set threshold temperature */ + F_TEMP_CONTROL, /** < set temperature control */ + F_TEMP_EVENT, /** < set temperature event */ /* Always append functions hereafter!!! */ /* Always append functions before!!! */ diff --git a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h index 1ddb91695..af194bec0 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h @@ -312,7 +312,7 @@ #define TEMP_CTRL_REG (0x5F << 11) #define TEMP_CTRL_PROTCT_THRSHLD_OFST (0) -#define TEMP_CTRL_PROTCT_THRSHLD_MSK (0x000007FF << TEMP_CTRL_PRTCT_THRSHLD_OFST) +#define TEMP_CTRL_PROTCT_THRSHLD_MSK (0x000007FF << TEMP_CTRL_PROTCT_THRSHLD_OFST) #define TEMP_CTRL_PROTCT_ENABLE_OFST (16) #define TEMP_CTRL_PROTCT_ENABLE_MSK (0x00000001 << TEMP_CTRL_PROTCT_ENABLE_OFST) #define TEMP_CTRL_OVR_TMP_EVNT_OFST (31) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index d8a6fe315..f687c1054 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -1146,13 +1146,67 @@ void configurePll() { +int setThresholdTemperature(int val) { + if (val >= 0) { + printf("\nThreshold Temperature: %d\n", val); + + val *= (10.0/625.0); +#ifdef VERBOSE + printf("Converted Threshold Temperature: %d\n", val); +#endif + + bus_w(TEMP_CTRL_REG, bus_r(TEMP_CTRL_REG) | (((val << TEMP_CTRL_PROTCT_THRSHLD_OFST) & TEMP_CTRL_PROTCT_THRSHLD_MSK))); +#ifdef VERBOSE + printf("Converted Threshold Temperature set to %d\n", ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_PROTCT_THRSHLD_MSK) >> TEMP_CTRL_PROTCT_THRSHLD_OFST)); +#endif + } + uint32_t temp = ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_PROTCT_THRSHLD_MSK) >> TEMP_CTRL_PROTCT_THRSHLD_OFST); + + // conversion + temp *= (625.0/10.0); + printf("Threshold Temperature %f °C\n",(double)temp/1000.00); + + return temp; + +} + + +int setTemperatureControl(int val) { + if (val >= 0) { + // binary value + if (val > 0 ) val = 1; + printf("\nTemperature control: %d\n", val); + bus_w(TEMP_CTRL_REG, bus_r(TEMP_CTRL_REG) | (((val << TEMP_CTRL_PROTCT_ENABLE_OFST) & TEMP_CTRL_PROTCT_ENABLE_MSK))); +#ifdef VERBOSE + printf("Temperature control set to %d\n", ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_PROTCT_ENABLE_MSK) >> TEMP_CTRL_PROTCT_ENABLE_OFST)); +#endif + } + return ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_PROTCT_ENABLE_MSK) >> TEMP_CTRL_PROTCT_ENABLE_OFST); +} + + +int setTemperatureEvent(int val) { + if (val >= 0) { + // set bit to clear it + val = 1; + printf("\nTemperature Event: %d\n", val); + bus_w(TEMP_CTRL_REG, bus_r(TEMP_CTRL_REG) | (((val << TEMP_CTRL_OVR_TMP_EVNT_OFST) & TEMP_CTRL_OVR_TMP_EVNT_MSK))); +#ifdef VERBOSE + printf("Temperature Event set to %d\n", ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_OVR_TMP_EVNT_MSK) >> TEMP_CTRL_OVR_TMP_EVNT_OFST)); +#endif + } + return ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_OVR_TMP_EVNT_MSK) >> TEMP_CTRL_OVR_TMP_EVNT_OFST); +} + + + int setNetworkParameter(enum NETWORKINDEX mode, int value) { if (mode != TXN_FRAME) return -1; if (value >= 0) { printf("\nSetting transmission delay: %d\n", value); - bus_w(CONFIG_REG, ((value << CONFIG_TDMA_TIMESLOT_OFST) & CONFIG_TDMA_TIMESLOT_MSK)); + bus_w(CONFIG_REG, bus_r(CONFIG_REG) | (((value << CONFIG_TDMA_TIMESLOT_OFST) & CONFIG_TDMA_TIMESLOT_MSK))); #ifdef VERBOSE printf("Transmission delay set to %d\n", ((bus_r(CONFIG_REG) & CONFIG_TDMA_TIMESLOT_MSK) >> CONFIG_TDMA_TIMESLOT_OFST)); #endif diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h index 351d2a087..b2710e94e 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -91,6 +91,7 @@ enum NETWORKINDEX { TXN_FRAME }; #define FIX_PATT_VAL (0xACDC2014) #define ADC_PORT_INVERT_VAL (0x453b2a9c) #define MAX_TIMESLOT_VAL (0x1F) +#define MAX_THRESHOLD_TEMP_VAL (127999) //millidegrees #define SAMPLE_ADC_HALF_SPEED (SAMPLE_DECMT_FACTOR_2_VAL + SAMPLE_DGTL_SAMPLE_0_VAL + SAMPLE_ADC_DECMT_FACTOR_0_VAL + SAMPLE_ADC_SAMPLE_0_VAL) /* 0x1000 */ diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 3efd7be43..fa36a98db 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -3331,6 +3331,173 @@ dacs_t multiSlsDetector::getADC(dacIndex idac, int imod) { return ret; } + + +int multiSlsDetector::setThresholdTemperature(int val, int imod) { + int ret = -100; + + // single + { + int id=-1, im=-1; + if (decodeNMod(imod, id, im)>=0) { + if(detectors[id]){ + ret = detectors[id]->setThresholdTemperature(val, im); + if(detectors[id]->getErrorMask()) + setErrorMask(getErrorMask()|(1<numberOfDetectors; + int* iret[posmax-posmin]; + + for(int idet=posmin; idet(&slsDetector::setThresholdTemperature, + detectors[idet], val, imod, iret[idet])); + threadpool->add_task(task); + } + } + threadpool->startExecuting(); + threadpool->wait_for_tasks_to_complete(); + for(int idet=posmin; idetgetErrorMask()) + setErrorMask(getErrorMask()|(1<=0) { + if(detectors[id]){ + ret = detectors[id]->setTemperatureControl(val, im); + if(detectors[id]->getErrorMask()) + setErrorMask(getErrorMask()|(1<numberOfDetectors; + int* iret[posmax-posmin]; + + for(int idet=posmin; idet(&slsDetector::setTemperatureControl, + detectors[idet], val, imod, iret[idet])); + threadpool->add_task(task); + } + } + threadpool->startExecuting(); + threadpool->wait_for_tasks_to_complete(); + for(int idet=posmin; idetgetErrorMask()) + setErrorMask(getErrorMask()|(1<=0) { + if(detectors[id]){ + ret = detectors[id]->setTemperatureEvent(val, im); + if(detectors[id]->getErrorMask()) + setErrorMask(getErrorMask()|(1<numberOfDetectors; + int* iret[posmax-posmin]; + + for(int idet=posmin; idet(&slsDetector::setTemperatureEvent, + detectors[idet], val, imod, iret[idet])); + threadpool->add_task(task); + } + } + threadpool->startExecuting(); + threadpool->wait_for_tasks_to_complete(); + for(int idet=posmin; idetgetErrorMask()) + setErrorMask(getErrorMask()|(1<onlineFlag==ONLINE_FLAG) { + if (connectStop() == OK){ + stopSocket->SendDataOnly(&fnum,sizeof(fnum)); + stopSocket->SendDataOnly(arg,sizeof(arg)); + stopSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret!=FAIL) { + stopSocket->ReceiveDataOnly(&retval,sizeof(retval)); +#ifdef VERBOSE + std::cout<< "Threshold Temperature returned "<< retval << std::endl; +#endif + } else { + stopSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(TEMPERATURE_CONTROL)); + } + disconnectStop(); + if (ret==FORCE_UPDATE) + updateDetector(); + } + } + + return retval; +} + + + +int slsDetector::setTemperatureControl(int val, int imod) { + + int retval = -1; + int fnum = F_TEMP_CONTROL; + int ret = FAIL; + char mess[MAX_STR_LENGTH] = ""; + + int arg[2]; + arg[0]=val; + arg[1]=imod; + + +#ifdef VERBOSE + std::cout<< std::endl; + std::cout<< "Setting/Getting Threshold Temperature to "<< val << " of module " << imod << std::endl; +#endif + if (thisDetector->onlineFlag==ONLINE_FLAG) { + if (connectStop() == OK){ + stopSocket->SendDataOnly(&fnum,sizeof(fnum)); + stopSocket->SendDataOnly(arg,sizeof(arg)); + stopSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret!=FAIL) { + stopSocket->ReceiveDataOnly(&retval,sizeof(retval)); +#ifdef VERBOSE + std::cout<< "Threshold Temperature returned "<< retval << std::endl; +#endif + } else { + stopSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(TEMPERATURE_CONTROL)); + } + disconnectStop(); + if (ret==FORCE_UPDATE) + updateDetector(); + } + } + + return retval; +} + + + + +int slsDetector::setTemperatureEvent(int val, int imod) { + + int retval = -1; + int fnum = F_TEMP_EVENT; + int ret = FAIL; + char mess[MAX_STR_LENGTH] = ""; + + int arg[2]; + arg[0]=val; + arg[1]=imod; + + +#ifdef VERBOSE + std::cout<< std::endl; + std::cout<< "Setting/Getting Threshold Temperature to "<< val << " of module " << imod << std::endl; +#endif + if (thisDetector->onlineFlag==ONLINE_FLAG) { + if (connectStop() == OK){ + stopSocket->SendDataOnly(&fnum,sizeof(fnum)); + stopSocket->SendDataOnly(arg,sizeof(arg)); + stopSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret!=FAIL) { + stopSocket->ReceiveDataOnly(&retval,sizeof(retval)); +#ifdef VERBOSE + std::cout<< "Threshold Temperature returned "<< retval << std::endl; +#endif + } else { + stopSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(TEMPERATURE_CONTROL)); + } + disconnectStop(); + if (ret==FORCE_UPDATE) + updateDetector(); + } + } + + return retval; +} + + /* configure single channel enum channelRegisterBit { diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 347afd3c4..0561b5664 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -916,7 +916,31 @@ class slsDetector : public slsDetectorUtils, public energyConversion { \returns current ADC value (temperature for eiger and jungfrau in millidegrees) */ dacs_t getADC(dacIndex index, int imod=0); + + /** + set/gets threshold temperature (Jungfrau only) + \param val value in millidegrees, -1 gets + \param imod module number, -1 is all + \returns threshold temperature in millidegrees + */ + int setThresholdTemperature(int val=-1, int imod=-1); + /** + enables/disables temperature control (Jungfrau only) + \param val value, -1 gets + \param imod module number, -1 is all + \returns temperature control enable + */ + int setTemperatureControl(int val=-1, int imod=-1); + + /** + Resets/ gets over-temperature event (Jungfrau only) + \param val value, -1 gets + \param imod module number, -1 is all + \returns over-temperature event + */ + int setTemperatureEvent(int val=-1, int imod=-1); + /** configure channel \param reg channel register diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 6e3a63ada..6d69b8f23 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -958,6 +958,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { - \ref settingssett "Settings and Threshold": commands to configure settings and threshold of detector - \ref settingsdacs "DACs": commands to configure DACs of detector - \ref settingsadcs "ADCs": commands to readout ADCs of detector + - \ref settingstmp "Temp Control": commands to monitor and handle temperature overshoot (only JUNGFRAU) */ /* trim/cal directories */ @@ -1562,6 +1563,33 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { + /* temperature control */ + /*! \page settings + \section settingsadcs Temp Control + commands to monitor and handle temperature overshoot (only JUNGFRAU) + */ + + /*! \page settings + - temp_threshold Sets/gets the threshold temperature. JUNGFRAU ONLY. \c Returns \c (double"°C") + */ + descrToFuncMap[i].m_pFuncName="temp_threshold"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdTempControl; + ++i; + + /*! \page settings + - temp_control Enables/Disables the temperature control. 1 enables, 0 disables. JUNGFRAU ONLY. \c Returns \c int + */ + descrToFuncMap[i].m_pFuncName="temp_control"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdTempControl; + ++i; + + /*! \page settings + - temp_event Resets/gets over-temperative event. Put only with option 0 to clear event. Gets 1 if temperature went over threshold and control is enabled, else 0. /Disables the temperature control. JUNGFRAU ONLY. \c Returns \c int + */ + descrToFuncMap[i].m_pFuncName="temp_event"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdTempControl; + ++i; + /* file name */ @@ -5287,6 +5315,80 @@ string slsDetectorCommand::helpADC(int narg, char *args[], int action) { return os.str(); } + + + +string slsDetectorCommand::cmdTempControl(int narg, char *args[], int action) { + char answer[1000]=""; + int val = -1; + + if (action==HELP_ACTION) + return helpTempControl(narg, args, action); + + myDet->setOnline(ONLINE_FLAG); + + if (cmd == "temp_threshold") { + if (action==PUT_ACTION) { + double fval=0.0; + if (!sscanf(args[1],"%lf", &fval)) + return string("cannot scan temp control value ")+string(args[1]); + val = fval * 1000; + myDet->setThresholdTemperature(val); + } + val = myDet->setThresholdTemperature(); + if (val == -1) + sprintf(answer,"%d",val); + else + sprintf(answer,"%.2f°C", (double)val/1000.000); + } + + else if (cmd == "temp_control") { + if (action==PUT_ACTION) { + if (!sscanf(args[1],"%d", &val)) + return string("cannot scan temp control value ")+string(args[1]); + if ((val!=0) && (val!=1)) + return string ("temp_control option must be 0 or 1"); + myDet->setTemperatureControl(val); + } + sprintf(answer,"%d", myDet->setTemperatureControl()); + } + + else if (cmd == "temp_event") { + if (action==PUT_ACTION) { + if (!sscanf(args[1],"%d", &val)) + return string("cannot scan temp control value ")+string(args[1]); + if (val!=0) + return string ("temp_event option must be 0 to clear event"); + myDet->setTemperatureEvent(val); + } + sprintf(answer,"%d", myDet->setTemperatureEvent()); + } + + else + return string ("cannot scan command " + cmd); + + return string(answer); +} + + + +string slsDetectorCommand::helpTempControl(int narg, char *args[], int action) { + ostringstream os; + if (action==PUT_ACTION || action==HELP_ACTION) { + os << "temp_threshold t \t sets the threshold temperature. Jungfrau only" << std::endl; + os << "temp_control t \t Enables/Disables the temperature control. 1 enables, 0 disables. JUNGFRAU ONLY" << std::endl; + os << "temp_event t \t Resets over-temperative event. Put only with option 0 to clear event. JUNGFRAU ONLY." << std::endl; + } + if (action==GET_ACTION || action==HELP_ACTION) { + os << "temp_threshold \t gets the threshold temperature. Jungfrau only." << std::endl; + os << "temp_control \t gets temperature control enable. 1 enabled, 0 disabled. JUNGFRAU ONLY" << std::endl; + os << "temp_event \t gets over-temperative event. Gets 1 if temperature went over threshold and control is enabled, else 0. /Disables the temperature control. JUNGFRAU ONLY." << std::endl; + } + return os.str(); +} + + + string slsDetectorCommand::cmdTiming(int narg, char *args[], int action){ #ifdef VERBOSE cout << string("Executing command ")+string(args[0])+string(" ( ")+cmd+string(" )\n"); diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.h b/slsDetectorSoftware/slsDetector/slsDetectorCommand.h index dd8b4c73c..0c69ac923 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.h @@ -82,6 +82,7 @@ class slsDetectorCommand : public virtual slsDetectorDefs { static string helpImage(int narg, char *args[], int action); static string helpCounter(int narg, char *args[], int action); static string helpADC(int narg, char *args[], int action); + static string helpTempControl(int narg, char *args[], int action); static string helpEnablefwrite(int narg, char *args[], int action); static string helpOverwrite(int narg, char *args[], int action); static string helpReceiver(int narg, char *args[], int action); @@ -155,6 +156,7 @@ class slsDetectorCommand : public virtual slsDetectorDefs { string cmdImage(int narg, char *args[], int action); string cmdCounter(int narg, char *args[], int action); string cmdADC(int narg, char *args[], int action); + string cmdTempControl(int narg, char *args[], int action); string cmdEnablefwrite(int narg, char *args[], int action); string cmdOverwrite(int narg, char *args[], int action); string cmdReceiver(int narg, char *args[], int action); diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index c5705c72d..9e20d7ac6 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -618,6 +618,30 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing { */ virtual dacs_t getADC(dacIndex index, int imod=-1)=0; + /** + set/gets threshold temperature (Jungfrau only) + \param val value in millidegrees, -1 gets + \param imod module number, -1 is all + \returns threshold temperature in millidegrees + */ + virtual int setThresholdTemperature(int val=-1, int imod=-1)=0; + + /** + enables/disables temperature control (Jungfrau only) + \param val value, -1 gets + \param imod module number, -1 is all + \returns temperature control enable + */ + virtual int setTemperatureControl(int val=-1, int imod=-1)=0; + + /** + Resets/ gets over-temperature event (Jungfrau only) + \param val value, -1 gets + \param imod module number, -1 is all + \returns over-temperature event + */ + virtual int setTemperatureEvent(int val=-1, int imod=-1)=0; + /** get the maximum size of the detector \param d dimension diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h index 149a76dbc..9f6e9e7f2 100644 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h @@ -169,6 +169,9 @@ int calibratePedestal(int frames); void resetPLL(); u_int32_t setPllReconfigReg(u_int32_t reg, u_int32_t val); void configurePll(); +int setThresholdTemperature(int val); +int setTemperatureControl(int val); +int setTemperatureEvent(int val); extern void eraseFlash(); // programfpga.h extern int startWritingFPGAprogram(FILE** filefp); // programfpga.h extern void stopWritingFPGAprogram(FILE* filefp); // programfpga.h diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 4b72e2c26..9912c7afa 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -181,6 +181,10 @@ const char* getFunctionName(enum detFuncs func) { case F_ACTIVATE: return "F_ACTIVATE"; case F_PREPARE_ACQUISITION: return "F_PREPARE_ACQUISITION"; case F_CLEANUP_ACQUISITION: return "F_CLEANUP_ACQUISITION"; + case F_THRESHOLD_TEMP: return "F_THRESHOLD_TEMP"; + case F_TEMP_CONTROL: return "F_TEMP_CONTROL"; + case F_TEMP_EVENT: return "F_TEMP_EVENT"; + default: return "Unknown Function"; } } @@ -259,6 +263,9 @@ void function_table() { flist[F_ACTIVATE] = &set_activate; flist[F_PREPARE_ACQUISITION] = &prepare_acquisition; flist[F_CLEANUP_ACQUISITION] = &cleanup_acquisition; + flist[F_THRESHOLD_TEMP] = &threshold_temp; + flist[F_TEMP_CONTROL] = &temp_control; + flist[F_TEMP_EVENT] = &temp_event; // check if (NUM_DET_FUNCTIONS >= TOO_MANY_FUNCTIONS_DEFINED) { @@ -4454,7 +4461,7 @@ int set_network_parameter(int file_des) { #ifdef JUNGFRAUD if (value > MAX_TIMESLOT_VAL) { ret=FAIL; - sprintf(mess,"Transmission delay %d should be in range: 0 - 31\n", value); + sprintf(mess,"Transmission delay %d should be in range: 0 - %d\n", value, MAX_TIMESLOT_VAL); cprintf(RED, "Warning: %s", mess); } #endif @@ -4902,3 +4909,177 @@ int cleanup_acquisition(int file_des) { } + + +int threshold_temp(int file_des) { + int ret=OK,ret1=OK; + int n=0; + int arg[2]={-1,-1}; + int val=-1; + int retval=-1; + sprintf(mess,"could not set/get threshold temperature\n"); + +#ifndef JUNGFRAUD + //to receive any arguments + while (n > 0) + n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER); + ret = FAIL; + sprintf(mess,"Function (Threshold Temp) is not implemented for this detector\n"); + cprintf(RED, "%s", mess); +#else + // receive arguments + n = receiveData(file_des,arg,sizeof(arg),INT32); + if (n < 0) return printSocketReadError(); + val=arg[0]; + //ignoring imod + if (val > MAX_THRESHOLD_TEMP_VAL) { + ret=FAIL; + sprintf(mess,"Threshold Temp %d should be in range: 0 - %d\n", val, MAX_THRESHOLD_TEMP_VAL); + cprintf(RED, "Warning: %s", mess); + } +#endif + + +#ifdef SLS_DETECTOR_FUNCTION_LIST + if (ret==OK) { +#ifdef VERBOSE + printf("Setting Threshold Temperature to %d\n", val); +#endif + retval=setThresholdTemperature(val); + } +#endif +#ifdef VERBOSE + printf("Threshold temperature is %d\n", retval); +#endif + + if (ret==OK && differentClients && val >= 0) + ret=FORCE_UPDATE; + + // ret could be swapped during sendData + ret1 = ret; + // send ok / fail + n = sendData(file_des,&ret1,sizeof(ret),INT32); + // send return argument + if (ret!=FAIL) { + n += sendData(file_des,&retval,sizeof(retval),INT32); + } else { + n += sendData(file_des,mess,sizeof(mess),OTHER); + } + + // return ok / fail + return ret; +} + + + +int temp_control(int file_des) { + int ret=OK,ret1=OK; + int n=0; + int arg[2]={-1,-1}; + int val=-1; + int retval=-1; + sprintf(mess,"could not set/get temperature control\n"); + +#ifndef JUNGFRAUD + //to receive any arguments + while (n > 0) + n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER); + ret = FAIL; + sprintf(mess,"Function (Temperature control) is not implemented for this detector\n"); + cprintf(RED, "%s", mess); +#else + // receive arguments + n = receiveData(file_des,arg,sizeof(arg),INT32); + if (n < 0) return printSocketReadError(); + val=arg[0]; + //ignoring imod +#endif + + +#ifdef SLS_DETECTOR_FUNCTION_LIST + if (ret==OK) { +#ifdef VERBOSE + printf("Setting Temperature control to %d\n", val); +#endif + retval=setTemperatureControl(val); + } +#endif +#ifdef VERBOSE + printf("Temperature control is %d\n", retval); +#endif + + if (ret==OK && differentClients && val >= 0) + ret=FORCE_UPDATE; + + // ret could be swapped during sendData + ret1 = ret; + // send ok / fail + n = sendData(file_des,&ret1,sizeof(ret),INT32); + // send return argument + if (ret!=FAIL) { + n += sendData(file_des,&retval,sizeof(retval),INT32); + } else { + n += sendData(file_des,mess,sizeof(mess),OTHER); + } + + // return ok / fail + return ret; +} + + + + +int temp_event(int file_des) { + int ret=OK,ret1=OK; + int n=0; + int arg[2]={-1,-1}; + int val=-1; + int retval=-1; + sprintf(mess,"could not set/get temperature event\n"); + +#ifndef JUNGFRAUD + //to receive any arguments + while (n > 0) + n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER); + ret = FAIL; + sprintf(mess,"Function (Temperature Event) is not implemented for this detector\n"); + cprintf(RED, "%s", mess); +#else + // receive arguments + n = receiveData(file_des,arg,sizeof(arg),INT32); + if (n < 0) return printSocketReadError(); + val=arg[0]; + //ignoring imod +#endif + + +#ifdef SLS_DETECTOR_FUNCTION_LIST + if (ret==OK) { +#ifdef VERBOSE + printf("Setting Temperature Event to %d\n", val); +#endif + retval=setTemperatureEvent(val); + } +#endif +#ifdef VERBOSE + printf("Temperature Event is %d\n", retval); +#endif + + if (ret==OK && differentClients && val >= 0) + ret=FORCE_UPDATE; + + // ret could be swapped during sendData + ret1 = ret; + // send ok / fail + n = sendData(file_des,&ret1,sizeof(ret),INT32); + // send return argument + if (ret!=FAIL) { + n += sendData(file_des,&retval,sizeof(retval),INT32); + } else { + n += sendData(file_des,mess,sizeof(mess),OTHER); + } + + // return ok / fail + return ret; +} + diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h index e98feb57f..4e4084020 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h @@ -88,6 +88,8 @@ int power_chip(int); int set_activate(int); int prepare_acquisition(int); int cleanup_acquisition(int); - +int threshold_temp(int); +int temp_control(int); +int temp_event(int); #endif From 061abf7be08974d6da1a91815b7bdfa4e4550340 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 11 Jan 2018 16:52:08 +0100 Subject: [PATCH 08/13] jungfrau server: changes to ensure no update of detector during this, included power chip to read the status bit and give error if temp event is up --- .../slsDetectorFunctionList.c | 16 ++++++++++------ slsDetectorSoftware/slsDetector/slsDetector.cpp | 6 ------ .../slsDetectorServer/slsDetectorServer_funcs.c | 5 ++++- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index f687c1054..9e8e94146 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -383,7 +383,7 @@ int powerChip (int on){ bus_w(CHIP_POWER_REG, bus_r(CHIP_POWER_REG) & ~CHIP_POWER_ENABLE_MSK); } } - return bus_r(CHIP_POWER_REG); + return (bus_r(CHIP_POWER_REG & CHIP_POWER_STATUS_MSK) >> CHIP_POWER_STATUS_OFST); } void cleanFifos() { @@ -1147,6 +1147,7 @@ void configurePll() { int setThresholdTemperature(int val) { + if (val >= 0) { printf("\nThreshold Temperature: %d\n", val); @@ -1154,8 +1155,8 @@ int setThresholdTemperature(int val) { #ifdef VERBOSE printf("Converted Threshold Temperature: %d\n", val); #endif - - bus_w(TEMP_CTRL_REG, bus_r(TEMP_CTRL_REG) | (((val << TEMP_CTRL_PROTCT_THRSHLD_OFST) & TEMP_CTRL_PROTCT_THRSHLD_MSK))); + bus_w(TEMP_CTRL_REG, (bus_r(TEMP_CTRL_REG) &~(TEMP_CTRL_PROTCT_THRSHLD_MSK) &~(TEMP_CTRL_OVR_TMP_EVNT_MSK)) + | (((val << TEMP_CTRL_PROTCT_THRSHLD_OFST) & TEMP_CTRL_PROTCT_THRSHLD_MSK))); #ifdef VERBOSE printf("Converted Threshold Temperature set to %d\n", ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_PROTCT_THRSHLD_MSK) >> TEMP_CTRL_PROTCT_THRSHLD_OFST)); #endif @@ -1176,7 +1177,8 @@ int setTemperatureControl(int val) { // binary value if (val > 0 ) val = 1; printf("\nTemperature control: %d\n", val); - bus_w(TEMP_CTRL_REG, bus_r(TEMP_CTRL_REG) | (((val << TEMP_CTRL_PROTCT_ENABLE_OFST) & TEMP_CTRL_PROTCT_ENABLE_MSK))); + bus_w(TEMP_CTRL_REG, (bus_r(TEMP_CTRL_REG) &~(TEMP_CTRL_PROTCT_ENABLE_MSK) &~(TEMP_CTRL_OVR_TMP_EVNT_MSK)) + | (((val << TEMP_CTRL_PROTCT_ENABLE_OFST) & TEMP_CTRL_PROTCT_ENABLE_MSK))); #ifdef VERBOSE printf("Temperature control set to %d\n", ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_PROTCT_ENABLE_MSK) >> TEMP_CTRL_PROTCT_ENABLE_OFST)); #endif @@ -1190,7 +1192,8 @@ int setTemperatureEvent(int val) { // set bit to clear it val = 1; printf("\nTemperature Event: %d\n", val); - bus_w(TEMP_CTRL_REG, bus_r(TEMP_CTRL_REG) | (((val << TEMP_CTRL_OVR_TMP_EVNT_OFST) & TEMP_CTRL_OVR_TMP_EVNT_MSK))); + bus_w(TEMP_CTRL_REG, (bus_r(TEMP_CTRL_REG) &~TEMP_CTRL_OVR_TMP_EVNT_MSK) + | (((val << TEMP_CTRL_OVR_TMP_EVNT_OFST) & TEMP_CTRL_OVR_TMP_EVNT_MSK))); #ifdef VERBOSE printf("Temperature Event set to %d\n", ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_OVR_TMP_EVNT_MSK) >> TEMP_CTRL_OVR_TMP_EVNT_OFST)); #endif @@ -1206,7 +1209,8 @@ int setNetworkParameter(enum NETWORKINDEX mode, int value) { if (value >= 0) { printf("\nSetting transmission delay: %d\n", value); - bus_w(CONFIG_REG, bus_r(CONFIG_REG) | (((value << CONFIG_TDMA_TIMESLOT_OFST) & CONFIG_TDMA_TIMESLOT_MSK))); + bus_w(CONFIG_REG, (bus_r(CONFIG_REG) &~CONFIG_TDMA_TIMESLOT_MSK) + | (((value << CONFIG_TDMA_TIMESLOT_OFST) & CONFIG_TDMA_TIMESLOT_MSK))); #ifdef VERBOSE printf("Transmission delay set to %d\n", ((bus_r(CONFIG_REG) & CONFIG_TDMA_TIMESLOT_MSK) >> CONFIG_TDMA_TIMESLOT_OFST)); #endif diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 28d3bcc23..3e44902cd 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -2641,8 +2641,6 @@ int slsDetector::setThresholdTemperature(int val, int imod) { setErrorMask((getErrorMask())|(TEMPERATURE_CONTROL)); } disconnectStop(); - if (ret==FORCE_UPDATE) - updateDetector(); } } @@ -2683,8 +2681,6 @@ int slsDetector::setTemperatureControl(int val, int imod) { setErrorMask((getErrorMask())|(TEMPERATURE_CONTROL)); } disconnectStop(); - if (ret==FORCE_UPDATE) - updateDetector(); } } @@ -2726,8 +2722,6 @@ int slsDetector::setTemperatureEvent(int val, int imod) { setErrorMask((getErrorMask())|(TEMPERATURE_CONTROL)); } disconnectStop(); - if (ret==FORCE_UPDATE) - updateDetector(); } } diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 9912c7afa..617343135 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -4733,7 +4733,10 @@ int power_chip(int file_des) { ret=OK; } else { ret=FAIL; - sprintf(mess,"Powering chip failed, wrote %d but read %d\n", arg, retval); + if(setTemperatureEvent(-1) == 1) + sprintf(mess,"Powering chip failed due to over-temperature event. Clear event & power chip again.\n", arg, retval); + else + sprintf(mess,"Powering chip failed, wrote %d but read %d\n", arg, retval); cprintf(RED, "Warning: %s", mess); } } From e6f475d7c4393caa36da19f78a30f0e6418c1728 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 2 Feb 2018 12:37:52 +0100 Subject: [PATCH 09/13] jungfrau server changes in temperature control for fpga bug: default temp threshold and temp event cleared at start and power reg only reads enable and not status --- .../jungfrauDetectorServer/gitInfo.txt | 10 +++++----- .../jungfrauDetectorServer/gitInfoJungfrau.h | 8 ++++---- .../jungfrauDetectorServer/slsDetectorFunctionList.c | 11 ++++++++++- .../jungfrauDetectorServer/slsDetectorServer_defs.h | 1 + 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt index 269c385ab..1a59c8d73 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt @@ -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: 68d6c514a9b9c0f44e53e212f88f29349037c891 -Revision: 96 -Branch: jungfrauchanges +Repsitory UUID: aebc423fb2907635588f8e1b8a70a0eb6f5b5a6f +Revision: 103 +Branch: 3.0.1 Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 3332 -Last Changed Date: 2018-01-11 08:42:43.000000002 +0100 ./RegisterDefs.h +Last Changed Rev: 3341 +Last Changed Date: 2018-02-02 10:48:32.000000002 +0100 ./RegisterDefs.h diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h index bc7f1a3cf..028a9884a 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,6 +1,6 @@ #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" -#define GITREPUUID "68d6c514a9b9c0f44e53e212f88f29349037c891" +#define GITREPUUID "aebc423fb2907635588f8e1b8a70a0eb6f5b5a6f" #define GITAUTH "Dhanya_Maliakal" -#define GITREV 0x3332 -#define GITDATE 0x20180111 -#define GITBRANCH "jungfrauchanges" +#define GITREV 0x3341 +#define GITDATE 0x20180202 +#define GITBRANCH "3.0.1" diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index 9e8e94146..b44c89f2c 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -362,6 +362,12 @@ void setupDetector() { /*setSpeed(CLOCK_DIVIDER, HALF_SPEED); depends if all the previous stuff works*/ setTiming(DEFAULT_TIMING_MODE); setHighVoltage(DEFAULT_HIGH_VOLTAGE); + + /* temporary set up until new firmware fixes bug */ + // set temperature threshold + setThresholdTemperature(DEFAULT_TMP_THRSHLD); + // reset temp event + setTemperatureEvent(0); } @@ -383,7 +389,10 @@ int powerChip (int on){ bus_w(CHIP_POWER_REG, bus_r(CHIP_POWER_REG) & ~CHIP_POWER_ENABLE_MSK); } } - return (bus_r(CHIP_POWER_REG & CHIP_POWER_STATUS_MSK) >> CHIP_POWER_STATUS_OFST); + + return (bus_r(CHIP_POWER_REG & CHIP_POWER_ENABLE_MSK) >> CHIP_POWER_ENABLE_OFST); + /* temporary setup until new firmware fixes bug */ + //return (bus_r(CHIP_POWER_REG & CHIP_POWER_STATUS_MSK) >> CHIP_POWER_STATUS_OFST); } void cleanFifos() { diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h index b2710e94e..7d818ae51 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -86,6 +86,7 @@ enum NETWORKINDEX { TXN_FRAME }; #define DEFAULT_TIMING_MODE (AUTO_TIMING) #define DEFAULT_SETTINGS (DYNAMICGAIN) #define DEFAULT_TX_UDP_PORT (0x7e9a) +#define DEFAULT_TMP_THRSHLD (65) //degree Celsius /* Defines in the Firmware */ #define FIX_PATT_VAL (0xACDC2014) From 1872deb1dd968661454eb967210227a9f98e1b71 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 2 Feb 2018 15:17:40 +0100 Subject: [PATCH 10/13] fix for temperature workaround for fpga --- .../jungfrauDetectorServer/slsDetectorFunctionList.c | 4 ++-- .../jungfrauDetectorServer/slsDetectorServer_defs.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index b44c89f2c..164ae5f71 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -390,9 +390,9 @@ int powerChip (int on){ } } - return (bus_r(CHIP_POWER_REG & CHIP_POWER_ENABLE_MSK) >> CHIP_POWER_ENABLE_OFST); + return ((bus_r(CHIP_POWER_REG) & CHIP_POWER_ENABLE_MSK) >> CHIP_POWER_ENABLE_OFST); /* temporary setup until new firmware fixes bug */ - //return (bus_r(CHIP_POWER_REG & CHIP_POWER_STATUS_MSK) >> CHIP_POWER_STATUS_OFST); + //return ((bus_r(CHIP_POWER_REG) & CHIP_POWER_STATUS_MSK) >> CHIP_POWER_STATUS_OFST); } void cleanFifos() { diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h index 7d818ae51..c3002121e 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -86,7 +86,7 @@ enum NETWORKINDEX { TXN_FRAME }; #define DEFAULT_TIMING_MODE (AUTO_TIMING) #define DEFAULT_SETTINGS (DYNAMICGAIN) #define DEFAULT_TX_UDP_PORT (0x7e9a) -#define DEFAULT_TMP_THRSHLD (65) //degree Celsius +#define DEFAULT_TMP_THRSHLD (65*1000) //milli degree Celsius /* Defines in the Firmware */ #define FIX_PATT_VAL (0xACDC2014) From c520f104098d7f2bb69ba298a8c7be5787e099d8 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 2 Feb 2018 15:19:10 +0100 Subject: [PATCH 11/13] jungfrau server binaries --- .../bin/jungfrauDetectorServerv3.0.0.6.3 | Bin 105236 -> 0 bytes .../bin/jungfrauDetectorServerv3.0.1.0 | Bin 0 -> 109460 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.0.6.3 create mode 100755 slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.0 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.0.6.3 b/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.0.6.3 deleted file mode 100755 index c8fbf44aa451aed016e01ea43ab625e24b83e4b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105236 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 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.0 b/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.0 new file mode 100755 index 0000000000000000000000000000000000000000..8d8c9992e76fad6c9eb27bcc3437f45bd929d5c1 GIT binary patch literal 109460 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 a`qFF2u$!rjvddx+E7FXRU)dF8_ Date: Fri, 2 Feb 2018 18:01:01 +0100 Subject: [PATCH 12/13] added auto comp disable feature --- slsDetectorSoftware/commonFiles/error_defs.h | 10 ++- .../commonFiles/sls_detector_funcs.h | 2 + .../jungfrauDetectorServer/RegisterDefs.h | 2 +- .../bin/jungfrauDetectorServerv3.0.1.0 | Bin 109460 -> 0 bytes .../bin/jungfrauDetectorServerv3.0.1.1 | Bin 0 -> 110424 bytes .../slsDetectorFunctionList.c | 23 ++++++ .../multiSlsDetector/multiSlsDetector.cpp | 16 ++++ .../multiSlsDetector/multiSlsDetector.h | 6 ++ .../slsDetector/slsDetector.cpp | 37 +++++++++ slsDetectorSoftware/slsDetector/slsDetector.h | 6 ++ .../slsDetector/slsDetectorCommand.cpp | 27 ++++++- .../slsDetector/slsDetectorUtils.h | 6 ++ .../slsDetectorFunctionList.h | 1 + .../slsDetectorServer_funcs.c | 71 +++++++++++++++++- .../slsDetectorServer_funcs.h | 1 + 15 files changed, 200 insertions(+), 8 deletions(-) delete mode 100755 slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.0 create mode 100755 slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.1 diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index c69a53240..e249ffb6e 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -50,9 +50,9 @@ using namespace std; #define PREPARE_ACQUISITION 0x0000100000000000ULL #define CLEANUP_ACQUISITION 0x0000080000000000ULL #define REGISER_WRITE_READ 0x0000040000000000ULL -// 0xFFFFFFF000000000ULL +// 0xFFFFFF0000000000ULL -// 0x0000000FFFFFFFFFULL +// 0x000000FFFFFFFFFFULL #define COULDNOT_SET_NETWORK_PARAMETER 0x0000000000000001ULL #define COULDNOT_SET_ROI 0x0000000000000002ULL #define RECEIVER_READ_FREQUENCY 0x0000000000000004ULL @@ -89,7 +89,8 @@ using namespace std; #define RECEIVER_SILENT_MODE_NOT_SET 0x0000000200000000ULL #define RESTREAM_STOP_FROM_RECEIVER 0x0000000400000000ULL #define TEMPERATURE_CONTROL 0x0000000800000000ULL -// 0x0000000FFFFFFFFFULL +#define AUTO_COMP_DISABLE 0x0000001000000000ULL +// 0x000000FFFFFFFFFFULL /** @short class returning all error messages for error mask */ class errorDefs { @@ -280,7 +281,8 @@ public: if(slsErrorMask&TEMPERATURE_CONTROL) retval.append("Could not set/get threshold temperature, temp control or temp event.\n"); - + if(slsErrorMask&AUTO_COMP_DISABLE) + retval.append("Could not set/get auto comparator disable\n"); //------------------------------------------------------ length of message diff --git a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h index ac0788ff0..c4d2f5c5a 100644 --- a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h @@ -116,6 +116,8 @@ enum detFuncs{ F_THRESHOLD_TEMP, /** < set threshold temperature */ F_TEMP_CONTROL, /** < set temperature control */ F_TEMP_EVENT, /** < set temperature event */ + + F_AUTO_COMP_DISABLE, /** < auto comp disable mode */ /* Always append functions hereafter!!! */ /* Always append functions before!!! */ diff --git a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h index af194bec0..ebd2d94b5 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h @@ -291,7 +291,7 @@ #define VREF_COMP_MOD_REG (0x5C << 11) #define VREF_COMP_MOD_OFST (0) -#define VREF_COMP_MOD_MSK (0x00000FFF << VREF_COMP_OFST) +#define VREF_COMP_MOD_MSK (0x00000FFF << VREF_COMP_MOD_OFST) #define VREF_COMP_MOD_ENABLE_OFST (31) #define VREF_COMP_MOD_ENABLE_MSK (0x00000FFF << VREF_COMP_MOD_ENABLE_OFST) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.0 b/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.0 deleted file mode 100755 index 8d8c9992e76fad6c9eb27bcc3437f45bd929d5c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109460 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 a`qFF2u$!rjvddx+E7FXRU)dF8__~+1cGmZ2SHG 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 z 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ÿ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 Rq!u}ZkYB|;H`D9>{|7HUfYSf~ literal 0 HcmV?d00001 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index 164ae5f71..9d3d44d00 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -395,6 +395,24 @@ int powerChip (int on){ //return ((bus_r(CHIP_POWER_REG) & CHIP_POWER_STATUS_MSK) >> CHIP_POWER_STATUS_OFST); } + + +int autoCompDisable(int on) { + if(on != -1){ + if(on){ + cprintf(BLUE, "\n*** Auto comp disable mode: enabling ***\n"); + bus_w(VREF_COMP_MOD_REG, bus_r(VREF_COMP_MOD_REG) | VREF_COMP_MOD_ENABLE_MSK); + } + else{ + cprintf(BLUE, "\n*** Auto comp disable mode: disabling *** \n"); + bus_w(VREF_COMP_MOD_REG, bus_r(VREF_COMP_MOD_REG) & ~VREF_COMP_MOD_ENABLE_MSK); + } + } + + return (bus_r(VREF_COMP_MOD_REG) & VREF_COMP_MOD_ENABLE_MSK); +} + + void cleanFifos() { printf("\nClearing Acquisition Fifos\n"); bus_w(CONTROL_REG, bus_r(CONTROL_REG) | CONTROL_ACQ_FIFO_CLR_MSK); @@ -879,6 +897,11 @@ void setDAC(enum DACINDEX ind, int val, int imod, int mV, int retval[]){ DAC_SERIAL_CLK_OUT_MSK, DAC_SERIAL_DIGITAL_OUT_MSK, DAC_SERIAL_DIGITAL_OUT_OFST); dacValues[ind] = dacval; + + if (ind == VREF_COMP) { + bus_w (VREF_COMP_MOD_REG, (bus_r(VREF_COMP_MOD_REG) &~ (VREF_COMP_MOD_MSK)) // reset + | ((val << VREF_COMP_MOD_OFST) & VREF_COMP_MOD_MSK)); // or it with value + } } printf("Getting DAC %d : ",ind); diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index fa36a98db..c0ab275a4 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4595,6 +4595,22 @@ int multiSlsDetector::powerChip(int ival){ } +int multiSlsDetector::setAutoComparatorDisableMode(int ival) { + int ret=OK, ret1=OK; + + for (int i=0; inumberOfDetectors; ++i) { + if (detectors[i]) { + ret=detectors[i]->setAutoComparatorDisableMode(ival); + if(detectors[i]->getErrorMask()) + setErrorMask(getErrorMask()|(1<myDetectorType != JUNGFRAU){ + std::cout << "Not implemented for this detector" << std::endl; + return FAIL; + } +#ifdef VERBOSE + std::cout<< "Enabling/disabling Auto comp disable mode " << endl; +#endif + if (thisDetector->onlineFlag==ONLINE_FLAG) { + if (connectControl() == OK){ + controlSocket->SendDataOnly(&fnum,sizeof(fnum)); + controlSocket->SendDataOnly(&ival,sizeof(ival)); + //check opening error + controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret==FAIL) { + controlSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(AUTO_COMP_DISABLE)); + }else + controlSocket->ReceiveDataOnly(&retval,sizeof(retval)); + disconnectControl(); + if (ret==FORCE_UPDATE) + updateDetector(); + } + } + return retval; + +} + + int slsDetector::loadSettingsFile(string fname, int imod) { sls_detector_module *myMod=NULL; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 0561b5664..3a7674522 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -551,6 +551,12 @@ class slsDetector : public slsDetectorUtils, public energyConversion { */ int powerChip(int ival= -1); + /** automatic comparator disable for Jungfrau only + \param ival on is 1, off is 0, -1 to get + \returns OK or FAIL + */ + int setAutoComparatorDisableMode(int ival= -1); + /** loads the modules settings/trimbits reading from a file \param fname file name . If not specified, extension is automatically generated! diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 6d69b8f23..32fee72ff 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -234,7 +234,6 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { - /*! \page config Configuration commands Commands to configure the detector. these commands are often left to the configuration file. - \ref configstructure "Data Structure": commands to configure detector data structure @@ -461,6 +460,13 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdAdvanced; ++i; + /*! \page config + - auto_comp_disable i this mode disables the on-chip gain switching comparator automatically after 93.75% of exposure time (only for longer than 100us). 1 enables mode, 0 disables mode. By default, mode is disabled (comparator is enabled throughout). (JUNGFRAU only). \c Returns \c (int) + */ + descrToFuncMap[i].m_pFuncName="auto_comp_disable"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdAdvanced; + ++i; + /*! \page config - pulse [n] [x] [y] pulses pixel at coordinates (x,y) n number of times. Used in EIGER only. Only put! \c Returns \c ("successful", "unsuccessful") */ @@ -5854,7 +5860,9 @@ string slsDetectorCommand::cmdAdvanced(int narg, char *args[], int action) { } sprintf(ans,"%d",myDet->powerChip()); return string(ans); - } else if (cmd=="led") { + } + + else if (cmd=="led") { char ans[100]; int val=0; myDet->setOnline(ONLINE_FLAG); @@ -5868,6 +5876,19 @@ string slsDetectorCommand::cmdAdvanced(int narg, char *args[], int action) { sprintf(ans,"%d",~(myDet->readRegister(0x4d))&1); return string(ans); } + + else if (cmd=="auto_comp_disable") { + char ans[100]; + myDet->setOnline(ONLINE_FLAG); + if (action==PUT_ACTION){ + int ival = -1; + if (!sscanf(args[1],"%d",&ival)) + return string("could not scan auto_comp_control parameter " + string(args[1])); + myDet->setAutoComparatorDisableMode(ival); + } + sprintf(ans,"%d",myDet->setAutoComparatorDisableMode()); + return string(ans); + } else return string("unknown command ")+cmd; @@ -5887,6 +5908,7 @@ string slsDetectorCommand::helpAdvanced(int narg, char *args[], int action) { os << "led s \t sets led status (0 off, 1 on)" << std::endl; os << "powerchip i \t powers on or off the chip. i = 1 for on, i = 0 for off" << std::endl; + os << "auto_comp_disable i \t this mode disables the on-chip gain switching comparator automatically after 93.75% of exposure time (only for longer than 100us). 1 enables mode, 0 disables mode. By default, mode is disabled (comparator is enabled throughout). (JUNGFRAU only). " << std::endl; } if (action==GET_ACTION || action==HELP_ACTION) { @@ -5896,6 +5918,7 @@ string slsDetectorCommand::helpAdvanced(int narg, char *args[], int action) { os << "led \t returns led status (0 off, 1 on)" << std::endl; os << "flags \t gets the readout flags. can be none, storeinram, tot, continous, parallel, nonparallel, safe, unknown" << std::endl; os << "powerchip \t gets if the chip has been powered on or off" << std::endl; + os << "auto_comp_disable \t gets if the automatic comparator diable mode is enabled/disabled" << std::endl; } return os.str(); diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index 9e20d7ac6..9d69afa55 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -582,6 +582,12 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing { */ virtual int powerChip(int ival= -1)=0; + /** automatic comparator disable for Jungfrau only + \param ival on is 1, off is 0, -1 to get + \returns OK or FAIL + */ + virtual int setAutoComparatorDisableMode(int ival= -1)=0; + /** saves the modules settings/trimbits writing to a file \param fname file name . Axtension is automatically generated! \param imod module number, -1 means all modules diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h index 9f6e9e7f2..13be6e2c2 100644 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h @@ -69,6 +69,7 @@ uint32_t readRegister(uint32_t offset); // firmware functions (resets) #ifdef JUNGFRAUD int powerChip (int on); +int autoCompDisable(int on); void cleanFifos(); void resetCore(); void resetPeripheral(); diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 617343135..c254f72e6 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -184,6 +184,7 @@ const char* getFunctionName(enum detFuncs func) { case F_THRESHOLD_TEMP: return "F_THRESHOLD_TEMP"; case F_TEMP_CONTROL: return "F_TEMP_CONTROL"; case F_TEMP_EVENT: return "F_TEMP_EVENT"; + case F_AUTO_COMP_DISABLE: return "F_AUTO_COMP_DISABLE"; default: return "Unknown Function"; } @@ -266,6 +267,7 @@ void function_table() { flist[F_THRESHOLD_TEMP] = &threshold_temp; flist[F_TEMP_CONTROL] = &temp_control; flist[F_TEMP_EVENT] = &temp_event; + flist[F_AUTO_COMP_DISABLE] = &auto_comp_disable; // check if (NUM_DET_FUNCTIONS >= TOO_MANY_FUNCTIONS_DEFINED) { @@ -4734,7 +4736,7 @@ int power_chip(int file_des) { } else { ret=FAIL; if(setTemperatureEvent(-1) == 1) - sprintf(mess,"Powering chip failed due to over-temperature event. Clear event & power chip again.\n", arg, retval); + sprintf(mess,"Powering chip failed due to over-temperature event. Clear event & power chip again. Wrote %d, read %d \n", arg, retval); else sprintf(mess,"Powering chip failed, wrote %d but read %d\n", arg, retval); cprintf(RED, "Warning: %s", mess); @@ -5086,3 +5088,70 @@ int temp_event(int file_des) { return ret; } + + + + +int auto_comp_disable(int file_des) { + int ret=OK,ret1=OK; + int n=0; + int retval=-1; + sprintf(mess,"auto comp disable failed\n"); + +#ifndef JUNGFRAUD + //to receive any arguments + while (n > 0) + n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER); + ret = FAIL; + sprintf(mess,"Function (Auto Comp Disable) is not implemented for this detector\n"); + cprintf(RED, "%s", mess); +#else + + // receive arguments + int arg=-1; + n = receiveData(file_des,&arg,sizeof(arg),INT32); + if (n < 0) return printSocketReadError(); + + // execute action + if (differentClients && lockStatus && arg!=-1) { + ret = FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + cprintf(RED, "Warning: %s", mess); + } +#ifdef SLS_DETECTOR_FUNCTION_LIST + else { +#ifdef VERBOSE + printf("Auto Comp Disable to %d\n", arg); +#endif + retval=autoCompDisable(arg); + +#ifdef VERBOSE + printf("Auto comp disable set to: %d\n",retval); +#endif + if (retval==arg || arg<0) { + ret=OK; + } else { + ret=FAIL; + sprintf(mess,"Atuo Comp Disable failed, wrote %d but read %d\n", arg, retval); + cprintf(RED, "Warning: %s", mess); + } + } +#endif + if (ret==OK && differentClients) + ret=FORCE_UPDATE; +#endif + + // ret could be swapped during sendData + ret1 = ret; + // send ok / fail + n = sendData(file_des,&ret1,sizeof(ret),INT32); + // send return argument + if (ret==FAIL) { + n += sendData(file_des,mess,sizeof(mess),OTHER); + } else + n += sendData(file_des,&retval,sizeof(retval),INT32); + + // return ok / fail + return ret; +} + diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h index 4e4084020..e593b0bf4 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h @@ -91,5 +91,6 @@ int cleanup_acquisition(int); int threshold_temp(int); int temp_control(int); int temp_event(int); +int auto_comp_disable(int); #endif From e6bd874a88493557fc5127d4a1686832299aaf06 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 5 Feb 2018 11:50:22 +0100 Subject: [PATCH 13/13] modified jungfrau server and client to make auto_comp_disable a not yet implemented feature as it requires a firmware upgrade --- ...3.0.1.1 => jungfrauDetectorServerv3.0.1.2} | Bin 110424 -> 110232 bytes .../slsDetector/slsDetectorCommand.cpp | 6 +++--- .../slsDetectorServer_funcs.c | 10 ++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) rename slsDetectorSoftware/jungfrauDetectorServer/bin/{jungfrauDetectorServerv3.0.1.1 => jungfrauDetectorServerv3.0.1.2} (51%) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.1 b/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.2 similarity index 51% rename from slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.1 rename to slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.2 index 2040d86b79505964c4b22f412d06743dacbf2912..2ceabc6dec4062bc0752c7fc4418ed0b0adbc5bf 100755 GIT binary patch delta 28855 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 XR1Q)2*7ML!qqHpyLgBU?sQiBbsRQTL delta 28948 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 diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 32fee72ff..db8a8505e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -461,7 +461,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { ++i; /*! \page config - - auto_comp_disable i this mode disables the on-chip gain switching comparator automatically after 93.75% of exposure time (only for longer than 100us). 1 enables mode, 0 disables mode. By default, mode is disabled (comparator is enabled throughout). (JUNGFRAU only). \c Returns \c (int) + - auto_comp_disable i Currently not implemented. this mode disables the on-chip gain switching comparator automatically after 93.75% of exposure time (only for longer than 100us). 1 enables mode, 0 disables mode. By default, mode is disabled (comparator is enabled throughout). (JUNGFRAU only). \c Returns \c (int) */ descrToFuncMap[i].m_pFuncName="auto_comp_disable"; // descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdAdvanced; @@ -5908,7 +5908,7 @@ string slsDetectorCommand::helpAdvanced(int narg, char *args[], int action) { os << "led s \t sets led status (0 off, 1 on)" << std::endl; os << "powerchip i \t powers on or off the chip. i = 1 for on, i = 0 for off" << std::endl; - os << "auto_comp_disable i \t this mode disables the on-chip gain switching comparator automatically after 93.75% of exposure time (only for longer than 100us). 1 enables mode, 0 disables mode. By default, mode is disabled (comparator is enabled throughout). (JUNGFRAU only). " << std::endl; + os << "auto_comp_disable i \t Currently not implemented. this mode disables the on-chip gain switching comparator automatically after 93.75% of exposure time (only for longer than 100us). 1 enables mode, 0 disables mode. By default, mode is disabled (comparator is enabled throughout). (JUNGFRAU only). " << std::endl; } if (action==GET_ACTION || action==HELP_ACTION) { @@ -5918,7 +5918,7 @@ string slsDetectorCommand::helpAdvanced(int narg, char *args[], int action) { os << "led \t returns led status (0 off, 1 on)" << std::endl; os << "flags \t gets the readout flags. can be none, storeinram, tot, continous, parallel, nonparallel, safe, unknown" << std::endl; os << "powerchip \t gets if the chip has been powered on or off" << std::endl; - os << "auto_comp_disable \t gets if the automatic comparator diable mode is enabled/disabled" << std::endl; + os << "auto_comp_disable \t Currently not implemented. gets if the automatic comparator diable mode is enabled/disabled" << std::endl; } return os.str(); diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index c254f72e6..51df2032c 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -5107,6 +5107,15 @@ int auto_comp_disable(int file_des) { cprintf(RED, "%s", mess); #else + //to receive any arguments + while (n > 0) + n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER); + ret = FAIL; + sprintf(mess,"Function (Auto Comp Disable) is not yet implemented for this detector\n"); + cprintf(RED, "%s", mess); + + /* will be connected after teh fpga upgrade + // receive arguments int arg=-1; n = receiveData(file_des,&arg,sizeof(arg),INT32); @@ -5139,6 +5148,7 @@ int auto_comp_disable(int file_des) { #endif if (ret==OK && differentClients) ret=FORCE_UPDATE; + */ #endif // ret could be swapped during sendData