mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 05:17:13 +02:00
ctb: removed setroi, instead using adcenablemask
This commit is contained in:
@ -100,6 +100,7 @@ void slsReceiverImplementation::InitializeMembers() {
|
||||
|
||||
//***acquisition parameters***
|
||||
roi.clear();
|
||||
adcEnableMask = BIT32_MASK;
|
||||
streamingFrequency = 0;
|
||||
streamingTimerInMs = DEFAULT_STREAMING_TIMER_IN_MS;
|
||||
dataStreamEnable = false;
|
||||
@ -289,6 +290,11 @@ std::vector<slsDetectorDefs::ROI> slsReceiverImplementation::getROI() const{
|
||||
return roi;
|
||||
}
|
||||
|
||||
uint32_t slsReceiverImplementation::getADCEnableMask() const{
|
||||
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
|
||||
return adcEnableMask;
|
||||
}
|
||||
|
||||
uint32_t slsReceiverImplementation::getStreamingFrequency() const{
|
||||
FILE_LOG(logDEBUG3) << __SHORT_AT__ << " called";
|
||||
return streamingFrequency;
|
||||
@ -463,7 +469,7 @@ int slsReceiverImplementation::setReadOutFlags(const readOutFlags f) {
|
||||
|
||||
// side effects
|
||||
if (myDetectorType == CHIPTESTBOARD) {
|
||||
generalData->setImageSize(roi, numberOfSamples, tengigaEnable, readoutFlags);
|
||||
generalData->setImageSize(adcEnableMask, numberOfSamples, tengigaEnable, readoutFlags);
|
||||
for (const auto& it : dataProcessor)
|
||||
it->SetPixelDimension();
|
||||
if (SetupFifoStructure() == FAIL)
|
||||
@ -749,7 +755,7 @@ int slsReceiverImplementation::setUDPSocketBufferSize(const int64_t s) {
|
||||
/***acquisition parameters***/
|
||||
int slsReceiverImplementation::setROI(const std::vector<slsDetectorDefs::ROI> new_roi) {
|
||||
bool change = false;
|
||||
if (roi.size() != new_roi.size())
|
||||
if (roi.size() != new_roi.size())
|
||||
change = true;
|
||||
else {
|
||||
for (size_t i = 0; i != new_roi.size(); ++i) {
|
||||
@ -770,13 +776,6 @@ int slsReceiverImplementation::setROI(const std::vector<slsDetectorDefs::ROI> ne
|
||||
generalData->SetROI(new_roi);
|
||||
framesPerFile = generalData->maxFramesPerFile;
|
||||
break;
|
||||
case MOENCH:
|
||||
generalData->setImageSize(roi, numberOfSamples, tengigaEnable);
|
||||
break;
|
||||
case CHIPTESTBOARD:
|
||||
generalData->setImageSize(roi, numberOfSamples, tengigaEnable,
|
||||
readoutFlags);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -806,6 +805,32 @@ int slsReceiverImplementation::setROI(const std::vector<slsDetectorDefs::ROI> ne
|
||||
return OK;
|
||||
}
|
||||
|
||||
int slsReceiverImplementation::setADCEnableMask(uint32_t mask) {
|
||||
if (adcEnableMask != mask) {
|
||||
adcEnableMask = mask;
|
||||
|
||||
switch (myDetectorType) {
|
||||
case MOENCH:
|
||||
generalData->setImageSize(mask, numberOfSamples, tengigaEnable);
|
||||
break;
|
||||
case CHIPTESTBOARD:
|
||||
generalData->setImageSize(mask, numberOfSamples, tengigaEnable, readoutFlags);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
for (const auto& it : dataProcessor)
|
||||
it->SetPixelDimension();
|
||||
if (SetupFifoStructure() == FAIL)
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
FILE_LOG(logINFO) << "ADC Enable Mask: 0x" << std::hex << adcEnableMask << std::dec;
|
||||
FILE_LOG (logINFO) << "Packets per Frame: " << (generalData->packetsPerFrame);
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
||||
int slsReceiverImplementation::setStreamingFrequency(const uint32_t freq) {
|
||||
if (streamingFrequency != freq) {
|
||||
@ -921,9 +946,9 @@ int slsReceiverImplementation::setNumberofSamples(const uint64_t i) {
|
||||
numberOfSamples = i;
|
||||
|
||||
if(myDetectorType == MOENCH) {
|
||||
generalData->setImageSize(roi, numberOfSamples, tengigaEnable);
|
||||
generalData->setImageSize(adcEnableMask, numberOfSamples, tengigaEnable);
|
||||
} else if(myDetectorType == CHIPTESTBOARD) {
|
||||
generalData->setImageSize(roi, numberOfSamples, tengigaEnable, readoutFlags);
|
||||
generalData->setImageSize(adcEnableMask, numberOfSamples, tengigaEnable, readoutFlags);
|
||||
}
|
||||
for (const auto& it : dataProcessor)
|
||||
it->SetPixelDimension();
|
||||
@ -962,10 +987,10 @@ int slsReceiverImplementation::setTenGigaEnable(const bool b) {
|
||||
generalData->SetTenGigaEnable(b,dynamicRange);
|
||||
break;
|
||||
case MOENCH:
|
||||
generalData->setImageSize(roi, numberOfSamples, tengigaEnable);
|
||||
generalData->setImageSize(adcEnableMask, numberOfSamples, tengigaEnable);
|
||||
break;
|
||||
case CHIPTESTBOARD:
|
||||
generalData->setImageSize(roi, numberOfSamples, tengigaEnable, readoutFlags);
|
||||
generalData->setImageSize(adcEnableMask, numberOfSamples, tengigaEnable, readoutFlags);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -227,6 +227,7 @@ int slsReceiverTCPIPInterface::function_table(){
|
||||
flist[F_RECEIVER_PADDING_ENABLE] = &slsReceiverTCPIPInterface::set_padding_enable;
|
||||
flist[F_RECEIVER_DEACTIVATED_PADDING_ENABLE] = &slsReceiverTCPIPInterface::set_deactivated_receiver_padding_enable;
|
||||
flist[F_RECEIVER_SET_READOUT_FLAGS] = &slsReceiverTCPIPInterface::set_readout_flags;
|
||||
flist[F_RECEIVER_SET_ADC_MASK] = &slsReceiverTCPIPInterface::set_adc_mask;
|
||||
|
||||
for (int i = NUM_DET_FUNCTIONS + 1; i < NUM_REC_FUNCTIONS ; i++) {
|
||||
FILE_LOG(logDEBUG1) << "function fnum: " << i << " (" <<
|
||||
@ -2034,3 +2035,36 @@ int slsReceiverTCPIPInterface::set_readout_flags() {
|
||||
}
|
||||
return interface->Server_SendResult(true, ret, &retval, sizeof(retval), mess);
|
||||
}
|
||||
|
||||
|
||||
|
||||
int slsReceiverTCPIPInterface::set_adc_mask() {
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
uint32_t arg = -1;
|
||||
uint32_t retval = -1;
|
||||
|
||||
// get args, return if socket crashed, ret is fail if receiver is not null
|
||||
if (interface->Server_ReceiveArg(ret, mess, &arg, sizeof(arg), true, receiver) == FAIL)
|
||||
return FAIL;
|
||||
|
||||
// base object not null
|
||||
else if (ret == OK) {
|
||||
// set
|
||||
// verify if receiver is unlocked and idle
|
||||
if (interface->Server_VerifyLockAndIdle(ret, mess, lockStatus, receiver->getStatus(), fnum) == OK) {
|
||||
FILE_LOG(logDEBUG1) << "Setting ADC enable mask: " << arg;
|
||||
receiver->setADCEnableMask(arg);
|
||||
}
|
||||
|
||||
// get
|
||||
retval = receiver->getADCEnableMask();
|
||||
if (ret == OK && retval != arg) {
|
||||
ret = FAIL;
|
||||
sprintf(mess, "Could not ADC enable mask. Set 0x%x, but read 0x%x\n", arg, retval);
|
||||
FILE_LOG(logERROR) << mess;
|
||||
}
|
||||
FILE_LOG(logDEBUG1) << "ADC enable mask retval: " << retval;
|
||||
}
|
||||
return interface->Server_SendResult(false, ret, &retval, sizeof(retval), mess);
|
||||
}
|
Reference in New Issue
Block a user