17,7 → 17,7 |
static int panelHandle; |
|
static unsigned int chandle = 0; |
static int tfID; |
//static int tfID; |
int pfreq; |
static int plothandle[2]= {0,0}; |
static int tdcplothandle[2]= {0,0}; |
31,6 → 31,7 |
float timebins[0XFFFF]; |
|
FILE *foutput; |
int outwaveforms=0; |
|
static CmtThreadPoolHandle poolHandle = 0; |
int ctrl_c=0; |
189,15 → 190,17 |
return 0; |
} |
|
int analyse(int nb, unsigned char *cdata) { |
int analyse(int nb, unsigned char *cdata, int *info, int *ninfo) { |
|
int *ibuf = (int *)cdata; |
float *fbuf = (float *)cdata; |
float *finfo = (float *)info; |
int neve=0; |
int *data = (ibuf+3); |
int nr=0; |
static float adc = 10000; |
static float qdc = 0; |
*ninfo = 0; |
printf("Run HDR LEN=%d NEVE=%d dt=%f adc=%f qdc=%f\n", ibuf[0],ibuf[1],fbuf[2],adc,qdc); |
while (nr<nb) { |
|
240,7 → 243,8 |
nr+=8; |
adc=10000; |
qdc=0; |
int nqdc; |
int nqdc=0; |
int ntdc=0; |
for (int k=1; k<nsamples; k++) { |
float t =timebins[k]; |
float tp=timebins[k-1]; |
252,10 → 256,18 |
if (fdata[k]< athreshold && fdata[k-1]> athreshold) { |
double t0= tp+(athreshold-fdata[k-1])/(fdata[k]-fdata[k-1])* (t-tp); |
H1D_Fill(3+id, t0,1); |
finfo[*ninfo+4+ntdc]=t0; |
ntdc++; |
} |
} |
if (nqdc) qdc/=nqdc; |
//printf("adc %f qdc %f\n", adc,qdc); |
info[*ninfo]=(ntdc+4)*sizeof(int); // len |
info[*ninfo+1]=id | 0xF0000000; // recid |
finfo[*ninfo+2]=adc; |
finfo[*ninfo+3]=qdc; |
*ninfo+= ntdc+4; |
|
if (adctype) |
H1D_Fill(1+id, -adc,1); |
else |
279,13 → 291,14 |
int *idata = (int *) &data[0]; |
|
|
|
int evinfo[maxlen]; |
int CVICALLBACK SocketCB (unsigned handle, int xType, int errCode, void *callbackData) { |
|
int nb = 0 ; |
static int event = 0; |
static int ncalls = 0; |
|
static time_t t0, t1; |
time(&t0); |
switch (xType) { |
case TCP_DISCONNECT: |
printf("TCP_DISCONNECT ErrorString %s\n",GetTCPErrorString(errCode)); |
307,7 → 320,7 |
} |
if (debug) printf("Received RECID %d HDRLEN %d == read %d\n", hdr[0], size, nb); |
|
|
int ninfo=0; |
switch (hdr[0]) { |
case 0: |
data[nb]=0; |
317,9 → 330,18 |
|
GetCtrlVal(panelHandle,PANEL_CEVE , &event); |
GetCtrlVal(panelHandle,PANEL_NTOTAL , &ncalls); |
event += analyse(nb,data); |
if (foutput) fwrite(data, 1, nb, foutput); |
|
|
event += analyse(nb,data, evinfo, &ninfo); |
if (foutput) { |
if (outwaveforms) fwrite(data, 1, nb, foutput); |
fwrite(evinfo, 1, ninfo*sizeof(int), foutput); |
time(&t1); |
if ((t1-t0)>10000) { |
for (int i=0;i<4;i++) H1D_Write2File(1+i,foutput); |
|
time(&t0); |
} |
} |
SetCtrlVal(panelHandle,PANEL_CEVE , event); |
if (event>=ncalls) StartCB (panelHandle, PANEL_START, EVENT_COMMIT, NULL,1,0); |
|
366,6 → 388,7 |
GetCtrlVal(panel,PANEL_DEBUG , &debug); |
GetCtrlVal(panel,PANEL_NBEFORE , &nbefore); |
GetCtrlVal(panel,PANEL_ENABLEDOUTPUT, &output); |
GetCtrlVal(panel,PANEL_OUTWAVE, &outwaveforms); |
GetCtrlVal(panel,PANEL_FILENAME, filename); |
|
delay= MINTRGDELAY + nsamples - nbefore + 1; |