This commit is contained in:
maliakal_d 2020-06-18 17:40:23 +02:00
parent 489fccb25c
commit 0cc547c2de
10 changed files with 239 additions and 259 deletions

View File

@ -1112,8 +1112,7 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
if (sett == UNINITIALIZED) { if (sett == UNINITIALIZED) {
return thisSettings; return thisSettings;
} }
if (sett != GET_SETTINGS) thisSettings = sett;
thisSettings = sett;
LOG(logINFO, ("Settings: %d\n", thisSettings)); LOG(logINFO, ("Settings: %d\n", thisSettings));
return thisSettings; return thisSettings;
} }
@ -1355,7 +1354,7 @@ enum timingMode getTiming() {
return GATED; return GATED;
default: default:
LOG(logERROR, ("Unknown trigger mode found %d\n", eiger_triggermode)); LOG(logERROR, ("Unknown trigger mode found %d\n", eiger_triggermode));
return GET_TIMING_MODE; return GET_FLAG;
} }
} }

View File

@ -1044,34 +1044,31 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
// set settings // set settings
uint32_t addr = ASIC_CONFIG_REG; uint32_t addr = ASIC_CONFIG_REG;
uint32_t mask = ASIC_CONFIG_GAIN_MSK; uint32_t mask = ASIC_CONFIG_GAIN_MSK;
if (sett != GET_SETTINGS) { switch (sett) {
switch (sett) { case DYNAMICGAIN:
case DYNAMICGAIN: bus_w(addr, bus_r(addr) & ~mask);
bus_w(addr, bus_r(addr) & ~mask); bus_w(addr, bus_r(addr) | ASIC_CONFIG_DYNAMIC_GAIN_VAL);
bus_w(addr, bus_r(addr) | ASIC_CONFIG_DYNAMIC_GAIN_VAL); LOG(logINFO,
LOG(logINFO, ("Set settings - Dyanmic Gain, val: 0x%x\n", ("Set settings - Dyanmic Gain, val: 0x%x\n", bus_r(addr) & mask));
bus_r(addr) & mask)); break;
break; case FIXGAIN1:
case FIXGAIN1: bus_w(addr, bus_r(addr) & ~mask);
bus_w(addr, bus_r(addr) & ~mask); bus_w(addr, bus_r(addr) | ASIC_CONFIG_FIX_GAIN_1_VAL);
bus_w(addr, bus_r(addr) | ASIC_CONFIG_FIX_GAIN_1_VAL); LOG(logINFO,
LOG(logINFO, ("Set settings - Fix Gain 1, val: 0x%x\n", bus_r(addr) & mask));
("Set settings - Fix Gain 1, val: 0x%x\n", bus_r(addr) & mask)); break;
break; case FIXGAIN2:
case FIXGAIN2: bus_w(addr, bus_r(addr) & ~mask);
bus_w(addr, bus_r(addr) & ~mask); bus_w(addr, bus_r(addr) | ASIC_CONFIG_FIX_GAIN_2_VAL);
bus_w(addr, bus_r(addr) | ASIC_CONFIG_FIX_GAIN_2_VAL); LOG(logINFO,
LOG(logINFO, ("Set settings - Fix Gain 2, val: 0x%x\n", bus_r(addr) & mask));
("Set settings - Fix Gain 2, val: 0x%x\n", bus_r(addr) & mask)); break;
break; default:
default: LOG(logERROR,
LOG(logERROR, ("This settings is not defined for this detector %d\n", (int)sett));
("This settings is not defined for this detector %d\n", return -1;
(int)sett));
return -1;
}
thisSettings = sett;
} }
thisSettings = sett;
return getSettings(); return getSettings();
} }

View File

@ -950,44 +950,41 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
return thisSettings; return thisSettings;
// set settings // set settings
if (sett != GET_SETTINGS) { u_int32_t addr = GAIN_REG;
u_int32_t addr = GAIN_REG;
// find conf gain value // find conf gain value
uint32_t confgain = 0x0; uint32_t confgain = 0x0;
switch (sett) { switch (sett) {
case DYNAMICGAIN: case DYNAMICGAIN:
LOG(logINFO, ("Set settings - Dyanmic Gain\n")); LOG(logINFO, ("Set settings - Dyanmic Gain\n"));
confgain = GAIN_CONFGAIN_DYNMC_GAIN_VAL; confgain = GAIN_CONFGAIN_DYNMC_GAIN_VAL;
break; break;
case HIGHGAIN: case HIGHGAIN:
LOG(logINFO, ("Set settings - High Gain\n")); LOG(logINFO, ("Set settings - High Gain\n"));
confgain = GAIN_CONFGAIN_HGH_GAIN_VAL; confgain = GAIN_CONFGAIN_HGH_GAIN_VAL;
break; break;
case LOWGAIN: case LOWGAIN:
LOG(logINFO, ("Set settings - Low Gain\n")); LOG(logINFO, ("Set settings - Low Gain\n"));
confgain = GAIN_CONFGAIN_LW_GAIN_VAL; confgain = GAIN_CONFGAIN_LW_GAIN_VAL;
break; break;
case MEDIUMGAIN: case MEDIUMGAIN:
LOG(logINFO, ("Set settings - Medium Gain\n")); LOG(logINFO, ("Set settings - Medium Gain\n"));
confgain = GAIN_CONFGAIN_MDM_GAIN_VAL; confgain = GAIN_CONFGAIN_MDM_GAIN_VAL;
break; break;
case VERYHIGHGAIN: case VERYHIGHGAIN:
LOG(logINFO, ("Set settings - Very High Gain\n")); LOG(logINFO, ("Set settings - Very High Gain\n"));
confgain = GAIN_CONFGAIN_VRY_HGH_GAIN_VAL; confgain = GAIN_CONFGAIN_VRY_HGH_GAIN_VAL;
break; break;
default: default:
LOG(logERROR, LOG(logERROR,
("This settings is not defined for this detector %d\n", ("This settings is not defined for this detector %d\n", (int)sett));
(int)sett)); return -1;
return -1;
}
// set conf gain
bus_w(addr, bus_r(addr) & ~GAIN_CONFGAIN_MSK);
bus_w(addr, bus_r(addr) | confgain);
LOG(logINFO, ("\tGain Reg: 0x%x\n", bus_r(addr)));
thisSettings = sett;
} }
// set conf gain
bus_w(addr, bus_r(addr) & ~GAIN_CONFGAIN_MSK);
bus_w(addr, bus_r(addr) | confgain);
LOG(logINFO, ("\tGain Reg: 0x%x\n", bus_r(addr)));
thisSettings = sett;
return getSettings(); return getSettings();
} }

View File

@ -753,53 +753,50 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
return thisSettings; return thisSettings;
// set settings // set settings
if (sett != GET_SETTINGS) { switch (sett) {
switch (sett) { case DYNAMICGAIN:
case DYNAMICGAIN: bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK);
bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK); LOG(logINFO,
LOG(logINFO, ("Set settings - Dyanmic Gain, DAQ Reg: 0x%x\n", ("Set settings - Dyanmic Gain, DAQ Reg: 0x%x\n", bus_r(DAQ_REG)));
bus_r(DAQ_REG))); break;
break; case DYNAMICHG0:
case DYNAMICHG0: bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK);
bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK); bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FIX_GAIN_HIGHGAIN_VAL);
bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FIX_GAIN_HIGHGAIN_VAL); LOG(logINFO, ("Set settings - Dyanmic High Gain 0, DAQ Reg: 0x%x\n",
LOG(logINFO, ("Set settings - Dyanmic High Gain 0, DAQ Reg: 0x%x\n", bus_r(DAQ_REG)));
bus_r(DAQ_REG))); break;
break; case FIXGAIN1:
case FIXGAIN1: bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK);
bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK); bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FIX_GAIN_STG_1_VAL);
bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FIX_GAIN_STG_1_VAL); LOG(logINFO,
LOG(logINFO, ("Set settings - Fix Gain 1, DAQ Reg: 0x%x\n", bus_r(DAQ_REG)));
("Set settings - Fix Gain 1, DAQ Reg: 0x%x\n", bus_r(DAQ_REG))); break;
break; case FIXGAIN2:
case FIXGAIN2: bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK);
bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK); bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FIX_GAIN_STG_2_VAL);
bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FIX_GAIN_STG_2_VAL); LOG(logINFO,
LOG(logINFO, ("Set settings - Fix Gain 2, DAQ Reg: 0x%x\n", bus_r(DAQ_REG)));
("Set settings - Fix Gain 2, DAQ Reg: 0x%x\n", bus_r(DAQ_REG))); break;
break; case FORCESWITCHG1:
case FORCESWITCHG1: bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK);
bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK); bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FRCE_GAIN_STG_1_VAL);
bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FRCE_GAIN_STG_1_VAL); LOG(logINFO, ("Set settings - Force Switch Gain 1, DAQ Reg: 0x%x\n",
LOG(logINFO, ("Set settings - Force Switch Gain 1, DAQ Reg: 0x%x\n", bus_r(DAQ_REG)));
bus_r(DAQ_REG))); break;
break; case FORCESWITCHG2:
case FORCESWITCHG2: bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK);
bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK); bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FRCE_GAIN_STG_2_VAL);
bus_w(DAQ_REG, bus_r(DAQ_REG) | DAQ_FRCE_GAIN_STG_2_VAL); LOG(logINFO, ("Set settings - Force Switch Gain 2, DAQ Reg: 0x%x\n",
LOG(logINFO, ("Set settings - Force Switch Gain 2, DAQ Reg: 0x%x\n", bus_r(DAQ_REG)));
bus_r(DAQ_REG))); break;
break; default:
default: LOG(logERROR,
LOG(logERROR, ("This settings is not defined for this detector %d\n", (int)sett));
("This settings is not defined for this detector %d\n", return -1;
(int)sett));
return -1;
}
thisSettings = sett;
} }
thisSettings = sett;
return getSettings(); return getSettings();
} }

View File

@ -909,49 +909,46 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
return thisSettings; return thisSettings;
// set settings // set settings
if (sett != GET_SETTINGS) { switch (sett) {
switch (sett) { case G1_HIGHGAIN:
case G1_HIGHGAIN: LOG(logINFO, ("Set settings - G1_HIGHGAIN\n"));
LOG(logINFO, ("Set settings - G1_HIGHGAIN\n")); setPatternMask(G1_HIGHGAIN_PATMASK);
setPatternMask(G1_HIGHGAIN_PATMASK); break;
break; case G1_LOWGAIN:
case G1_LOWGAIN: LOG(logINFO, ("Set settings - G1_LOWGAIN\n"));
LOG(logINFO, ("Set settings - G1_LOWGAIN\n")); setPatternMask(G1_LOWGAIN_PATMASK);
setPatternMask(G1_LOWGAIN_PATMASK); break;
break; case G2_HIGHCAP_HIGHGAIN:
case G2_HIGHCAP_HIGHGAIN: LOG(logINFO, ("Set settings - G2_HIGHCAP_HIGHGAIN\n"));
LOG(logINFO, ("Set settings - G2_HIGHCAP_HIGHGAIN\n")); setPatternMask(G2_HIGHCAP_HIGHGAIN_PATMASK);
setPatternMask(G2_HIGHCAP_HIGHGAIN_PATMASK); break;
break; case G2_HIGHCAP_LOWGAIN:
case G2_HIGHCAP_LOWGAIN: LOG(logINFO, ("Set settings - G2_HIGHCAP_LOWGAIN\n"));
LOG(logINFO, ("Set settings - G2_HIGHCAP_LOWGAIN\n")); setPatternMask(G2_HIGHCAP_LOWGAIN_PATMASK);
setPatternMask(G2_HIGHCAP_LOWGAIN_PATMASK); break;
break; case G2_LOWCAP_HIGHGAIN:
case G2_LOWCAP_HIGHGAIN: LOG(logINFO, ("Set settings - G2_LOWCAP_HIGHGAIN\n"));
LOG(logINFO, ("Set settings - G2_LOWCAP_HIGHGAIN\n")); setPatternMask(G2_LOWCAP_HIGHGAIN_PATMASK);
setPatternMask(G2_LOWCAP_HIGHGAIN_PATMASK); break;
break; case G2_LOWCAP_LOWGAIN:
case G2_LOWCAP_LOWGAIN: LOG(logINFO, ("Set settings - G2_LOWCAP_LOWGAIN\n"));
LOG(logINFO, ("Set settings - G2_LOWCAP_LOWGAIN\n")); setPatternMask(G2_LOWCAP_LOWGAIN_PATMASK);
setPatternMask(G2_LOWCAP_LOWGAIN_PATMASK); break;
break; case G4_HIGHGAIN:
case G4_HIGHGAIN: LOG(logINFO, ("Set settings - G4_HIGHGAIN\n"));
LOG(logINFO, ("Set settings - G4_HIGHGAIN\n")); setPatternMask(G4_HIGHGAIN_PATMASK);
setPatternMask(G4_HIGHGAIN_PATMASK); break;
break; case G4_LOWGAIN:
case G4_LOWGAIN: LOG(logINFO, ("Set settings - G4_LOWGAIN\n"));
LOG(logINFO, ("Set settings - G4_LOWGAIN\n")); setPatternMask(G4_LOWGAIN_PATMASK);
setPatternMask(G4_LOWGAIN_PATMASK); break;
break; default:
default: LOG(logERROR,
LOG(logERROR, ("This settings is not defined for this detector %d\n", (int)sett));
("This settings is not defined for this detector %d\n", return -1;
(int)sett));
return -1;
}
setPatternBitMask(DEFAULT_PATSETBIT);
thisSettings = sett;
} }
setPatternBitMask(DEFAULT_PATSETBIT);
thisSettings = sett;
return getSettings(); return getSettings();
} }

View File

@ -1157,37 +1157,35 @@ int setHighVoltage(int val) {
/* parameters - timing */ /* parameters - timing */
void setTiming(enum timingMode arg) { void setTiming(enum timingMode arg) {
if (arg != GET_TIMING_MODE) { switch (arg) {
switch (arg) { case AUTO_TIMING:
case AUTO_TIMING: LOG(logINFO, ("Set Timing: Auto (Int. Trigger, Int. Gating)\n"));
LOG(logINFO, ("Set Timing: Auto (Int. Trigger, Int. Gating)\n")); bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK);
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK); bus_w(ASIC_EXP_STATUS_REG,
bus_w(ASIC_EXP_STATUS_REG, bus_r(ASIC_EXP_STATUS_REG) & ~ASIC_EXP_STAT_GATE_SRC_EXT_MSK);
bus_r(ASIC_EXP_STATUS_REG) & ~ASIC_EXP_STAT_GATE_SRC_EXT_MSK); break;
break; case TRIGGER_EXPOSURE:
case TRIGGER_EXPOSURE: LOG(logINFO, ("Set Timing: Trigger (Ext. Trigger, Int. Gating)\n"));
LOG(logINFO, ("Set Timing: Trigger (Ext. Trigger, Int. Gating)\n")); bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK);
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK); bus_w(ASIC_EXP_STATUS_REG,
bus_w(ASIC_EXP_STATUS_REG, bus_r(ASIC_EXP_STATUS_REG) & ~ASIC_EXP_STAT_GATE_SRC_EXT_MSK);
bus_r(ASIC_EXP_STATUS_REG) & ~ASIC_EXP_STAT_GATE_SRC_EXT_MSK); break;
break; case GATED:
case GATED: LOG(logINFO, ("Set Timing: Gating (Int. Trigger, Ext. Gating)\n"));
LOG(logINFO, ("Set Timing: Gating (Int. Trigger, Ext. Gating)\n")); bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK);
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) & ~EXT_SIGNAL_MSK); bus_w(ASIC_EXP_STATUS_REG,
bus_w(ASIC_EXP_STATUS_REG, bus_r(ASIC_EXP_STATUS_REG) | ASIC_EXP_STAT_GATE_SRC_EXT_MSK);
bus_r(ASIC_EXP_STATUS_REG) | ASIC_EXP_STAT_GATE_SRC_EXT_MSK); break;
break; case TRIGGER_GATED:
case TRIGGER_GATED: LOG(logINFO,
LOG(logINFO, ("Set Timing: Trigger_Gating (Ext. Trigger, Ext. Gating)\n"));
("Set Timing: Trigger_Gating (Ext. Trigger, Ext. Gating)\n")); bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK);
bus_w(EXT_SIGNAL_REG, bus_r(EXT_SIGNAL_REG) | EXT_SIGNAL_MSK); bus_w(ASIC_EXP_STATUS_REG,
bus_w(ASIC_EXP_STATUS_REG, bus_r(ASIC_EXP_STATUS_REG) | ASIC_EXP_STAT_GATE_SRC_EXT_MSK);
bus_r(ASIC_EXP_STATUS_REG) | ASIC_EXP_STAT_GATE_SRC_EXT_MSK); break;
break; default:
default: LOG(logERROR, ("Unknown timing mode %d\n", arg));
LOG(logERROR, ("Unknown timing mode %d\n", arg)); return;
return;
}
} }
} }

View File

@ -574,15 +574,15 @@ int set_external_signal_flag(int file_des) {
int set_timing_mode(int file_des) { int set_timing_mode(int file_des) {
ret = OK; ret = OK;
memset(mess, 0, sizeof(mess)); memset(mess, 0, sizeof(mess));
enum timingMode arg = GET_TIMING_MODE; enum timingMode arg = AUTO_TIMING;
enum timingMode retval = GET_TIMING_MODE; enum timingMode retval = AUTO_TIMING;
if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
return printSocketReadError(); return printSocketReadError();
LOG(logDEBUG1, ("Setting external communication mode to %d\n", arg)); LOG(logDEBUG1, ("Setting external communication mode to %d\n", arg));
// set // set
if ((arg != GET_TIMING_MODE) && (Server_VerifyLock() == OK)) { if (((int)arg != GET_FLAG) && (Server_VerifyLock() == OK)) {
switch (arg) { switch (arg) {
case AUTO_TIMING: case AUTO_TIMING:
case TRIGGER_EXPOSURE: case TRIGGER_EXPOSURE:
@ -1501,7 +1501,6 @@ int set_module(int file_des) {
case VERYHIGHGAIN: case VERYHIGHGAIN:
case VERYLOWGAIN: case VERYLOWGAIN:
#elif JUNGFRAUD #elif JUNGFRAUD
case GET_SETTINGS:
case DYNAMICGAIN: case DYNAMICGAIN:
case DYNAMICHG0: case DYNAMICHG0:
case FIXGAIN1: case FIXGAIN1:
@ -1509,14 +1508,11 @@ int set_module(int file_des) {
case FORCESWITCHG1: case FORCESWITCHG1:
case FORCESWITCHG2: case FORCESWITCHG2:
#elif GOTTHARDD #elif GOTTHARDD
case GET_SETTINGS:
case DYNAMICGAIN: case DYNAMICGAIN:
case HIGHGAIN: case HIGHGAIN:
case LOWGAIN: case LOWGAIN:
case MEDIUMGAIN: case MEDIUMGAIN:
case VERYHIGHGAIN: case VERYHIGHGAIN:
#elif MYTHEN3D
case GET_SETTINGS:
#endif #endif
break; break;
default: default:
@ -1541,8 +1537,8 @@ int set_module(int file_des) {
int set_settings(int file_des) { int set_settings(int file_des) {
ret = OK; ret = OK;
memset(mess, 0, sizeof(mess)); memset(mess, 0, sizeof(mess));
enum detectorSettings isett = GET_SETTINGS; enum detectorSettings isett = STANDARD;
enum detectorSettings retval = GET_SETTINGS; enum detectorSettings retval = STANDARD;
if (receiveData(file_des, &isett, sizeof(isett), INT32) < 0) if (receiveData(file_des, &isett, sizeof(isett), INT32) < 0)
return printSocketReadError(); return printSocketReadError();
@ -1553,58 +1549,62 @@ int set_settings(int file_des) {
LOG(logDEBUG1, ("Setting settings %d\n", isett)); LOG(logDEBUG1, ("Setting settings %d\n", isett));
// set & get // set & get
if ((isett == GET_SETTINGS) || (Server_VerifyLock() == OK)) { if (((int)isett == GET_FLAG) || (Server_VerifyLock() == OK)) {
// check index if ((int)isett != GET_FLAG) {
switch (isett) { // check index
case GET_SETTINGS: switch (isett) {
#ifdef JUNGFRAUD #ifdef JUNGFRAUD
case DYNAMICGAIN: case DYNAMICGAIN:
case DYNAMICHG0: case DYNAMICHG0:
case FIXGAIN1: case FIXGAIN1:
case FIXGAIN2: case FIXGAIN2:
case FORCESWITCHG1: case FORCESWITCHG1:
case FORCESWITCHG2: case FORCESWITCHG2:
#elif GOTTHARDD #elif GOTTHARDD
case DYNAMICGAIN: case DYNAMICGAIN:
case HIGHGAIN: case HIGHGAIN:
case LOWGAIN: case LOWGAIN:
case MEDIUMGAIN: case MEDIUMGAIN:
case VERYHIGHGAIN: case VERYHIGHGAIN:
#elif GOTTHARD2D #elif GOTTHARD2D
case DYNAMICGAIN: case DYNAMICGAIN:
case FIXGAIN1: case FIXGAIN1:
case FIXGAIN2: case FIXGAIN2:
#elif MOENCHD #elif MOENCHD
case G1_HIGHGAIN: case G1_HIGHGAIN:
case G1_LOWGAIN: case G1_LOWGAIN:
case G2_HIGHCAP_HIGHGAIN: case G2_HIGHCAP_HIGHGAIN:
case G2_HIGHCAP_LOWGAIN: case G2_HIGHCAP_LOWGAIN:
case G2_LOWCAP_HIGHGAIN: case G2_LOWCAP_HIGHGAIN:
case G2_LOWCAP_LOWGAIN: case G2_LOWCAP_LOWGAIN:
case G4_HIGHGAIN: case G4_HIGHGAIN:
case G4_LOWGAIN: case G4_LOWGAIN:
#endif #endif
break; break;
default: default:
if (myDetectorType == EIGER) { if (myDetectorType == EIGER) {
ret = FAIL; ret = FAIL;
sprintf(mess, "Cannot set settings via SET_SETTINGS, use " sprintf(mess, "Cannot set settings via SET_SETTINGS, use "
"SET_MODULE (set threshold)\n"); "SET_MODULE (set threshold)\n");
LOG(logERROR, (mess)); LOG(logERROR, (mess));
} else } else
modeNotImplemented("Settings Index", (int)isett); modeNotImplemented("Settings Index", (int)isett);
break; break;
} }
// if index is okay, set & get if (ret == OK) {
if (ret == OK) { setSettings(isett);
retval = setSettings(isett); }
LOG(logDEBUG1, ("Settings: %d\n", retval)); }
retval = getSettings();
LOG(logDEBUG1, ("Settings: %d\n", retval));
if ((int)isett != GET_FLAG) {
validate((int)isett, (int)retval, "set settings", DEC); validate((int)isett, (int)retval, "set settings", DEC);
#if defined(JUNGFRAUD) || defined(GOTTHARDD) #if defined(JUNGFRAUD) || defined(GOTTHARDD)
// gotthard2 does not set default dacs // gotthard2 does not set default dacs
if (ret == OK && isett >= 0) { if (ret == OK) {
ret = setDefaultDacs(); ret = setDefaultDacs();
if (ret == FAIL) { if (ret == FAIL) {
strcpy(mess, "Could change settings, but could not set to " strcpy(mess, "Could change settings, but could not set to "

View File

@ -569,7 +569,7 @@ Result<int> Detector::getNumberofUDPInterfaces(Positions pos) const {
} }
void Detector::setNumberofUDPInterfaces(int n, Positions pos) { void Detector::setNumberofUDPInterfaces(int n, Positions pos) {
int previouslyClientStreaming = pimpl->enableDataStreamingToClient(); int previouslyClientStreaming = pimpl->getDataStreamingToClient();
bool useReceiver = getUseReceiverFlag().squash(false); bool useReceiver = getUseReceiverFlag().squash(false);
bool previouslyReceiverStreaming = false; bool previouslyReceiverStreaming = false;
if (useReceiver) { if (useReceiver) {
@ -583,8 +583,8 @@ void Detector::setNumberofUDPInterfaces(int n, Positions pos) {
} }
// redo the zmq sockets if enabled // redo the zmq sockets if enabled
if (previouslyClientStreaming != 0) { if (previouslyClientStreaming != 0) {
pimpl->enableDataStreamingToClient(0); pimpl->setDataStreamingToClient(false);
pimpl->enableDataStreamingToClient(1); pimpl->setDataStreamingToClient(true);
} }
if (previouslyReceiverStreaming) { if (previouslyReceiverStreaming) {
setRxZmqDataStream(false, pos); setRxZmqDataStream(false, pos);
@ -995,11 +995,11 @@ Result<IpAddr> Detector::getClientZmqIp(Positions pos) const {
} }
void Detector::setClientZmqIp(const IpAddr ip, Positions pos) { void Detector::setClientZmqIp(const IpAddr ip, Positions pos) {
int previouslyClientStreaming = pimpl->enableDataStreamingToClient(-1); int previouslyClientStreaming = pimpl->getDataStreamingToClient();
pimpl->Parallel(&Module::setClientStreamingIP, pos, ip); pimpl->Parallel(&Module::setClientStreamingIP, pos, ip);
if (previouslyClientStreaming != 0) { if (previouslyClientStreaming != 0) {
pimpl->enableDataStreamingToClient(0); pimpl->setDataStreamingToClient(false);
pimpl->enableDataStreamingToClient(1); pimpl->setDataStreamingToClient(true);
} }
} }

View File

@ -975,19 +975,18 @@ int DetectorImpl::InsertGapPixels(char *image, char *&gpImage, bool quadEnable,
return imagesize; return imagesize;
} }
bool DetectorImpl::enableDataStreamingToClient(int enable) { bool DetectorImpl::getDataStreamingToClient() { return client_downstream; }
if (enable >= 0) {
// destroy data threads void DetectorImpl::setDataStreamingToClient(bool enable) {
if (enable == 0) { // destroy data threads
createReceivingDataSockets(true); if (!enable) {
// create data threads createReceivingDataSockets(true);
} else { // create data threads
if (createReceivingDataSockets() == FAIL) { } else {
throw RuntimeError("Could not create data threads in client."); if (createReceivingDataSockets() == FAIL) {
} throw RuntimeError("Could not create data threads in client.");
} }
} }
return client_downstream;
} }
void DetectorImpl::registerAcquisitionFinishedCallback(void (*func)(double, int, void DetectorImpl::registerAcquisitionFinishedCallback(void (*func)(double, int,
@ -1003,7 +1002,7 @@ void DetectorImpl::registerDataCallback(void (*userCallback)(detectorData *,
void *pArg) { void *pArg) {
dataReady = userCallback; dataReady = userCallback;
pCallbackArg = pArg; pCallbackArg = pArg;
enableDataStreamingToClient(dataReady == nullptr ? 0 : 1); setDataStreamingToClient(dataReady == nullptr ? false : true);
} }
int DetectorImpl::acquire() { int DetectorImpl::acquire() {

View File

@ -238,12 +238,8 @@ class DetectorImpl : public virtual slsDetectorDefs {
/** [Eiger][Jungfrau] */ /** [Eiger][Jungfrau] */
void setGapPixelsinCallback(const bool enable); void setGapPixelsinCallback(const bool enable);
/** bool getDataStreamingToClient();
* Enable data streaming to client void setDataStreamingToClient(bool enable);
* @param enable 0 to disable, 1 to enable, -1 to get the value
* @returns data streaming to client enable
*/
bool enableDataStreamingToClient(int enable = -1);
/** /**
* register callback for accessing acquisition final data * register callback for accessing acquisition final data