mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-19 08:17:13 +02:00
eiger server: transmitting (data) status
This commit is contained in:
12
RELEASE.txt
12
RELEASE.txt
@ -17,14 +17,15 @@ This document describes the differences between 4.2.0 and 4.1.1 releases.
|
|||||||
1. Topics Concerning
|
1. Topics Concerning
|
||||||
====================
|
====================
|
||||||
|
|
||||||
|
- (Eiger) Additional status: Transmitting
|
||||||
- (Eiger) Change in default vcal dac value
|
- (Eiger) Change in default vcal dac value
|
||||||
- (Eiger) Deactivate a module
|
- (Eiger) Deactivate a module
|
||||||
- (Eiger) Setting all trimbits argument check
|
- (Eiger) Setting all trimbits argument check
|
||||||
- (Eiger client) Dynamic range change effect on clock divider
|
- (Eiger client) Dynamic range change effect on clock divider
|
||||||
- (Eiger Receiver) Different rx_fifodepth defaults
|
- (Eiger) Different rx_fifodepth defaults
|
||||||
|
- (Receiver) performance (memory allocation and alignment, file buffering)
|
||||||
- (Receiver) rx_fifodepth has a higher range
|
- (Receiver) rx_fifodepth has a higher range
|
||||||
- (Receiver) subperiod in master file
|
- (Receiver) subperiod in master file
|
||||||
- (Receiver) performance (memory allocation and alignment, file buffering)
|
|
||||||
- (Package) Removed warnings including memory overlap copy
|
- (Package) Removed warnings including memory overlap copy
|
||||||
- (Users) Added setflippeddatax to users class
|
- (Users) Added setflippeddatax to users class
|
||||||
- (Zmq) Client data streaming (Client data call back)
|
- (Zmq) Client data streaming (Client data call back)
|
||||||
@ -57,6 +58,13 @@ This document describes the differences between 4.2.0 and 4.1.1 releases.
|
|||||||
to full speed, whereas dynamic range of 32 still changes the clock divider to
|
to full speed, whereas dynamic range of 32 still changes the clock divider to
|
||||||
quarter speed.
|
quarter speed.
|
||||||
|
|
||||||
|
Detector Server (Eiger)
|
||||||
|
-----------------------
|
||||||
|
1. After acquiring, if the detector is still streaming out data, then the
|
||||||
|
status is Trasnmitting (command line: 'data'). Only after this process,
|
||||||
|
will it become idle. Previously, sls_detector_acquire waited for
|
||||||
|
end of data streaming before returning. It will continue to do so.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3. Resolved Issues
|
3. Resolved Issues
|
||||||
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv4.2.0.24.0
|
|
1
serverBin/eigerDetectorServerv4.2.0.24.1
Symbolic link
1
serverBin/eigerDetectorServerv4.2.0.24.1
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv4.2.0.24.1
|
@ -180,131 +180,103 @@ void Beb_GetModuleConfiguration(int* master, int* top, int* normal){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Beb_IsTransmitting(int* retval, int tengiga, int waitForDelay) {
|
||||||
|
|
||||||
void Beb_EndofDataSend(int tengiga){
|
|
||||||
//mapping new memory
|
//mapping new memory
|
||||||
u_int32_t* csp0base=0;
|
u_int32_t* csp0base = 0;
|
||||||
int l_framepktLsbcounter, l_framepktMsbcounter, l_txndelaycounter, l_framedelaycounter;
|
int addr_l_txndelaycounter = 0, addr_l_framedelaycounter = 0;
|
||||||
int r_framepktLsbcounter, r_framepktMsbcounter, r_txndelaycounter, r_framedelaycounter;
|
int addr_r_txndelaycounter = 0, addr_r_framedelaycounter = 0;
|
||||||
int l_framepktLsbcounter_new, l_framepktMsbcounter_new, l_txndelaycounter_new, l_framedelaycounter_new;
|
int addr_l_framepktLsbcounter = 0, addr_l_framepktMsbcounter = 0;
|
||||||
int r_framepktLsbcounter_new, r_framepktMsbcounter_new, r_txndelaycounter_new, r_framedelaycounter_new;
|
int addr_r_framepktLsbcounter = 0, addr_r_framepktMsbcounter = 0;
|
||||||
int addr_l_framepktLsbcounter, addr_l_framepktMsbcounter, addr_l_txndelaycounter, addr_l_framedelaycounter;
|
if (tengiga) {
|
||||||
int addr_r_framepktLsbcounter, addr_r_framepktMsbcounter, addr_r_txndelaycounter, addr_r_framedelaycounter;
|
|
||||||
|
|
||||||
switch(tengiga){
|
|
||||||
case 0:
|
|
||||||
addr_l_framepktLsbcounter = ONE_GIGA_LEFT_INDEX_LSB_COUNTER;
|
|
||||||
addr_l_framepktMsbcounter = ONE_GIGA_LEFT_INDEX_MSB_COUNTER;
|
|
||||||
addr_l_txndelaycounter = ONE_GIGA_LEFT_TXN_DELAY_COUNTER;
|
|
||||||
addr_l_framedelaycounter = ONE_GIGA_LEFT_FRAME_DELAY_COUNTER;
|
|
||||||
addr_r_framepktLsbcounter = ONE_GIGA_RIGHT_INDEX_LSB_COUNTER;
|
|
||||||
addr_r_framepktMsbcounter = ONE_GIGA_RIGHT_INDEX_MSB_COUNTER;
|
|
||||||
addr_r_txndelaycounter = ONE_GIGA_RIGHT_TXN_DELAY_COUNTER;
|
|
||||||
addr_r_framedelaycounter = ONE_GIGA_RIGHT_FRAME_DELAY_COUNTER;
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
addr_l_framepktLsbcounter = TEN_GIGA_LEFT_INDEX_LSB_COUNTER;
|
|
||||||
addr_l_framepktMsbcounter = TEN_GIGA_LEFT_INDEX_MSB_COUNTER;
|
|
||||||
addr_l_txndelaycounter = TEN_GIGA_LEFT_TXN_DELAY_COUNTER;
|
addr_l_txndelaycounter = TEN_GIGA_LEFT_TXN_DELAY_COUNTER;
|
||||||
addr_l_framedelaycounter = TEN_GIGA_LEFT_FRAME_DELAY_COUNTER;
|
addr_l_framedelaycounter = TEN_GIGA_LEFT_FRAME_DELAY_COUNTER;
|
||||||
addr_r_framepktLsbcounter = TEN_GIGA_RIGHT_INDEX_LSB_COUNTER;
|
|
||||||
addr_r_framepktMsbcounter = TEN_GIGA_RIGHT_INDEX_MSB_COUNTER;
|
|
||||||
addr_r_txndelaycounter = TEN_GIGA_RIGHT_TXN_DELAY_COUNTER;
|
addr_r_txndelaycounter = TEN_GIGA_RIGHT_TXN_DELAY_COUNTER;
|
||||||
addr_r_framedelaycounter = TEN_GIGA_RIGHT_FRAME_DELAY_COUNTER;
|
addr_r_framedelaycounter = TEN_GIGA_RIGHT_FRAME_DELAY_COUNTER;
|
||||||
break;
|
addr_l_framepktLsbcounter = TEN_GIGA_LEFT_INDEX_LSB_COUNTER;
|
||||||
|
addr_l_framepktMsbcounter = TEN_GIGA_LEFT_INDEX_MSB_COUNTER;
|
||||||
|
addr_r_framepktLsbcounter = TEN_GIGA_RIGHT_INDEX_LSB_COUNTER;
|
||||||
|
addr_r_framepktMsbcounter = TEN_GIGA_RIGHT_INDEX_MSB_COUNTER;
|
||||||
|
} else {
|
||||||
|
addr_l_txndelaycounter = ONE_GIGA_LEFT_TXN_DELAY_COUNTER;
|
||||||
|
addr_l_framedelaycounter = ONE_GIGA_LEFT_FRAME_DELAY_COUNTER;
|
||||||
|
addr_r_txndelaycounter = ONE_GIGA_RIGHT_TXN_DELAY_COUNTER;
|
||||||
|
addr_r_framedelaycounter = ONE_GIGA_RIGHT_FRAME_DELAY_COUNTER;
|
||||||
|
addr_l_framepktLsbcounter = ONE_GIGA_LEFT_INDEX_LSB_COUNTER;
|
||||||
|
addr_l_framepktMsbcounter = ONE_GIGA_LEFT_INDEX_MSB_COUNTER;
|
||||||
|
addr_r_framepktLsbcounter = ONE_GIGA_RIGHT_INDEX_LSB_COUNTER;
|
||||||
|
addr_r_framepktMsbcounter = ONE_GIGA_RIGHT_INDEX_MSB_COUNTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//open file pointer
|
//open file pointer
|
||||||
int fd = Beb_open(&csp0base,XPAR_COUNTER_BASEADDR);
|
int fd = Beb_open(&csp0base,XPAR_COUNTER_BASEADDR);
|
||||||
if(fd < 0){
|
if(fd < 0){
|
||||||
cprintf(BG_RED,"Delay read counter fail\n");
|
cprintf(BG_RED,"Could not read Beb Delay read counter\n");
|
||||||
return;
|
return FAIL;
|
||||||
}else{
|
} else {
|
||||||
//read data first time
|
//read data first time
|
||||||
l_framepktLsbcounter = Beb_Read32(csp0base, addr_l_framepktLsbcounter);
|
int l_txndelaycounter = Beb_Read32(csp0base, addr_l_txndelaycounter);
|
||||||
l_framepktMsbcounter = Beb_Read32(csp0base, addr_l_framepktMsbcounter);
|
int l_framedelaycounter = Beb_Read32(csp0base, addr_l_framedelaycounter);
|
||||||
l_txndelaycounter = Beb_Read32(csp0base, addr_l_txndelaycounter);
|
int r_txndelaycounter = Beb_Read32(csp0base, addr_r_txndelaycounter);
|
||||||
l_framedelaycounter = Beb_Read32(csp0base, addr_l_framedelaycounter);
|
int r_framedelaycounter = Beb_Read32(csp0base, addr_r_framedelaycounter);
|
||||||
r_framepktLsbcounter = Beb_Read32(csp0base, addr_r_framepktLsbcounter);
|
int l_framepktLsbcounter = Beb_Read32(csp0base, addr_l_framepktLsbcounter);
|
||||||
r_framepktMsbcounter = Beb_Read32(csp0base, addr_r_framepktMsbcounter);
|
int l_framepktMsbcounter = Beb_Read32(csp0base, addr_l_framepktMsbcounter);
|
||||||
r_txndelaycounter = Beb_Read32(csp0base, addr_r_txndelaycounter);
|
int r_framepktLsbcounter = Beb_Read32(csp0base, addr_r_framepktLsbcounter);
|
||||||
r_framedelaycounter = Beb_Read32(csp0base, addr_r_framedelaycounter);
|
int r_framepktMsbcounter = Beb_Read32(csp0base, addr_r_framepktMsbcounter);
|
||||||
//#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
printf("\nLeft\n"
|
printf("\nFirst Read:\n"
|
||||||
"FramepacketLsbcounter: %d\n"
|
"\tLeft [Txndelaycounter:%d, Framedelaycounter:%d]\n"
|
||||||
"FramepacketMsbcounter: %d\n"
|
"\tRight [Txndelaycounter:%d, Framedelaycounter:%d]\n",
|
||||||
"Txndelaycounter:%d\n"
|
"\tLeft [FramepacketLsbcounter:%d, FramepacketMsbcounter:%d]\n"
|
||||||
"Framedelaycounter:%d\n"
|
"\tRight [FramepacketLsbcounter:%d, FramepacketMsbcounter:%d]\n",
|
||||||
"\nRight\n"
|
l_txndelaycounter,l_framedelaycounter, r_txndelaycounter,r_framedelaycounter,
|
||||||
"FramepacketLsbcounter: %d\n"
|
l_framepktLsbcounter, l_framepktMsbcounter, r_framepktLsbcounter, r_framepktMsbcounter);
|
||||||
"FramepacketMsbcounter: %d\n"
|
#endif
|
||||||
"Txndelaycounter:%d\n"
|
// wait for max counter delay
|
||||||
"Framedelaycounter:%d\n\n",
|
if (waitForDelay) {
|
||||||
l_framepktLsbcounter,l_framepktMsbcounter,l_txndelaycounter,l_framedelaycounter,
|
int maxtimer = (MAX(MAX(l_txndelaycounter,l_framedelaycounter),MAX(r_txndelaycounter,r_framedelaycounter))) / 100; // counter values in 10 ns
|
||||||
r_framepktLsbcounter,r_framepktMsbcounter,r_txndelaycounter,r_framedelaycounter);
|
printf("Will wait for %d us\n", maxtimer);
|
||||||
//#endif
|
usleep (maxtimer);
|
||||||
|
}
|
||||||
//keep comparing with previous values
|
// wait for 1 ms
|
||||||
int maxtimer;
|
else {
|
||||||
while(1){
|
printf("Will wait for 1 ms\n");
|
||||||
maxtimer = MAX(MAX(l_txndelaycounter,l_framedelaycounter),MAX(r_txndelaycounter,r_framedelaycounter));
|
usleep (1 * 1000);
|
||||||
maxtimer /= 100;
|
|
||||||
printf("Will wait for %d us\n",maxtimer);
|
|
||||||
usleep(maxtimer);
|
|
||||||
|
|
||||||
//read new values
|
|
||||||
l_framepktLsbcounter_new = Beb_Read32(csp0base, addr_l_framepktLsbcounter);
|
|
||||||
l_framepktMsbcounter_new = Beb_Read32(csp0base, addr_l_framepktMsbcounter);
|
|
||||||
l_txndelaycounter_new = Beb_Read32(csp0base, addr_l_txndelaycounter);
|
|
||||||
l_framedelaycounter_new = Beb_Read32(csp0base, addr_l_framedelaycounter);
|
|
||||||
r_framepktLsbcounter_new = Beb_Read32(csp0base, addr_r_framepktLsbcounter);
|
|
||||||
r_framepktMsbcounter_new = Beb_Read32(csp0base, addr_r_framepktMsbcounter);
|
|
||||||
r_txndelaycounter_new = Beb_Read32(csp0base, addr_r_txndelaycounter);
|
|
||||||
r_framedelaycounter_new = Beb_Read32(csp0base, addr_r_framedelaycounter);
|
|
||||||
//#ifdef VERBOSE
|
|
||||||
printf("\nLeft\n"
|
|
||||||
"FramepacketLsbcounter: %d\n"
|
|
||||||
"FramepacketMsbcounter: %d\n"
|
|
||||||
"Txndelaycounter:%d\n"
|
|
||||||
"Framedelaycounter:%d\n"
|
|
||||||
"\nRight\n"
|
|
||||||
"FramepacketLsbcounter: %d\n"
|
|
||||||
"FramepacketMsbcounter: %d\n"
|
|
||||||
"Txndelaycounter:%d\n"
|
|
||||||
"Framedelaycounter:%d\n\n",
|
|
||||||
l_framepktLsbcounter_new,l_framepktMsbcounter_new,l_txndelaycounter_new,l_framedelaycounter_new,
|
|
||||||
r_framepktLsbcounter_new,r_framepktMsbcounter_new,r_txndelaycounter_new,r_framedelaycounter_new);
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
if ((l_framepktLsbcounter == l_framepktLsbcounter_new) &&
|
|
||||||
(l_framepktMsbcounter == l_framepktMsbcounter_new) &&
|
|
||||||
(r_framepktLsbcounter == r_framepktLsbcounter_new) &&
|
|
||||||
(r_framepktMsbcounter == r_framepktMsbcounter_new))
|
|
||||||
break;
|
|
||||||
|
|
||||||
//update old values
|
|
||||||
l_framepktLsbcounter = l_framepktLsbcounter_new;
|
|
||||||
l_framepktMsbcounter = l_framepktMsbcounter_new;
|
|
||||||
l_txndelaycounter = l_txndelaycounter_new;
|
|
||||||
l_framedelaycounter = l_framedelaycounter_new;
|
|
||||||
r_framepktLsbcounter = r_framepktLsbcounter_new;
|
|
||||||
r_framepktMsbcounter = r_framepktMsbcounter_new;
|
|
||||||
r_txndelaycounter = r_txndelaycounter_new;
|
|
||||||
r_framedelaycounter = r_framedelaycounter_new;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Detector has send all data\n");
|
// read values again
|
||||||
|
int l_txndelaycounter2 = Beb_Read32(csp0base, addr_l_txndelaycounter);
|
||||||
|
int l_framedelaycounter2 = Beb_Read32(csp0base, addr_l_framedelaycounter);
|
||||||
|
int r_txndelaycounter2 = Beb_Read32(csp0base, addr_r_txndelaycounter);
|
||||||
|
int r_framedelaycounter2 = Beb_Read32(csp0base, addr_r_framedelaycounter);
|
||||||
|
int l_framepktLsbcounter2 = Beb_Read32(csp0base, addr_l_framepktLsbcounter);
|
||||||
|
int l_framepktMsbcounter2 = Beb_Read32(csp0base, addr_l_framepktMsbcounter);
|
||||||
|
int r_framepktLsbcounter2 = Beb_Read32(csp0base, addr_r_framepktLsbcounter);
|
||||||
|
int r_framepktMsbcounter2 = Beb_Read32(csp0base, addr_r_framepktMsbcounter);
|
||||||
|
#ifdef VERBOSE
|
||||||
|
printf("\nSecond Read:\n"
|
||||||
|
"\tLeft [Txndelaycounter:%d, Framedelaycounter:%d]\n"
|
||||||
|
"\tRight [Txndelaycounter:%d, Framedelaycounter:%d]\n",
|
||||||
|
"\tLeft [FramepacketLsbcounter:%d, FramepacketMsbcounter:%d]\n"
|
||||||
|
"\tRight [FramepacketLsbcounter:%d, FramepacketMsbcounter:%d]\n",
|
||||||
|
l_txndelaycounter2,l_framedelaycounter2, r_txndelaycounter2,r_framedelaycounter2,
|
||||||
|
l_framepktLsbcounter2, l_framepktMsbcounter2, r_framepktLsbcounter2, r_framepktMsbcounter2);
|
||||||
|
#endif
|
||||||
|
// any change in values, it is still transmitting
|
||||||
|
if (l_txndelaycounter != l_txndelaycounter2 || l_framedelaycounter != l_framedelaycounter2 ||
|
||||||
|
r_txndelaycounter != r_txndelaycounter2 || r_framedelaycounter != r_framedelaycounter2 ||
|
||||||
|
l_framepktLsbcounter != l_framepktLsbcounter2 || l_framepktMsbcounter != l_framepktMsbcounter2 ||
|
||||||
|
r_framepktLsbcounter != r_framepktLsbcounter2 || r_framepktMsbcounter != r_framepktMsbcounter2) {
|
||||||
|
*retval = 1;
|
||||||
|
} else {
|
||||||
|
*retval = 0;
|
||||||
|
}
|
||||||
//close file pointer
|
//close file pointer
|
||||||
Beb_close(fd,csp0base);
|
Beb_close(fd,csp0base);
|
||||||
}
|
}
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* do not work at the moment */
|
/* do not work at the moment */
|
||||||
int Beb_SetMasterViaSoftware(){
|
int Beb_SetMasterViaSoftware(){
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ struct BebInfo{
|
|||||||
|
|
||||||
|
|
||||||
void Beb_GetModuleConfiguration(int* master, int* top, int* normal);
|
void Beb_GetModuleConfiguration(int* master, int* top, int* normal);
|
||||||
void Beb_EndofDataSend(int tengiga);
|
int Beb_IsTransmitting(int* retval, int tengiga, int waitForDelay);
|
||||||
|
|
||||||
int Beb_SetMasterViaSoftware();
|
int Beb_SetMasterViaSoftware();
|
||||||
int Beb_SetSlaveViaSoftware();
|
int Beb_SetSlaveViaSoftware();
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,9 +1,9 @@
|
|||||||
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
|
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
|
||||||
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||||
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||||
Repsitory UUID: 9649982932b2db75b9bf720ce4a13e7cdb059430
|
Repsitory UUID: fae884e65851d15bd0ca541956b3263cf79bc1b2
|
||||||
Revision: 361
|
Revision: 362
|
||||||
Branch: 4.1.2-rc
|
Branch: 4.2.0-rc
|
||||||
Last Changed Author: Gemma_Tinti
|
Last Changed Author: Dhanya_Thattil
|
||||||
Last Changed Rev: 4157
|
Last Changed Rev: 4166
|
||||||
Last Changed Date: 2020-03-09 18:18:12.000000001 +0100 ./xparameters.h
|
Last Changed Date: 2020-04-03 10:42:36.000000001 +0200 ./Beb.h
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
||||||
#define GITREPUUID "9649982932b2db75b9bf720ce4a13e7cdb059430"
|
#define GITREPUUID "fae884e65851d15bd0ca541956b3263cf79bc1b2"
|
||||||
#define GITAUTH "Gemma_Tinti"
|
#define GITAUTH "Dhanya_Thattil"
|
||||||
#define GITREV 0x4157
|
#define GITREV 0x4166
|
||||||
#define GITDATE 0x20200309
|
#define GITDATE 0x20200403
|
||||||
#define GITBRANCH "4.1.2-rc"
|
#define GITBRANCH "4.2.0-rc"
|
||||||
|
@ -1737,19 +1737,23 @@ enum runStatus getRunStatus(){
|
|||||||
#else
|
#else
|
||||||
|
|
||||||
int i = Feb_Control_AcquisitionInProgress();
|
int i = Feb_Control_AcquisitionInProgress();
|
||||||
switch (i) {
|
if (i == STATUS_ERROR) {
|
||||||
case STATUS_ERROR:
|
|
||||||
printf("Status: ERROR reading status register\n");
|
printf("Status: ERROR reading status register\n");
|
||||||
return ERROR;
|
return ERROR;
|
||||||
case STATUS_IDLE:
|
} else if (i == STATUS_IDLE) {
|
||||||
|
int isTransmitting = 0;
|
||||||
|
if (Beb_IsTransmitting(&isTransmitting, send_to_ten_gig, 0) == FAIL) {
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
if (isTransmitting) {
|
||||||
|
printf("Status: TRANSMITTING\n");
|
||||||
|
return TRANSMITTING;
|
||||||
|
}
|
||||||
printf("Status: IDLE\n");
|
printf("Status: IDLE\n");
|
||||||
return IDLE;
|
return IDLE;
|
||||||
default:
|
|
||||||
printf("Status: RUNNING...\n");
|
|
||||||
return RUNNING;
|
|
||||||
}
|
}
|
||||||
|
printf("Status: RUNNING...\n");
|
||||||
return IDLE;
|
return RUNNING;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1783,8 +1787,18 @@ void readFrame(int *ret, char *mess){
|
|||||||
}
|
}
|
||||||
|
|
||||||
//wait for detector to send
|
//wait for detector to send
|
||||||
Beb_EndofDataSend(send_to_ten_gig);
|
int isTransmitting = 1;
|
||||||
|
while (isTransmitting) {
|
||||||
|
if (Beb_IsTransmitting(&isTransmitting, send_to_ten_gig, 1) == FAIL) {
|
||||||
|
strcpy(mess,"Could not read delay counters\n");
|
||||||
|
*ret = (int)FAIL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (isTransmitting) {
|
||||||
|
printf("Transmitting...\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("Detector has sent all data\n");
|
||||||
|
|
||||||
printf("*****Done Waiting...\n");
|
printf("*****Done Waiting...\n");
|
||||||
*ret = (int)FINISHED;
|
*ret = (int)FINISHED;
|
||||||
|
Reference in New Issue
Block a user