From 51fd9ed423b7a8fb45a76b4f48316537c4fb0f5d Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 16 May 2018 09:13:43 +0200 Subject: [PATCH] added subperiod in command line --- .../eigerDetectorServer/FebControl.c | 13 ++++++- .../eigerDetectorServer/FebControl.h | 2 + .../eigerDetectorServer/FebRegisterDefs.h | 36 ++++++++++-------- .../bin/eigerDetectorServer_developer | Bin 297525 -> 297671 bytes .../eigerDetectorServer/gitInfo.txt | 8 ++-- .../eigerDetectorServer/gitInfoEiger.h | 6 +-- .../slsDetectorFunctionList.c | 9 ++++- .../slsDetectorFunctionList_virtual.c | 3 +- .../slsDetectorServer_defs.h | 3 +- .../slsDetector/slsDetectorCommand.cpp | 6 +-- .../slsDetectorServer_funcs.c | 10 +++++ .../include/sls_receiver_defs.h | 2 +- 12 files changed, 68 insertions(+), 30 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index dbb4ebad0..f14995fe7 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -42,6 +42,7 @@ unsigned int Feb_Control_subFrameMode; unsigned int Feb_Control_nimages; double Feb_Control_exposure_time_in_sec; int64_t Feb_Control_subframe_exposure_time_in_10nsec; +int64_t Feb_Control_subframe_period_in_10nsec; double Feb_Control_exposure_period_in_sec; int64_t Feb_Control_RateTable_Tau_in_nsec = -1; @@ -1380,6 +1381,14 @@ int Feb_Control_SetSubFrameExposureTime(int64_t the_subframe_exposure_time_in_10 } int64_t Feb_Control_GetSubFrameExposureTime(){return Feb_Control_subframe_exposure_time_in_10nsec*10;} +int Feb_Control_SetSubFramePeriod(int64_t the_subframe_period_in_10nsec){ + Feb_Control_subframe_period_in_10nsec = the_subframe_period_in_10nsec; + printf("Sub Frame Period set to: %lld\n",(long long int)Feb_Control_subframe_period_in_10nsec); + return 1; +} +int64_t Feb_Control_GetSubFramePeriod(){return Feb_Control_subframe_period_in_10nsec*10;} + + int Feb_Control_SetExposurePeriod(double the_exposure_period_in_sec){ Feb_Control_exposure_period_in_sec = the_exposure_period_in_sec; printf("Exposure period set to: %f\n",Feb_Control_exposure_period_in_sec); @@ -1510,9 +1519,11 @@ int Feb_Control_PrepareForAcquisition(){//return 1; reg_vals[4]=(Feb_Control_acquireNReadoutMode|Feb_Control_triggerMode|Feb_Control_externalEnableMode|Feb_Control_subFrameMode); reg_nums[5]=DAQ_REG_SUBFRAME_EXPOSURES; reg_vals[5]= Feb_Control_subframe_exposure_time_in_10nsec; //(1 means 10ns, 100 means 1000ns) + reg_nums[6]=DAQ_REG_SUBFRAME_PERIOD; + reg_vals[6]= Feb_Control_subframe_period_in_10nsec; //(1 means 10ns, 100 means 1000ns) // if(!Feb_Interface_WriteRegisters((Module_GetTopLeftAddress(&modules[1])|Module_GetTopRightAddress(&modules[1])),20,reg_nums,reg_vals,0,0)){ if(Feb_Control_activated){ - if(!Feb_Interface_WriteRegisters(Feb_Control_AddressToAll(),6,reg_nums,reg_vals,0,0)){ + if(!Feb_Interface_WriteRegisters(Feb_Control_AddressToAll(),7,reg_nums,reg_vals,0,0)){ printf("Trouble starting acquisition....\n");; return 0; } diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.h b/slsDetectorSoftware/eigerDetectorServer/FebControl.h index 892d6b22c..02252cf62 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.h @@ -164,6 +164,8 @@ int Feb_Control_GetModuleNumber(); int64_t Feb_Control_GetExposureTime_in_nsec(); int Feb_Control_SetSubFrameExposureTime(int64_t the_subframe_exposure_time_in_10nsec); int64_t Feb_Control_GetSubFrameExposureTime(); + int Feb_Control_SetSubFramePeriod(int64_t the_subframe_period_in_10nsec); + int64_t Feb_Control_GetSubFramePeriod(); int Feb_Control_SetExposurePeriod(double the_exposure_period_in_sec); double Feb_Control_GetExposurePeriod(); int Feb_Control_SetDynamicRange(unsigned int four_eight_sixteen_or_thirtytwo); diff --git a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h index 87d4ae70a..5950a85f8 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h @@ -6,19 +6,28 @@ //daq register definitions -#define DAQ_REG_CTRL 1 -#define DAQ_REG_CHIP_CMDS 2 -#define DAQ_REG_STATIC_BITS 3 -#define DAQ_REG_CLK_ROW_CLK_NTIMES 3 -#define DAQ_REG_SHIFT_IN_32 3 -#define DAQ_REG_READOUT_NROWS 3 -#define DAQ_REG_SEND_N_TESTPULSES 3 +#define DAQ_REG_CTRL 1 +#define DAQ_REG_CHIP_CMDS 2 +#define DAQ_REG_STATIC_BITS 3 +#define DAQ_REG_CLK_ROW_CLK_NTIMES 3 +#define DAQ_REG_SHIFT_IN_32 3 +#define DAQ_REG_READOUT_NROWS 3 +#define DAQ_REG_SEND_N_TESTPULSES 3 + +#define DAQ_REG_NEXPOSURES 3 +#define DAQ_REG_EXPOSURE_TIMER 4 // == (31 downto 3) * 10^(2 downto 0) +#define DAQ_REG_EXPOSURE_REPEAT_TIMER 5 // == (31 downto 3) * 10^(2 downto 0) +#define DAQ_REG_SUBFRAME_EXPOSURES 6 +#define DAQ_REG_SUBFRAME_PERIOD 7 //also pg and fifo status register + + +#define DAQ_REG_RO_OFFSET 12 +#define DAQ_REG_STATUS (0 + DAQ_REG_RO_OFFSET) //also pg and fifo status register +//temp so far +#define FEB_REG_STATUS (3 + DAQ_REG_RO_OFFSET) + + -#define DAQ_REG_NEXPOSURES 3 -#define DAQ_REG_EXPOSURE_TIMER 4 // == (31 downto 3) * 10^(2 downto 0) -#define DAQ_REG_EXPOSURE_REPEAT_TIMER 5 // == (31 downto 3) * 10^(2 downto 0) -#define DAQ_REG_SUBFRAME_EXPOSURES 6 -#define DAQ_REG_STATUS 7 //also pg and fifo status register #define DAQ_CTRL_RESET 0x80000000 #define DAQ_CTRL_START 0x40000000 @@ -152,9 +161,6 @@ #define FRAME_NUM_RESET_OFFSET 0xA0 -//temp so far -#define FEB_REG_STATUS 0xa - //1g counters #define ONE_GIGA_LEFT_INDEX_LSB_COUNTER 0x04 #define ONE_GIGA_LEFT_INDEX_MSB_COUNTER 0x24 diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer_developer index a524d96cb05952353a823159fb9cb7e735f714de..e47c322608d3404f8f926fd23afab95eecb2b027 100755 GIT binary patch delta 50861 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 delta 50599 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 z{7png diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index d59f5e74d..ba9b56634 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git -Repsitory UUID: 5b01b4cbd808a3c43f1ec97032a1020c8f2ce37a -Revision: 331 +Repsitory UUID: 23d73ae5aee55e52d1d05452c633073ac1c6ad1a +Revision: 334 Branch: developer Last Changed Author: Dhanya_Thattil -Last Changed Rev: 3807 -Last Changed Date: 2018-05-02 17:42:08.000000002 +0200 ./Beb.c +Last Changed Rev: 3817 +Last Changed Date: 2018-05-15 16:16:15.000000002 +0200 ./FebRegisterDefs.h diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 17e358a29..4362e67fc 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,6 +1,6 @@ #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" -#define GITREPUUID "5b01b4cbd808a3c43f1ec97032a1020c8f2ce37a" +#define GITREPUUID "23d73ae5aee55e52d1d05452c633073ac1c6ad1a" #define GITAUTH "Dhanya_Thattil" -#define GITREV 0x3807 -#define GITDATE 0x20180502 +#define GITREV 0x3817 +#define GITDATE 0x20180515 #define GITBRANCH "developer" diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 83caa23c9..5475acbde 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -328,7 +328,8 @@ void setupDetector() { //setting default measurement parameters setTimer(FRAME_NUMBER, DEFAULT_NUM_FRAMES); setTimer(ACQUISITION_TIME, DEFAULT_EXPTIME); - setTimer(SUBFRAME_ACQUISITION_TIME, DEFAULT_SUBFRAME_EXPOSURE_VAL); + setTimer(SUBFRAME_ACQUISITION_TIME, DEFAULT_SUBFRAME_EXPOSURE); + setTimer(SUBFRAME_PERIOD, DEFAULT_SUBFRAME_PERIOD); setTimer(FRAME_PERIOD, DEFAULT_PERIOD); setDynamicRange(DEFAULT_DYNAMIC_RANGE); eiger_photonenergy = DEFAULT_PHOTON_ENERGY; @@ -498,6 +499,12 @@ int64_t setTimer(enum timerIndex ind, int64_t val){ } return (Feb_Control_GetSubFrameExposureTime()); + case SUBFRAME_PERIOD: + if(val >= 0){ + printf(" Setting sub period: %lldns\n",(long long int)val/10); + Feb_Control_SetSubFramePeriod(val/10); + } + return (Feb_Control_GetSubFramePeriod()); case FRAME_PERIOD: if(val >= 0){ diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList_virtual.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList_virtual.c index 5b2d92451..4900f32d3 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList_virtual.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList_virtual.c @@ -216,7 +216,8 @@ void setupDetector() { //setting default measurement parameters setTimer(FRAME_NUMBER, DEFAULT_NUM_FRAMES); setTimer(ACQUISITION_TIME, DEFAULT_EXPTIME); - setTimer(SUBFRAME_ACQUISITION_TIME, DEFAULT_SUBFRAME_EXPOSURE_VAL); + setTimer(SUBFRAME_ACQUISITION_TIME, DEFAULT_SUBFRAME_EXPOSURE); + setTimer(SUBFRAME_PERIOD, DEFAULT_SUBFRAME_PERIOD); setTimer(FRAME_PERIOD, DEFAULT_PERIOD); setDynamicRange(DEFAULT_DYNAMIC_RANGE); eiger_photonenergy = DEFAULT_PHOTON_ENERGY; diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h index e6afb173b..8493a6f50 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h @@ -73,7 +73,8 @@ enum NETWORKINDEX {TXN_LEFT, TXN_RIGHT, TXN_FRAME,FLOWCTRL_10G}; #define DEFAULT_DELAY (0) #define DEFAULT_HIGH_VOLTAGE (0) #define DEFAULT_SETTINGS (DYNAMICGAIN) -#define DEFAULT_SUBFRAME_EXPOSURE_VAL (2621440) // 2.6ms +#define DEFAULT_SUBFRAME_EXPOSURE (2621440) // 2.6ms +#define DEFAULT_SUBFRAME_PERIOD (0) #define DEFAULT_DYNAMIC_RANGE (16) #define DEFAULT_READOUT_FLAG (NONPARALLEL) #define DEFAULT_CLK_SPEED (HALF_SPEED) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 4ab729023..367d7428f 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -5662,7 +5662,7 @@ string slsDetectorCommand::cmdTimer(int narg, char *args[], int action) { else if (cmd=="period") index=FRAME_PERIOD; else if (cmd=="subperiod") - index=SUBFRAME_FRAME_PERIOD; + index=SUBFRAME_PERIOD; else if (cmd=="delay") index=DELAY_AFTER_TRIGGER; else if (cmd=="gates") @@ -5701,7 +5701,7 @@ string slsDetectorCommand::cmdTimer(int narg, char *args[], int action) { return string("cannot scan timer value ")+string(args[1]); if (index==ACQUISITION_TIME || index==SUBFRAME_ACQUISITION_TIME || index==FRAME_PERIOD || index==DELAY_AFTER_TRIGGER || - index == SUBFRAME_FRAME_PERIOD) { + index == SUBFRAME_PERIOD) { // t=(int64_t)(val*1E+9); for precision of eg.0.0000325, following done val*=1E9; t = (int64_t)val; @@ -5718,7 +5718,7 @@ string slsDetectorCommand::cmdTimer(int narg, char *args[], int action) { if ((ret!=-1) && (index==ACQUISITION_TIME || index==SUBFRAME_ACQUISITION_TIME || index==FRAME_PERIOD || index==DELAY_AFTER_TRIGGER || - index == SUBFRAME_FRAME_PERIOD)) { + index == SUBFRAME_PERIOD)) { rval=(double)ret*1E-9; sprintf(answer,"%0.9f",rval); } diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 65ef1dd16..b5e9e6177 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -2755,6 +2755,16 @@ int set_timer(int file_des) { strcpy(mess,"Sub Frame exposure time should not exceed 5.368 seconds\n"); break; } + retval = setTimer(ind,tns); + break; + case SUBFRAME_PERIOD: + if (tns > ((int64_t)MAX_SUBFRAME_EXPOSURE_VAL_IN_10NS*10) ){ + ret=FAIL; + strcpy(mess,"Sub Frame Period should not exceed 5.368 seconds\n"); + break; + } + retval = setTimer(ind,tns); + break; #endif #ifdef MYTHEN case PROBES_NUMBER: diff --git a/slsReceiverSoftware/include/sls_receiver_defs.h b/slsReceiverSoftware/include/sls_receiver_defs.h index 0a00aade3..5108fe304 100755 --- a/slsReceiverSoftware/include/sls_receiver_defs.h +++ b/slsReceiverSoftware/include/sls_receiver_defs.h @@ -112,7 +112,7 @@ public: SAMPLES_JCTB, SUBFRAME_ACQUISITION_TIME, /**< subframe exposure time */ STORAGE_CELL_NUMBER, /**