added burst_trigger mode for eiger to replace trigger_readout mode

This commit is contained in:
Dhanya Maliakal
2016-07-04 15:47:32 +02:00
parent 9574e09033
commit 35b02c9cf0
7 changed files with 16 additions and 11 deletions

View File

@@ -263,7 +263,8 @@ enum externalCommunicationMode{
TRIGGER_EXPOSURE, /**< trigger mode i.e. exposure is triggered */ TRIGGER_EXPOSURE, /**< trigger mode i.e. exposure is triggered */
TRIGGER_READOUT, /**< stop trigger mode i.e. readout is triggered by external signal */ TRIGGER_READOUT, /**< stop trigger mode i.e. readout is triggered by external signal */
GATE_FIX_NUMBER, /**< gated and reads out after a fixed number of gates */ GATE_FIX_NUMBER, /**< gated and reads out after a fixed number of gates */
GATE_WITH_START_TRIGGER /**< gated with start trigger */ GATE_WITH_START_TRIGGER, /**< gated with start trigger */
BURST_TRIGGER /**< trigger a burst of frames */
}; };
/** /**
detector IDs/versions detector IDs/versions

View File

@@ -665,7 +665,7 @@ int setThresholdEnergy(int ev, int imod){
if(ev >= 0) { if(ev >= 0) {
enum detDacIndex ind[NGAIN]={VCMP_LL,VCMP_LR,VCMP_RL, VCMP_RR}; enum detDacIndex ind[NGAIN]={VCMP_LL,VCMP_LR,VCMP_RL, VCMP_RR};
char* vcmp={"vcmp_ll","vcmp_lr","vcmp_rl","vcmp_rr"}; const char* vcmp[4]={"vcmp_ll","vcmp_lr","vcmp_rl","vcmp_rr"};
int valid=0; int valid=0;
//calculate thrvalues for dacs //calculate thrvalues for dacs
@@ -1199,7 +1199,7 @@ enum externalCommunicationMode setTiming( enum externalCommunicationMode arg){
switch((int)arg){ switch((int)arg){
case AUTO_TIMING: ret = 0; break; case AUTO_TIMING: ret = 0; break;
case TRIGGER_EXPOSURE: ret = 2; break; case TRIGGER_EXPOSURE: ret = 2; break;
case TRIGGER_READOUT: ret = 1; break; case BURST_TRIGGER: ret = 1; break;
case GATE_FIX_NUMBER: ret = 3; break; case GATE_FIX_NUMBER: ret = 3; break;
} }
printf(" Setting Triggering Mode: %d\n",(int)ret); printf(" Setting Triggering Mode: %d\n",(int)ret);
@@ -1211,7 +1211,7 @@ enum externalCommunicationMode setTiming( enum externalCommunicationMode arg){
switch((int)ret){ switch((int)ret){
case 0: ret = AUTO_TIMING; break; case 0: ret = AUTO_TIMING; break;
case 2: ret = TRIGGER_EXPOSURE; break; case 2: ret = TRIGGER_EXPOSURE; break;
case 1: ret = TRIGGER_READOUT; break; case 1: ret = BURST_TRIGGER; break;
case 3: ret = GATE_FIX_NUMBER; break; case 3: ret = GATE_FIX_NUMBER; break;
default: default:
printf("Unknown trigger mode found %d\n",ret); printf("Unknown trigger mode found %d\n",ret);

View File

@@ -1817,7 +1817,8 @@ slsDetectorDefs::externalSignalFlag slsDetector::setExternalSignalFlags(external
GATE_FIX_NUMBER, GATE_FIX_NUMBER,
GATE_FIX_DURATION, GATE_FIX_DURATION,
GATE_WITH_START_TRIGGER, GATE_WITH_START_TRIGGER,
GATE_COINCIDENCE_WITH_INTERNAL_ENABLE BURST_TRIGGER,
//GATE_COINCIDENCE_WITH_INTERNAL_ENABLE
}; };
*/ */

View File

@@ -692,7 +692,7 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
/** /**
returns external communication mode string from index returns external communication mode string from index
\param f can be AUTO_TIMING, TRIGGER_EXPOSURE, TRIGGER_READOUT, GATE_FIX_NUMBER, GATE_WITH_START_TRIGGER, GET_EXTERNAL_COMMUNICATION_MODE \param f can be AUTO_TIMING, TRIGGER_EXPOSURE, TRIGGER_READOUT, GATE_FIX_NUMBER, GATE_WITH_START_TRIGGER, BURST_TRIGGER, GET_EXTERNAL_COMMUNICATION_MODE
\returns auto, trigger, ro_trigger, gating, triggered_gating, unknown \returns auto, trigger, ro_trigger, gating, triggered_gating, unknown
*/ */
@@ -703,6 +703,7 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
case TRIGGER_READOUT: return string("ro_trigger"); \ case TRIGGER_READOUT: return string("ro_trigger"); \
case GATE_FIX_NUMBER: return string("gating"); \ case GATE_FIX_NUMBER: return string("gating"); \
case GATE_WITH_START_TRIGGER: return string("triggered_gating"); \ case GATE_WITH_START_TRIGGER: return string("triggered_gating"); \
case BURST_TRIGGER: return string("burst_trigger"); \
default: return string( "unknown"); \ default: return string( "unknown"); \
} }; } };
@@ -711,7 +712,7 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
/** /**
returns external communication mode index from string returns external communication mode index from string
\param sval can be auto, trigger, ro_trigger, gating, triggered_gating \param sval can be auto, trigger, ro_trigger, gating, triggered_gating
\returns AUTO_TIMING, TRIGGER_EXPOSURE, TRIGGER_READOUT, GATE_FIX_NUMBER, GATE_WITH_START_TRIGGER, GET_EXTERNAL_COMMUNICATION_MODE \returns AUTO_TIMING, TRIGGER_EXPOSURE, TRIGGER_READOUT, GATE_FIX_NUMBER, GATE_WITH_START_TRIGGER, BURST_TRIGGER, GET_EXTERNAL_COMMUNICATION_MODE
*/ */
static externalCommunicationMode externalCommunicationType(string sval){\ static externalCommunicationMode externalCommunicationType(string sval){\
@@ -720,6 +721,7 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
if (sval=="ro_trigger") return TRIGGER_READOUT;\ if (sval=="ro_trigger") return TRIGGER_READOUT;\
if (sval=="gating") return GATE_FIX_NUMBER;\ if (sval=="gating") return GATE_FIX_NUMBER;\
if (sval=="triggered_gating") return GATE_WITH_START_TRIGGER;\ if (sval=="triggered_gating") return GATE_WITH_START_TRIGGER;\
if (sval=="burst_trigger") return BURST_TRIGGER;\
return GET_EXTERNAL_COMMUNICATION_MODE; \ return GET_EXTERNAL_COMMUNICATION_MODE; \
}; };

View File

@@ -451,7 +451,7 @@ enum externalSignalFlag setExtSignal(int signalindex, enum externalSignalFlag f
break; break;
case RO_TRIGGER_IN_RISING_EDGE: case RO_TRIGGER_IN_RISING_EDGE:
case RO_TRIGGER_IN_FALLING_EDGE: case RO_TRIGGER_IN_FALLING_EDGE:
if (timingMode==TRIGGER_READOUT) if (timingMode==BURST_TRIGGER)
setFPGASignal(signalindex,flag); setFPGASignal(signalindex,flag);
else else
setFPGASignal(signalindex,SIGNAL_OFF); setFPGASignal(signalindex,SIGNAL_OFF);

View File

@@ -816,7 +816,8 @@ enum externalCommunicationMode{
GATE_FIX_NUMBER, GATE_FIX_NUMBER,
GATE_FIX_DURATION, GATE_FIX_DURATION,
GATE_WITH_START_TRIGGER, GATE_WITH_START_TRIGGER,
GATE_COINCIDENCE_WITH_INTERNAL_ENABLE // GATE_COINCIDENCE_WITH_INTERNAL_ENABLE,
BURST_TRIGGER
}; };
*/ */
#ifdef SLS_DETECTOR_FUNCTION_LIST #ifdef SLS_DETECTOR_FUNCTION_LIST
@@ -827,7 +828,7 @@ enum externalCommunicationMode{
case GET_EXTERNAL_COMMUNICATION_MODE: case GET_EXTERNAL_COMMUNICATION_MODE:
case AUTO_TIMING: case AUTO_TIMING:
case TRIGGER_EXPOSURE: case TRIGGER_EXPOSURE:
case TRIGGER_READOUT: case BURST_TRIGGER:
case GATE_FIX_NUMBER: case GATE_FIX_NUMBER:
break; break;
#endif #endif
@@ -2560,7 +2561,7 @@ int set_timer(int file_des) {
switch(ind) { switch(ind) {
#ifdef EIGERD #ifdef EIGERD
case SUBFRAME_ACQUISITION_TIME: case SUBFRAME_ACQUISITION_TIME:
if (tns > (MAX_SUBFRAME_EXPOSURE_VAL_IN_10NS*10) ){ if (tns > ((int64_t)MAX_SUBFRAME_EXPOSURE_VAL_IN_10NS*10) ){
ret=FAIL; ret=FAIL;
strcpy(mess,"Sub Frame exposure time should not exceed 5.368 seconds\n"); strcpy(mess,"Sub Frame exposure time should not exceed 5.368 seconds\n");
break; break;