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

View File

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

View File

@ -950,7 +950,6 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
return thisSettings;
// set settings
if (sett != GET_SETTINGS) {
u_int32_t addr = GAIN_REG;
// find conf gain value
@ -978,8 +977,7 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
break;
default:
LOG(logERROR,
("This settings is not defined for this detector %d\n",
(int)sett));
("This settings is not defined for this detector %d\n", (int)sett));
return -1;
}
// set conf gain
@ -987,7 +985,6 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
bus_w(addr, bus_r(addr) | confgain);
LOG(logINFO, ("\tGain Reg: 0x%x\n", bus_r(addr)));
thisSettings = sett;
}
return getSettings();
}

View File

@ -753,12 +753,11 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
return thisSettings;
// set settings
if (sett != GET_SETTINGS) {
switch (sett) {
case DYNAMICGAIN:
bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK);
LOG(logINFO, ("Set settings - Dyanmic Gain, DAQ Reg: 0x%x\n",
bus_r(DAQ_REG)));
LOG(logINFO,
("Set settings - Dyanmic Gain, DAQ Reg: 0x%x\n", bus_r(DAQ_REG)));
break;
case DYNAMICHG0:
bus_w(DAQ_REG, bus_r(DAQ_REG) & ~DAQ_SETTINGS_MSK);
@ -792,13 +791,11 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
break;
default:
LOG(logERROR,
("This settings is not defined for this detector %d\n",
(int)sett));
("This settings is not defined for this detector %d\n", (int)sett));
return -1;
}
thisSettings = sett;
}
return getSettings();
}

View File

@ -909,7 +909,6 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
return thisSettings;
// set settings
if (sett != GET_SETTINGS) {
switch (sett) {
case G1_HIGHGAIN:
LOG(logINFO, ("Set settings - G1_HIGHGAIN\n"));
@ -945,13 +944,11 @@ enum detectorSettings setSettings(enum detectorSettings sett) {
break;
default:
LOG(logERROR,
("This settings is not defined for this detector %d\n",
(int)sett));
("This settings is not defined for this detector %d\n", (int)sett));
return -1;
}
setPatternBitMask(DEFAULT_PATSETBIT);
thisSettings = sett;
}
return getSettings();
}

View File

@ -1157,7 +1157,6 @@ int setHighVoltage(int val) {
/* parameters - timing */
void setTiming(enum timingMode arg) {
if (arg != GET_TIMING_MODE) {
switch (arg) {
case AUTO_TIMING:
LOG(logINFO, ("Set Timing: Auto (Int. Trigger, Int. Gating)\n"));
@ -1189,7 +1188,6 @@ void setTiming(enum timingMode arg) {
return;
}
}
}
enum timingMode getTiming() {
uint32_t extTrigger = (bus_r(EXT_SIGNAL_REG) & EXT_SIGNAL_MSK);

View File

@ -574,15 +574,15 @@ int set_external_signal_flag(int file_des) {
int set_timing_mode(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
enum timingMode arg = GET_TIMING_MODE;
enum timingMode retval = GET_TIMING_MODE;
enum timingMode arg = AUTO_TIMING;
enum timingMode retval = AUTO_TIMING;
if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
return printSocketReadError();
LOG(logDEBUG1, ("Setting external communication mode to %d\n", arg));
// set
if ((arg != GET_TIMING_MODE) && (Server_VerifyLock() == OK)) {
if (((int)arg != GET_FLAG) && (Server_VerifyLock() == OK)) {
switch (arg) {
case AUTO_TIMING:
case TRIGGER_EXPOSURE:
@ -1501,7 +1501,6 @@ int set_module(int file_des) {
case VERYHIGHGAIN:
case VERYLOWGAIN:
#elif JUNGFRAUD
case GET_SETTINGS:
case DYNAMICGAIN:
case DYNAMICHG0:
case FIXGAIN1:
@ -1509,14 +1508,11 @@ int set_module(int file_des) {
case FORCESWITCHG1:
case FORCESWITCHG2:
#elif GOTTHARDD
case GET_SETTINGS:
case DYNAMICGAIN:
case HIGHGAIN:
case LOWGAIN:
case MEDIUMGAIN:
case VERYHIGHGAIN:
#elif MYTHEN3D
case GET_SETTINGS:
#endif
break;
default:
@ -1541,8 +1537,8 @@ int set_module(int file_des) {
int set_settings(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
enum detectorSettings isett = GET_SETTINGS;
enum detectorSettings retval = GET_SETTINGS;
enum detectorSettings isett = STANDARD;
enum detectorSettings retval = STANDARD;
if (receiveData(file_des, &isett, sizeof(isett), INT32) < 0)
return printSocketReadError();
@ -1553,11 +1549,11 @@ int set_settings(int file_des) {
LOG(logDEBUG1, ("Setting settings %d\n", isett));
// set & get
if ((isett == GET_SETTINGS) || (Server_VerifyLock() == OK)) {
if (((int)isett == GET_FLAG) || (Server_VerifyLock() == OK)) {
if ((int)isett != GET_FLAG) {
// check index
switch (isett) {
case GET_SETTINGS:
#ifdef JUNGFRAUD
case DYNAMICGAIN:
case DYNAMICHG0:
@ -1597,14 +1593,18 @@ int set_settings(int file_des) {
break;
}
// if index is okay, set & get
if (ret == OK) {
retval = setSettings(isett);
setSettings(isett);
}
}
retval = getSettings();
LOG(logDEBUG1, ("Settings: %d\n", retval));
if ((int)isett != GET_FLAG) {
validate((int)isett, (int)retval, "set settings", DEC);
#if defined(JUNGFRAUD) || defined(GOTTHARDD)
// gotthard2 does not set default dacs
if (ret == OK && isett >= 0) {
if (ret == OK) {
ret = setDefaultDacs();
if (ret == FAIL) {
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) {
int previouslyClientStreaming = pimpl->enableDataStreamingToClient();
int previouslyClientStreaming = pimpl->getDataStreamingToClient();
bool useReceiver = getUseReceiverFlag().squash(false);
bool previouslyReceiverStreaming = false;
if (useReceiver) {
@ -583,8 +583,8 @@ void Detector::setNumberofUDPInterfaces(int n, Positions pos) {
}
// redo the zmq sockets if enabled
if (previouslyClientStreaming != 0) {
pimpl->enableDataStreamingToClient(0);
pimpl->enableDataStreamingToClient(1);
pimpl->setDataStreamingToClient(false);
pimpl->setDataStreamingToClient(true);
}
if (previouslyReceiverStreaming) {
setRxZmqDataStream(false, pos);
@ -995,11 +995,11 @@ Result<IpAddr> Detector::getClientZmqIp(Positions pos) const {
}
void Detector::setClientZmqIp(const IpAddr ip, Positions pos) {
int previouslyClientStreaming = pimpl->enableDataStreamingToClient(-1);
int previouslyClientStreaming = pimpl->getDataStreamingToClient();
pimpl->Parallel(&Module::setClientStreamingIP, pos, ip);
if (previouslyClientStreaming != 0) {
pimpl->enableDataStreamingToClient(0);
pimpl->enableDataStreamingToClient(1);
pimpl->setDataStreamingToClient(false);
pimpl->setDataStreamingToClient(true);
}
}

View File

@ -975,10 +975,11 @@ int DetectorImpl::InsertGapPixels(char *image, char *&gpImage, bool quadEnable,
return imagesize;
}
bool DetectorImpl::enableDataStreamingToClient(int enable) {
if (enable >= 0) {
bool DetectorImpl::getDataStreamingToClient() { return client_downstream; }
void DetectorImpl::setDataStreamingToClient(bool enable) {
// destroy data threads
if (enable == 0) {
if (!enable) {
createReceivingDataSockets(true);
// create data threads
} else {
@ -987,8 +988,6 @@ bool DetectorImpl::enableDataStreamingToClient(int enable) {
}
}
}
return client_downstream;
}
void DetectorImpl::registerAcquisitionFinishedCallback(void (*func)(double, int,
void *),
@ -1003,7 +1002,7 @@ void DetectorImpl::registerDataCallback(void (*userCallback)(detectorData *,
void *pArg) {
dataReady = userCallback;
pCallbackArg = pArg;
enableDataStreamingToClient(dataReady == nullptr ? 0 : 1);
setDataStreamingToClient(dataReady == nullptr ? false : true);
}
int DetectorImpl::acquire() {

View File

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