mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-11 12:27:14 +02:00
some changes
This commit is contained in:
@ -4030,27 +4030,29 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){
|
|||||||
std::cout<< "Timer " << index << " set to "<< thisDetector->timerValue[index] << "ns" << std::endl;
|
std::cout<< "Timer " << index << " set to "<< thisDetector->timerValue[index] << "ns" << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((thisDetector->myDetectorType==MYTHEN)&&(index==PROBES_NUMBER)) {
|
if(t!=-1){
|
||||||
setDynamicRange();
|
if ((thisDetector->myDetectorType==MYTHEN)&&(index==PROBES_NUMBER)) {
|
||||||
//cout << "Changing probes: data size = " << thisDetector->dataBytes <<endl;
|
setDynamicRange();
|
||||||
}
|
//cout << "Changing probes: data size = " << thisDetector->dataBytes <<endl;
|
||||||
|
}
|
||||||
|
|
||||||
/* set progress */
|
/* set progress */
|
||||||
if ((index==FRAME_NUMBER) || (index==CYCLES_NUMBER)) {
|
if ((index==FRAME_NUMBER) || (index==CYCLES_NUMBER)) {
|
||||||
setTotalProgress();
|
setTotalProgress();
|
||||||
}
|
}
|
||||||
|
|
||||||
//if eiger, rate corr on, a put statement, dr=32 &setting subexp or dr =16 & setting exptime, set ratecorr to update table
|
//if eiger, rate corr on, a put statement, dr=32 &setting subexp or dr =16 & setting exptime, set ratecorr to update table
|
||||||
double r;
|
double r;
|
||||||
if( (thisDetector->myDetectorType == EIGER) &&
|
if( (thisDetector->myDetectorType == EIGER) &&
|
||||||
getRateCorrection(r) &&
|
getRateCorrection(r) &&
|
||||||
(t>=0) &&
|
(t>=0) &&
|
||||||
|
|
||||||
(((index == SUBFRAME_ACQUISITION_TIME) && (thisDetector->dynamicRange == 32))||
|
(((index == SUBFRAME_ACQUISITION_TIME) && (thisDetector->dynamicRange == 32))||
|
||||||
((index == ACQUISITION_TIME) && (thisDetector->dynamicRange == 16)))
|
((index == ACQUISITION_TIME) && (thisDetector->dynamicRange == 16)))
|
||||||
|
|
||||||
&& (t>=0) && getRateCorrection(r)){
|
&& (t>=0) && getRateCorrection(r)){
|
||||||
setRateCorrection(r);
|
setRateCorrection(r);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//send acquisiton period/frame number to receiver
|
//send acquisiton period/frame number to receiver
|
||||||
@ -7063,8 +7065,11 @@ string slsDetector::setFilePath(string s) {
|
|||||||
if(stat(s.c_str(),&st)){
|
if(stat(s.c_str(),&st)){
|
||||||
std::cout << "path does not exist" << endl;
|
std::cout << "path does not exist" << endl;
|
||||||
setErrorMask((getErrorMask())|(FILE_PATH_DOES_NOT_EXIST));
|
setErrorMask((getErrorMask())|(FILE_PATH_DOES_NOT_EXIST));
|
||||||
}else
|
}else{
|
||||||
|
pthread_mutex_lock(&ms);
|
||||||
fileIO::setFilePath(s);
|
fileIO::setFilePath(s);
|
||||||
|
pthread_mutex_unlock(&ms);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7076,8 +7081,11 @@ string slsDetector::setFilePath(string s) {
|
|||||||
if (connectData() == OK)
|
if (connectData() == OK)
|
||||||
ret=thisReceiver->sendString(fnum,retval,arg);
|
ret=thisReceiver->sendString(fnum,retval,arg);
|
||||||
disconnectData();
|
disconnectData();
|
||||||
if(ret!=FAIL)
|
if(ret!=FAIL){
|
||||||
|
pthread_mutex_lock(&ms);
|
||||||
fileIO::setFilePath(string(retval));
|
fileIO::setFilePath(string(retval));
|
||||||
|
pthread_mutex_unlock(&ms);
|
||||||
|
}
|
||||||
else if(!s.empty()){
|
else if(!s.empty()){
|
||||||
std::cout << "path does not exist" << endl;
|
std::cout << "path does not exist" << endl;
|
||||||
setErrorMask((getErrorMask())|(FILE_PATH_DOES_NOT_EXIST));
|
setErrorMask((getErrorMask())|(FILE_PATH_DOES_NOT_EXIST));
|
||||||
@ -7086,7 +7094,11 @@ string slsDetector::setFilePath(string s) {
|
|||||||
updateReceiver();
|
updateReceiver();
|
||||||
}
|
}
|
||||||
|
|
||||||
return fileIO::getFilePath();
|
pthread_mutex_lock(&ms);
|
||||||
|
s = fileIO::getFilePath();
|
||||||
|
pthread_mutex_unlock(&ms);
|
||||||
|
|
||||||
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -7443,16 +7455,22 @@ int slsDetector::updateReceiverNoWait() {
|
|||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
cout << "Updating receiver last modified by " << lastClientIP << std::endl;
|
cout << "Updating receiver last modified by " << lastClientIP << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
n = dataSocket->ReceiveDataOnly(&ind,sizeof(ind));
|
n = dataSocket->ReceiveDataOnly(&ind,sizeof(ind));
|
||||||
pthread_mutex_lock(&ms);
|
pthread_mutex_lock(&ms);
|
||||||
fileIO::setFileIndex(ind);
|
fileIO::setFileIndex(ind);
|
||||||
pthread_mutex_unlock(&ms);
|
pthread_mutex_unlock(&ms);
|
||||||
|
|
||||||
n = dataSocket->ReceiveDataOnly(path,MAX_STR_LENGTH);
|
n = dataSocket->ReceiveDataOnly(path,MAX_STR_LENGTH);
|
||||||
|
pthread_mutex_lock(&ms);
|
||||||
fileIO::setFilePath(path);
|
fileIO::setFilePath(path);
|
||||||
|
pthread_mutex_unlock(&ms);
|
||||||
|
|
||||||
n = dataSocket->ReceiveDataOnly(path,MAX_STR_LENGTH);
|
n = dataSocket->ReceiveDataOnly(path,MAX_STR_LENGTH);
|
||||||
pthread_mutex_lock(&ms);
|
pthread_mutex_lock(&ms);
|
||||||
fileIO::setFileName(path);
|
fileIO::setFileName(path);
|
||||||
pthread_mutex_unlock(&ms);
|
pthread_mutex_unlock(&ms);
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -7603,7 +7621,9 @@ int slsDetector::setFrameIndex(int index){
|
|||||||
int arg = index;
|
int arg = index;
|
||||||
|
|
||||||
if(thisDetector->receiverOnlineFlag==OFFLINE_FLAG){
|
if(thisDetector->receiverOnlineFlag==OFFLINE_FLAG){
|
||||||
fileIO::setFrameIndex(index);
|
pthread_mutex_lock(&ms);
|
||||||
|
fileIO::setFrameIndex(index);
|
||||||
|
pthread_mutex_unlock(&ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){
|
else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){
|
||||||
@ -7612,14 +7632,20 @@ int slsDetector::setFrameIndex(int index){
|
|||||||
#endif
|
#endif
|
||||||
if (connectData() == OK)
|
if (connectData() == OK)
|
||||||
ret=thisReceiver->sendInt(fnum,retval,arg);
|
ret=thisReceiver->sendInt(fnum,retval,arg);
|
||||||
disconnectData();
|
disconnectData();
|
||||||
if(ret!=FAIL)
|
if(ret!=FAIL){
|
||||||
|
pthread_mutex_lock(&ms);
|
||||||
fileIO::setFrameIndex(retval);
|
fileIO::setFrameIndex(retval);
|
||||||
|
pthread_mutex_unlock(&ms);
|
||||||
|
}
|
||||||
if(ret==FORCE_UPDATE)
|
if(ret==FORCE_UPDATE)
|
||||||
updateReceiver();
|
updateReceiver();
|
||||||
}
|
}
|
||||||
|
pthread_mutex_lock(&ms);
|
||||||
|
retval = fileIO::getFrameIndex();
|
||||||
|
pthread_mutex_unlock(&ms);
|
||||||
|
|
||||||
return fileIO::getFrameIndex();
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -146,18 +146,17 @@ int slsDetectorUtils::acquire(int delflag){
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(receiver){
|
if(receiver){
|
||||||
|
pthread_mutex_lock(&mg);
|
||||||
if(getReceiverStatus()!=IDLE)
|
if(getReceiverStatus()!=IDLE)
|
||||||
stopReceiver();
|
stopReceiver();
|
||||||
if(setReceiverOnline()==OFFLINE_FLAG)
|
|
||||||
*stoppedFlag=1;
|
|
||||||
//multi detectors shouldnt have different receiver read frequencies enabled/disabled
|
//multi detectors shouldnt have different receiver read frequencies enabled/disabled
|
||||||
if(setReadReceiverFrequency(0) < 0){
|
if(setReadReceiverFrequency(0) < 0){
|
||||||
std::cout << "Error: The receiver read frequency is invalid:" << setReadReceiverFrequency(0) << std::endl;
|
std::cout << "Error: The receiver read frequency is invalid:" << setReadReceiverFrequency(0) << std::endl;
|
||||||
*stoppedFlag=1;
|
*stoppedFlag=1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(setReceiverOnline()==OFFLINE_FLAG)
|
if(setReceiverOnline()==OFFLINE_FLAG)
|
||||||
*stoppedFlag=1;
|
*stoppedFlag=1;
|
||||||
|
pthread_mutex_unlock(&mg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -395,7 +395,9 @@ int postProcessing::fillBadChannelMask() {
|
|||||||
|
|
||||||
|
|
||||||
void* postProcessing::processData(int delflag) {
|
void* postProcessing::processData(int delflag) {
|
||||||
|
pthread_mutex_lock(&mg);
|
||||||
if(setReceiverOnline()==OFFLINE_FLAG){
|
if(setReceiverOnline()==OFFLINE_FLAG){
|
||||||
|
pthread_mutex_unlock(&mg);
|
||||||
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
std::cout<< " ??????????????????????????????????????????? processing data - threaded mode " << *threadedProcessing << endl;
|
std::cout<< " ??????????????????????????????????????????? processing data - threaded mode " << *threadedProcessing << endl;
|
||||||
@ -482,6 +484,7 @@ void* postProcessing::processData(int delflag) {
|
|||||||
}
|
}
|
||||||
//receiver
|
//receiver
|
||||||
else{
|
else{
|
||||||
|
pthread_mutex_unlock(&mg);
|
||||||
//cprintf(RED,"In post processing threads\n");
|
//cprintf(RED,"In post processing threads\n");
|
||||||
|
|
||||||
|
|
||||||
@ -493,9 +496,9 @@ void* postProcessing::processData(int delflag) {
|
|||||||
else{
|
else{
|
||||||
int caught = -1;
|
int caught = -1;
|
||||||
while(true){
|
while(true){
|
||||||
cout.flush();
|
//cout.flush();
|
||||||
cout<<flush;
|
//cout<<flush;
|
||||||
usleep(20000); //20ms need this else connecting error to receiver (too fast)
|
usleep(40000); //20ms need this else connecting error to receiver (too fast)
|
||||||
|
|
||||||
if (checkJoinThread()){
|
if (checkJoinThread()){
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user