mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 01:58:00 +02:00
ctb 1g non blocking acquire (#555)
* allowing ctb and moench 1g to have non blocking acquisition also send data, refactoring wait for acquisition finished for all others
This commit is contained in:
@ -666,7 +666,14 @@ int softwareTrigger(int block);
|
||||
int startReadOut();
|
||||
#endif
|
||||
enum runStatus getRunStatus();
|
||||
void readFrame(int *ret, char *mess);
|
||||
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
||||
void readFrames(int *ret, char *mess);
|
||||
#endif
|
||||
#ifdef EIGERD
|
||||
void waitForAcquisitionEnd(int *ret, char *mess);
|
||||
#else
|
||||
void waitForAcquisitionEnd();
|
||||
#endif
|
||||
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
||||
void readandSendUDPFrames(int *ret, char *mess);
|
||||
void unsetFifoReadStrobes();
|
||||
|
@ -52,7 +52,6 @@ int start_acquisition(int);
|
||||
int stop_acquisition(int);
|
||||
int get_run_status(int);
|
||||
int start_and_read_all(int);
|
||||
int read_all(int);
|
||||
int get_num_frames(int);
|
||||
int set_num_frames(int);
|
||||
int get_num_triggers(int);
|
||||
@ -305,4 +304,4 @@ int get_digital_pulsing(int);
|
||||
int set_digital_pulsing(int);
|
||||
int get_module(int);
|
||||
int get_synchronization(int);
|
||||
int set_synchronization(int);
|
||||
int set_synchronization(int);
|
||||
|
@ -2010,15 +2010,30 @@ void *start_state_machine(void *arg) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
#if defined(CHIPTESTBOARDD) || defined(MOENCHD)
|
||||
readFrames(&ret, mess);
|
||||
if (ret == FAIL && scan) {
|
||||
sprintf(scanErrMessage, "Cannot scan at %d. ", scanSteps[i]);
|
||||
strcat(scanErrMessage, mess);
|
||||
sharedMemory_setScanStatus(ERROR);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
// blocking or scan
|
||||
if (*blocking || times > 1) {
|
||||
readFrame(&ret, mess);
|
||||
#ifdef EIGERD
|
||||
waitForAcquisitionEnd(&ret, mess);
|
||||
if (ret == FAIL && scan) {
|
||||
sprintf(scanErrMessage, "Cannot scan at %d. ", scanSteps[i]);
|
||||
strcat(scanErrMessage, mess);
|
||||
sharedMemory_setScanStatus(ERROR);
|
||||
break;
|
||||
}
|
||||
#else
|
||||
waitForAcquisitionEnd();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
// end of scan
|
||||
@ -2061,18 +2076,6 @@ int get_run_status(int file_des) {
|
||||
|
||||
int start_and_read_all(int file_des) { return acquire(1, file_des); }
|
||||
|
||||
int read_all(int file_des) {
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
|
||||
LOG(logDEBUG1, ("Reading all frames\n"));
|
||||
// only set
|
||||
if (Server_VerifyLock() == OK) {
|
||||
readFrame(&ret, mess);
|
||||
}
|
||||
return Server_SendResult(file_des, INT32, NULL, 0);
|
||||
}
|
||||
|
||||
int get_num_frames(int file_des) {
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
|
Reference in New Issue
Block a user