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_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_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

View File

@ -665,7 +665,7 @@ int setThresholdEnergy(int ev, int imod){
if(ev >= 0) {
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;
//calculate thrvalues for dacs
@ -1199,7 +1199,7 @@ enum externalCommunicationMode setTiming( enum externalCommunicationMode arg){
switch((int)arg){
case AUTO_TIMING: ret = 0; 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;
}
printf(" Setting Triggering Mode: %d\n",(int)ret);
@ -1211,7 +1211,7 @@ enum externalCommunicationMode setTiming( enum externalCommunicationMode arg){
switch((int)ret){
case 0: ret = AUTO_TIMING; 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;
default:
printf("Unknown trigger mode found %d\n",ret);

View File

@ -1817,7 +1817,8 @@ slsDetectorDefs::externalSignalFlag slsDetector::setExternalSignalFlags(external
GATE_FIX_NUMBER,
GATE_FIX_DURATION,
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
\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
*/
@ -703,6 +703,7 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
case TRIGGER_READOUT: return string("ro_trigger"); \
case GATE_FIX_NUMBER: return string("gating"); \
case GATE_WITH_START_TRIGGER: return string("triggered_gating"); \
case BURST_TRIGGER: return string("burst_trigger"); \
default: return string( "unknown"); \
} };
@ -711,7 +712,7 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
/**
returns external communication mode index from string
\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){\
@ -720,6 +721,7 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
if (sval=="ro_trigger") return TRIGGER_READOUT;\
if (sval=="gating") return GATE_FIX_NUMBER;\
if (sval=="triggered_gating") return GATE_WITH_START_TRIGGER;\
if (sval=="burst_trigger") return BURST_TRIGGER;\
return GET_EXTERNAL_COMMUNICATION_MODE; \
};

View File

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

View File

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