From 14d227f8db90e98fd0b496f91ef25af490116b06 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 28 Jun 2018 16:19:19 +0200 Subject: [PATCH] jungfrau server fix (3.1.3): delay after trigger set at testbus --- .../jungfrauDetectorServer/RegisterDefs.h | 8 +-- .../bin/jungfrauDetectorServer_developer | Bin 116212 -> 116268 bytes .../slsDetectorFunctionList.c | 15 ++-- .../slsDetectorServer_funcs.c | 64 +++++++++++------- 4 files changed, 52 insertions(+), 35 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h index 03aba561d..3d46be463 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/RegisterDefs.h @@ -75,8 +75,8 @@ #define TIME_FROM_START_MSB_REG (0x11 << MEM_MAP_SHIFT) /* Get Delay 64 bit register */ -#define GET_DELAY_LSB_REG (0x12 << MEM_MAP_SHIFT) -#define GET_DELAY_MSB_REG (0x13 << MEM_MAP_SHIFT) +#define GET_DELAY_LSB_REG (0x12 << MEM_MAP_SHIFT) // different kind of delay +#define GET_DELAY_MSB_REG (0x13 << MEM_MAP_SHIFT) // different kind of delay /* Get Cycles 64 bit register */ #define GET_CYCLES_LSB_REG (0x14 << MEM_MAP_SHIFT) @@ -349,8 +349,8 @@ /* Set Delay 64 bit register */ -#define SET_DELAY_LSB_REG (0x60 << MEM_MAP_SHIFT) -#define SET_DELAY_MSB_REG (0x61 << MEM_MAP_SHIFT) +#define SET_DELAY_LSB_REG (0x60 << MEM_MAP_SHIFT) // different kind of delay +#define SET_DELAY_MSB_REG (0x61 << MEM_MAP_SHIFT) // different kind of delay /* Set Cycles 64 bit register */ #define SET_CYCLES_LSB_REG (0x62 << MEM_MAP_SHIFT) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index a9ebd4cb1992085d81da8523ee5069895d5bd088..b43bc8e7c5ad55024fc7e1aaa84c0d3b7ef29d8f 100755 GIT binary patch delta 39115 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 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c index 3ea7be47d..f39c44890 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -213,18 +213,21 @@ int testBus() { printf("\nTesting Bus...\n"); int ret = OK; - u_int32_t addr = SET_DELAY_LSB_REG; + u_int32_t addr = SET_TRIGGER_DELAY_LSB_REG; int times = 1000 * 1000; int i = 0; for (i = 0; i < times; ++i) { bus_w(addr, i * 100); - if (i * 100 != bus_r(SET_DELAY_LSB_REG)) { - cprintf(RED,"ERROR: Mismatch! Wrote 0x%x, read 0x%x\n", i * 100, bus_r(SET_DELAY_LSB_REG)); + if (i * 100 != bus_r(addr)) { + cprintf(RED,"ERROR: Mismatch! Wrote 0x%x, read 0x%x\n", + i * 100, bus_r(addr)); ret = FAIL; } } + bus_w(addr, 0); + if (ret == OK) printf("Successfully tested bus %d times\n", times); return ret; @@ -807,12 +810,12 @@ int64_t getTimeLeft(enum timerIndex ind){ retval = get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG) / (1E-3 * CLK_SYNC); printf("Getting period left: %lldns\n", (long long int)retval); break; - +/* case DELAY_AFTER_TRIGGER: - retval = get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG) / (1E-3 * CLK_SYNC); + retval = get64BitReg(xxx) / (1E-3 * CLK_SYNC); printf("Getting delay left: %lldns\n", (long long int)retval); break; - +*/ case CYCLES_NUMBER: retval = get64BitReg(GET_CYCLES_LSB_REG, GET_CYCLES_MSB_REG); printf("Getting number of cycles left: %lld\n", (long long int)retval); diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 0fb87ea2e..405a1d9e9 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -2904,39 +2904,53 @@ int get_time_left(int file_des) { printf("getting time left on timer %d \n",ind); #endif #ifdef SLS_DETECTOR_FUNCTION_LIST - switch(ind) { + +#ifdef JUNGFRAUD + if (ind == DELAY_AFTER_TRIGGER) { + ret = FAIL; + sprintf(mess,"Timer Left Index (%d) is not implemented for this release.\n", (int)ind); + cprintf(RED, "%s", mess); + } else { +#endif + + switch(ind) { #ifdef MYTHEND - case PROBES_NUMBER: + case PROBES_NUMBER: #elif JUNGFRAUD - case FRAMES_FROM_START: - case FRAMES_FROM_START_PG: + case FRAMES_FROM_START: + case FRAMES_FROM_START_PG: #elif MYTHEN3D - case GATES_NUMBER: - case PROBES_NUMBER: - case SAMPLES_JCTB: + case GATES_NUMBER: + case PROBES_NUMBER: + case SAMPLES_JCTB: #endif #ifndef JUNGFRAUD - case GATES_NUMBER: + case GATES_NUMBER: #endif - case FRAME_NUMBER: - case ACQUISITION_TIME: - case FRAME_PERIOD: - case DELAY_AFTER_TRIGGER: - case CYCLES_NUMBER: - case PROGRESS: - case ACTUAL_TIME: - case MEASUREMENT_TIME: - retval=getTimeLeft(ind); - break; - default: - ret = FAIL; - sprintf(mess,"Timer Left Index (%d) is not implemented for this detector\n", (int)ind); - cprintf(RED, "%s", mess); - break; - } + case FRAME_NUMBER: + case ACQUISITION_TIME: + case FRAME_PERIOD: + case DELAY_AFTER_TRIGGER: + case CYCLES_NUMBER: + case PROGRESS: + case ACTUAL_TIME: + case MEASUREMENT_TIME: + retval=getTimeLeft(ind); + break; + default: + ret = FAIL; + sprintf(mess,"Timer Left Index (%d) is not implemented for this detector\n", (int)ind); + cprintf(RED, "%s", mess); + break; + } #ifdef VERBOSE - printf("Time left on timer %d is %lld\n",ind, retval); + printf("Time left on timer %d is %lld\n",ind, retval); #endif + +#ifdef JUNGFRAUD + } // end of if (ind == DELAY_AFTER_TRIGGER) +#endif + #endif if (ret==OK && differentClients) ret=FORCE_UPDATE;