mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-21 09:08:00 +02:00
ctb and moench, exptime connects to set pattern wait time with level 0
This commit is contained in:
@ -526,6 +526,7 @@ void setupDetector() {
|
||||
//Initialization of acquistion parameters
|
||||
setTimer(SAMPLES, DEFAULT_NUM_SAMPLES); // update databytes and allocate ram
|
||||
setTimer(FRAME_NUMBER, DEFAULT_NUM_FRAMES);
|
||||
setTimer(ACQUISITION_TIME, DEFAULT_EXPTIME);
|
||||
setTimer(CYCLES_NUMBER, DEFAULT_NUM_CYCLES);
|
||||
setTimer(FRAME_PERIOD, DEFAULT_PERIOD);
|
||||
setTimer(DELAY_AFTER_TRIGGER, DEFAULT_DELAY);
|
||||
@ -837,19 +838,20 @@ int64_t setTimer(enum timerIndex ind, int64_t val) {
|
||||
FILE_LOG(logINFO, ("\tGetting #frames: %lld\n", (long long int)retval));
|
||||
break;
|
||||
|
||||
case ACQUISITION_TIME:
|
||||
if(val >= 0){
|
||||
FILE_LOG(logINFO, ("Setting exptime (pattern wait time level 0): %lldns\n",(long long int)val));
|
||||
val *= (1E-3 * clkDivider[RUN_CLK]);
|
||||
setPatternWaitTime(0, val);
|
||||
}
|
||||
retval = setPatternWaitTime(0, -1) / (1E-3 * clkDivider[RUN_CLK]);
|
||||
FILE_LOG(logINFO, ("\tGetting exptime (pattern wait time level 0): %lldns\n", (long long int)retval));
|
||||
break;
|
||||
|
||||
case FRAME_PERIOD:
|
||||
if(val >= 0){
|
||||
FILE_LOG(logINFO, ("Setting period: %lldns\n",(long long int)val));
|
||||
val *= (1E-3 * clkDivider[ADC_CLK]);
|
||||
// make period odd
|
||||
//FIXME to be tested
|
||||
/*if (val % 2 == 0) { //fIXME: period is even here, not other way round?
|
||||
FILE_LOG(logINFO, ("\tPeriod %lld not even, adding 1\n", (long long int)val));
|
||||
++val;
|
||||
FILE_LOG(logINFO, ("\tNew Period:%lld\n", (long long int)val))
|
||||
} else {
|
||||
FILE_LOG(logINFO, ("\tPeriod already even:%lld\n", (long long int)val))
|
||||
}*/
|
||||
}
|
||||
retval = set64BitReg(val, PERIOD_LSB_REG, PERIOD_MSB_REG )/ (1E-3 * clkDivider[ADC_CLK]);
|
||||
FILE_LOG(logINFO, ("\tGetting period: %lldns\n", (long long int)retval));
|
||||
@ -959,11 +961,18 @@ int validateTimer(enum timerIndex ind, int64_t val, int64_t retval) {
|
||||
// convert back to timer
|
||||
val = (val) / (1E-3 * clkDivider[ADC_CLK]);
|
||||
if (val != retval) {
|
||||
FILE_LOG(logERROR, ("Could not validate timer %d. Set %lld, got %lld\n",
|
||||
(long long unsigned int)val, (long long unsigned int)retval));
|
||||
return FAIL;
|
||||
}
|
||||
break;
|
||||
case ACQUISITION_TIME:
|
||||
// convert to freq
|
||||
val *= (1E-3 * clkDivider[RUN_CLK]);
|
||||
// convert back to timer
|
||||
val = (val) / (1E-3 * clkDivider[RUN_CLK]);
|
||||
if (val != retval) {
|
||||
return FAIL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -971,6 +980,7 @@ int validateTimer(enum timerIndex ind, int64_t val, int64_t retval) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* parameters - settings */
|
||||
enum detectorSettings getSettings() {
|
||||
return UNDEFINED;
|
||||
|
@ -41,6 +41,7 @@ enum DACINDEX {D0, D1, D2, D3, D4, D5, D6, D7};
|
||||
/** Default Parameters */
|
||||
#define DEFAULT_DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL)
|
||||
#define DEFAULT_NUM_SAMPLES (1)
|
||||
#define DEFAULT_EXPTIME (0)
|
||||
#define DEFAULT_NUM_FRAMES (100 * 1000 * 1000)
|
||||
#define DEFAULT_NUM_CYCLES (1)
|
||||
#define DEFAULT_PERIOD (1 * 1000 * 1000) //ns
|
||||
|
Reference in New Issue
Block a user