Rev 39 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 39 | Rev 90 | ||
|---|---|---|---|
| Line 22... | Line 22... | ||
| 22 | 22 | ||
| 23 | #include <userint.h> |
23 | #include <userint.h> |
| 24 | #include <ansi_c.h> |
24 | #include <ansi_c.h> |
| 25 | #include <utility.h> |
25 | #include <utility.h> |
| 26 | #include <analysis.h> |
26 | #include <analysis.h> |
| - | 27 | #include <time.h> |
|
| - | 28 | //#include <zlib.h> |
|
| 27 | 29 | ||
| 28 | #include "c:\HOME\dino\sipmScan\include\sipmScan_ui.h" |
30 | #include "c:\HOME\dino\sipmScan\include\sipmScan_ui.h" |
| 29 | 31 | ||
| 30 | #ifdef USE_DAQ |
32 | #ifdef USE_DAQ |
| 31 | # define USE_CAMAC |
33 | # define USE_CAMAC |
| 32 | # include "camac.h" |
34 | # include "camac.h" |
| 33 | # define NDAC 1 |
35 | # define NDAC 1 |
| 34 | # define ASD8 0 // channels |
36 | # define ASD8 0 // channels |
| 35 | # define AMPDISSH 1 |
37 | # define AMPDISSH 1 |
| 36 | # define SIPM |
38 | # define SIPM 15 |
| 37 | //# define CAEN_V673A 0x10110000 // FMF |
39 | //# define CAEN_V673A 0x10110000 // FMF |
| 38 | # define CAEN_V673A 0x22220000 // IJS |
40 | # define CAEN_V673A 0x22220000 // IJS |
| 39 | # define CAEN_V462 0x100300 |
41 | # define CAEN_V462 0x100300 |
| 40 | #endif |
42 | #endif |
| 41 | 43 | ||
| 42 | #ifdef USE_MIKRO |
44 | #ifdef USE_MIKRO |
| 43 | # define MIKRO_COM |
45 | # define MIKRO_COM 3 |
| 44 | # define MIKRO_X 1 |
46 | # define MIKRO_X 1 |
| 45 | # define USE_MIKRO_Y |
47 | # define USE_MIKRO_Y |
| 46 | # define MIKRO_Y 2 |
48 | # define MIKRO_Y 2 |
| 47 | # define USE_MIKRO_Z |
49 | # define USE_MIKRO_Z |
| 48 | # define MIKRO_Z 3 |
50 | # define MIKRO_Z 3 |
| 49 | # define STEP_TOLERANCE 1 |
51 | # define STEP_TOLERANCE 1 |
| 50 | #endif |
52 | #endif |
| 51 | 53 | ||
| 52 | #define MAXCH |
54 | #define MAXCH 128 |
| 53 | #define MAX_THREADS 10 |
55 | #define MAX_THREADS 10 |
| 54 | 56 | ||
| 55 | #define IWAIT 200 |
57 | #define IWAIT 200 |
| 56 | 58 | ||
| 57 | #define POWERSUPPLY 66 // Power supply voltage for SiPM bias |
59 | #define POWERSUPPLY 66 // Power supply voltage for SiPM bias |
| Line 63... | Line 65... | ||
| 63 | static int something[NCH][2][MAXCH]; |
65 | static int something[NCH][2][MAXCH]; |
| 64 | 66 | ||
| 65 | static int daq_on; |
67 | static int daq_on; |
| 66 | static int poolHandle = 0; |
68 | static int poolHandle = 0; |
| 67 | static int ntics,dummy; |
69 | static int ntics,dummy; |
| - | 70 | ||
| - | 71 | static int offsetX = 5600; |
|
| - | 72 | static int offsetY = 5400; |
|
| 68 | 73 | ||
| 69 | /************************************************************/ |
74 | /************************************************************/ |
| 70 | void wait_loop(unsigned long iloop) |
75 | void wait_loop(unsigned long iloop) |
| 71 | 76 | ||
| 72 | { |
77 | { |
| Line 175... | Line 180... | ||
| 175 | 180 | ||
| 176 | int maxn = BSIZE-4; // 2 words x 2 headers |
181 | int maxn = BSIZE-4; // 2 words x 2 headers |
| 177 | int tdcdata, edge_type, overflow, tdc_num, channel, ev_dat, last_dat, nval_dat; |
182 | int tdcdata, edge_type, overflow, tdc_num, channel, ev_dat, last_dat, nval_dat; |
| 178 | // end of declarations |
183 | // end of declarations |
| 179 | // *** |
184 | // *** |
| 180 | 185 | ||
| 181 | runrec.id = RUNREC_ID; |
186 | runrec.id = RUNREC_ID; |
| 182 | runrec.len = sizeof(runrec); |
187 | runrec.len = sizeof(runrec); |
| 183 | //runrec.fver = 0x10000; |
188 | //runrec.fver = 0x10000; |
| 184 | runrec.nch = NCH; |
189 | runrec.nch = NCH; |
| 185 | GetCtrlVal(p1h, P1_ADCHLSAVE, &runrec.xy);//runrec.xy = 1; |
190 | GetCtrlVal(p1h, P1_ADCHLSAVE, &runrec.xy);//runrec.xy = 1; |
| Line 188... | Line 193... | ||
| 188 | endrec.len = sizeof(endrec); |
193 | endrec.len = sizeof(endrec); |
| 189 | posrec.id = POSREC_ID; |
194 | posrec.id = POSREC_ID; |
| 190 | posrec.len = sizeof(posrec); |
195 | posrec.len = sizeof(posrec); |
| 191 | evtrec.id = EVTREC_ID; |
196 | evtrec.id = EVTREC_ID; |
| 192 | evtrec.len = sizeof(evtrec); |
197 | evtrec.len = sizeof(evtrec); |
| 193 | 198 | ||
| 194 | 199 | ||
| 195 | cres = 0; |
200 | cres = 0; |
| 196 | 201 | ||
| 197 | GetCtrlVal (p1h, P1_NEVE, &runrec.nev); |
202 | GetCtrlVal (p1h, P1_NEVE, &runrec.nev); |
| 198 | GetCtrlVal (p1h, P1_PEDESTAL, &runrec.ped); |
203 | GetCtrlVal (p1h, P1_PEDESTAL, &runrec.ped); |
| 199 | 204 | ||
| 200 | GetCtrlVal (p1h, P1_NX, &runrec.nx); |
205 | GetCtrlVal (p1h, P1_NX, &runrec.nx); |
| 201 | GetCtrlVal (p1h, P1_XSTEP, &runrec.dx); |
206 | GetCtrlVal (p1h, P1_XSTEP, &runrec.dx); |
| 202 | GetCtrlVal (p1h, P1_XMIN, &runrec.x0); |
207 | GetCtrlVal (p1h, P1_XMIN, &runrec.x0); |
| 203 | GetCtrlVal (p1h, P1_NY, &runrec.ny); |
208 | GetCtrlVal (p1h, P1_NY, &runrec.ny); |
| 204 | GetCtrlVal (p1h, P1_YSTEP, &runrec.dy); |
209 | GetCtrlVal (p1h, P1_YSTEP, &runrec.dy); |
| Line 206... | Line 211... | ||
| 206 | 211 | ||
| 207 | GetCtrlVal (p1h, P1_NMIN, &step_minutes); |
212 | GetCtrlVal (p1h, P1_NMIN, &step_minutes); |
| 208 | GetSystemTime(&start_hours, &start_minutes, &start_seconds); |
213 | GetSystemTime(&start_hours, &start_minutes, &start_seconds); |
| 209 | //cur_time_s = start_hours*3600 + start_minutes*60 + start_seconds; |
214 | //cur_time_s = start_hours*3600 + start_minutes*60 + start_seconds; |
| 210 | time(&cur_time_s); |
215 | time(&cur_time_s); |
| 211 | end_time_s = cur_time_s + |
216 | end_time_s = cur_time_s + (int) (runrec.nx * runrec.ny * runrec.nev/10000.0 * 4.5); // expected seconds |
| 212 | printf("START:%2d-%2d-%2d (cur_time = %u s, end_time = %u s)\n", start_hours, start_minutes, start_seconds, cur_time_s, end_time_s); |
217 | printf("START:%2d-%2d-%2d (cur_time = %u s, end_time = %u s)\n", start_hours, start_minutes, start_seconds, cur_time_s, end_time_s); |
| - | 218 | SetCtrlAttribute(p1h, P1_EXPTIME, ATTR_DIMMED, 0); |
|
| - | 219 | SetCtrlVal(p1h, P1_EXPTIME, ctime(&end_time_s)); |
|
| 213 | 220 | ||
| 214 | //GetCtrlVal (p1h, P1_DSAVE, &dsave); |
221 | //GetCtrlVal (p1h, P1_DSAVE, &dsave); |
| 215 | //if (dsave) { |
222 | //if (dsave) { |
| 216 | GetCtrlVal (p1h, P1_DFILE, dfile0); |
223 | GetCtrlVal (p1h, P1_DFILE, dfile0); |
| 217 | 224 | ||
| 218 | fev=0; |
225 | fev=0; |
| 219 | fcount=1; |
226 | fcount=1; |
| 220 | GetCtrlVal (p1h, P1_NEWF, &fmax); |
227 | GetCtrlVal (p1h, P1_NEWF, &fmax); |
| Line 223... | Line 230... | ||
| 223 | GetCtrlVal (p1h, P1_SUPR, &supr0); |
230 | GetCtrlVal (p1h, P1_SUPR, &supr0); |
| 224 | if (supr0) { |
231 | if (supr0) { |
| 225 | GetCtrlVal (p1h, P1_TDCMIN, &tdcmin); |
232 | GetCtrlVal (p1h, P1_TDCMIN, &tdcmin); |
| 226 | GetCtrlVal (p1h, P1_FRAC, &frac); |
233 | GetCtrlVal (p1h, P1_FRAC, &frac); |
| 227 | } |
234 | } |
| 228 | 235 | ||
| 229 | #ifdef USE_DAQ |
236 | #ifdef USE_DAQ |
| 230 | V673A_map(0,CAEN_V673A,0); |
237 | V673A_map(0,CAEN_V673A,0); |
| 231 | V673A_init(0); |
238 | V673A_init(0); |
| 232 | 239 | ||
| 233 | V462_map(0,CAEN_V462,0); |
240 | V462_map(0,CAEN_V462,0); |
| 234 | V462_set0(0,1); |
241 | V462_set0(0,1); |
| 235 | #endif |
242 | #endif |
| 236 | 243 | ||
| 237 | //if (dsave) { |
244 | //if (dsave) { |
| 238 | sprintf(dfile,"%s_file%02d.dat",dfile0,fcount); |
245 | sprintf(dfile,"%s_file%02d.dat",dfile0,fcount); |
| - | 246 | SetCtrlVal(p1h, P1_FCOUNT,fcount); |
|
| 239 | 247 | ||
| 240 | fp = fopen (dfile, "wb"); |
248 | fp = fopen (dfile, "wb"); |
| 241 | time (&runrec.time); |
249 | time (&runrec.time); |
| 242 | status = fwrite (&runrec, 1, runrec.len, fp); |
250 | status = fwrite (&runrec, 1, runrec.len, fp); |
| 243 | //} |
251 | //} |
| 244 | if (supr0) { |
252 | if (supr0) { |
| 245 | fseed = runrec.time & 0x7fffffff; |
253 | fseed = runrec.time & 0x7fffffff; |
| 246 | Uniform (1, fseed, &fracg); |
254 | Uniform (1, fseed, &fracg); |
| 247 | } |
255 | } |
| - | 256 | // vertical moving stage loop |
|
| - | 257 | for (posrec.iy=0; posrec.iy<runrec.ny; posrec.iy++) { |
|
| - | 258 | posrec.yset = runrec.y0 + posrec.iy*runrec.dy; |
|
| - | 259 | #ifdef USE_MIKRO_Y |
|
| - | 260 | if (print) printf("MIKRO_MoveTo (2, y);%d\n",posrec.yset); |
|
| - | 261 | do { |
|
| - | 262 | MIKRO_MoveTo (MIKRO_Y, offsetY + posrec.yset); |
|
| - | 263 | MIKRO_GetPosition(MIKRO_Y, &mikroY); |
|
| - | 264 | mikroY -= offsetY; |
|
| - | 265 | if (print) printf("%d\n", abs(posrec.yset - mikroY)); |
|
| - | 266 | } while (abs(posrec.yset - mikroY) > STEP_TOLERANCE); |
|
| - | 267 | if (print) printf("->MIKRO_MoveTo (2, y);%d\n",posrec.yset); |
|
| - | 268 | #endif |
|
| - | 269 | posrec.yset = mikroY; |
|
| - | 270 | SetCtrlVal (p1h, P1_Y, posrec.yset); |
|
| - | 271 | SetCtrlVal (p1h, P1_IY, posrec.iy); |
|
| 248 | 272 | ||
| - | 273 | // horizontal moving stage loop |
|
| 249 | for (posrec.ix=0; posrec.ix<runrec.nx; posrec.ix++) { |
274 | for (posrec.ix=0; posrec.ix<runrec.nx; posrec.ix++) { |
| 250 |
|
275 | posrec.xset = runrec.x0 + posrec.ix*runrec.dx; |
| 251 | #ifdef USE_MIKRO |
276 | #ifdef USE_MIKRO |
| 252 | do { |
277 | do { |
| 253 | if (print) printf("MIKRO_MoveTo (1, x);%d\n",posrec.xset); |
278 | if (print) printf("MIKRO_MoveTo (1, x);%d\n",posrec.xset); |
| 254 | MIKRO_MoveTo (MIKRO_X, posrec.xset); |
279 | MIKRO_MoveTo (MIKRO_X, offsetX + posrec.xset); |
| 255 | MIKRO_GetPosition(MIKRO_X, &mikroX); |
280 | MIKRO_GetPosition(MIKRO_X, &mikroX); |
| - | 281 | mikroX -= offsetX; |
|
| 256 | if (print) printf("%d\n", abs(posrec.xset - mikroX)); |
282 | if (print) printf("%d\n", abs(posrec.xset - mikroX)); |
| 257 | } while (abs(posrec.xset - mikroX) > STEP_TOLERANCE); |
283 | } while (abs(posrec.xset - mikroX) > STEP_TOLERANCE); |
| 258 | #endif |
284 | #endif |
| 259 | posrec.xset = mikroX; // true value |
285 | posrec.xset = mikroX; // true value |
| 260 | SetCtrlVal (p1h, P1_X, posrec.xset); |
286 | SetCtrlVal (p1h, P1_X, posrec.xset); |
| 261 | SetCtrlVal (p1h, P1_IX, posrec.ix); |
287 | SetCtrlVal (p1h, P1_IX, posrec.ix); |
| 262 | for (posrec.iy=0; posrec.iy<runrec.ny; posrec.iy++) { |
- | |
| 263 | posrec.yset = runrec.y0 + posrec.iy*runrec.dy; |
- | |
| 264 | #ifdef USE_MIKRO_Y |
- | |
| 265 | if (print) printf("MIKRO_MoveTo (2, y);%d\n",posrec.yset); |
- | |
| 266 | do { |
288 | |
| 267 | MIKRO_MoveTo (MIKRO_Y, posrec.yset); |
- | |
| 268 | MIKRO_GetPosition(MIKRO_Y, &mikroY); |
- | |
| 269 | if (print) printf("%d\n", abs(posrec.yset - mikroY)); |
- | |
| 270 | } while (abs(posrec.yset - mikroY) > STEP_TOLERANCE); |
- | |
| 271 | if (print) printf("->MIKRO_MoveTo (2, y);%d\n",posrec.yset); |
- | |
| 272 | #endif |
289 | |
| 273 | posrec.yset = mikroY; |
- | |
| 274 | SetCtrlVal (p1h, P1_Y, posrec.yset); |
- | |
| 275 | SetCtrlVal (p1h, P1_IY, posrec.iy); |
- | |
| 276 | //if (dsave) { |
290 | //if (dsave) { |
| 277 | if (fmax && (ftell(fp) > fmax)) { |
291 | if (fmax && (ftell(fp) > fmax)) { |
| 278 | fcount+=1; |
292 | fcount+=1; |
| 279 | sprintf(dfile,"%s_file%02d.dat",dfile0,fcount); |
293 | sprintf(dfile,"%s_file%02d.dat",dfile0,fcount); |
| 280 | fclose(fp); |
294 | fclose(fp); |
| 281 | fp = fopen (dfile, "wb"); |
295 | fp = fopen (dfile, "wb"); |
| 282 | } |
296 | } |
| 283 | 297 | ||
| 284 | time (&posrec.time); |
298 | time (&posrec.time); |
| 285 | status = fwrite (&posrec, 1, posrec.len, fp); |
299 | status = fwrite (&posrec, 1, posrec.len, fp); |
| 286 | if (print) printf("POSREC status %d len %d\n", status, posrec.len); |
300 | if (print) printf("POSREC status %d len %d\n", status, posrec.len); |
| 287 | //} |
301 | //} |
| Line 304... | Line 318... | ||
| 304 | count=0; |
318 | count=0; |
| 305 | ntics=0; |
319 | ntics=0; |
| 306 | if (print) printf("Event counter: %d\n", evtrec.nev); |
320 | if (print) printf("Event counter: %d\n", evtrec.nev); |
| 307 | 321 | ||
| 308 | //if (t!=told ) printf("%d in %2.2f min daq::event() %s\n",i, (double)(t-tstart)/60., ctime(&t)); |
322 | //if (t!=told ) printf("%d in %2.2f min daq::event() %s\n",i, (double)(t-tstart)/60., ctime(&t)); |
| 309 | 323 | ||
| 310 | #ifdef USE_DAQ |
324 | #ifdef USE_DAQ |
| 311 | #ifdef CAEN_V673A |
325 | #ifdef CAEN_V673A |
| 312 | 326 | ||
| 313 | 327 | ||
| 314 | V462_start0(0); |
328 | V462_start0(0); |
| 315 | //tmlnk (tout); |
329 | //tmlnk (tout); |
| Line 368... | Line 382... | ||
| 368 | } |
382 | } |
| 369 | if (print) printf("Received triggers: %d \n", ntrig); |
383 | if (print) printf("Received triggers: %d \n", ntrig); |
| 370 | } else { |
384 | } else { |
| 371 | if (ntrig==0) { |
385 | if (ntrig==0) { |
| 372 | fprintf(stderr,"-----------------> no trigger"); |
386 | fprintf(stderr,"-----------------> no trigger"); |
| 373 |
|
387 | //break; |
| 374 | } else { |
388 | } else { |
| 375 | if (print) fprintf(stderr,"-----------------> wrong number of triggers in chips V673a !!!\n"); |
389 | if (print) fprintf(stderr,"-----------------> wrong number of triggers in chips V673a !!!\n"); |
| 376 | } |
390 | } |
| 377 | V673A_clallb(0); |
391 | V673A_clallb(0); |
| 378 | evtrec.nev--; |
392 | evtrec.nev--; |
| Line 396... | Line 410... | ||
| 396 | if (fmax && (ftell(fp) > fmax)) { |
410 | if (fmax && (ftell(fp) > fmax)) { |
| 397 | time (&endrec.time); |
411 | time (&endrec.time); |
| 398 | status = fwrite (&endrec, 1, endrec.len, fp); |
412 | status = fwrite (&endrec, 1, endrec.len, fp); |
| 399 | fcount+=1; |
413 | fcount+=1; |
| 400 | sprintf(dfile,"%s_file%02d.dat",dfile0,fcount); |
414 | sprintf(dfile,"%s_file%02d.dat",dfile0,fcount); |
| - | 415 | SetCtrlVal(p1h, P1_FCOUNT,fcount); |
|
| 401 | fclose(fp); |
416 | fclose(fp); |
| 402 | fp = fopen (dfile, "wb"); |
417 | fp = fopen (dfile, "wb"); |
| 403 | } |
418 | } |
| 404 | } |
419 | } |
| 405 | 420 | ||
| Line 417... | Line 432... | ||
| 417 | 432 | ||
| 418 | GetCtrlVal(p1h, P1_DAQ, &daq_on); |
433 | GetCtrlVal(p1h, P1_DAQ, &daq_on); |
| 419 | 434 | ||
| 420 | } while (evtrec.nev++<runrec.nev && daq_on); |
435 | } while (evtrec.nev++<runrec.nev && daq_on); |
| 421 | if (!daq_on) break; |
436 | if (!daq_on) break; |
| 422 | } // |
437 | } // y loop |
| 423 | if (!daq_on) break; |
438 | if (!daq_on) break; |
| 424 | } // |
439 | } // x loop |
| 425 | 440 | ||
| 426 | //if (dsave) { |
441 | //if (dsave) { |
| 427 | time (&endrec.time); |
442 | time (&endrec.time); |
| 428 | status = fwrite (&endrec, 1, endrec.len, fp); |
443 | status = fwrite (&endrec, 1, endrec.len, fp); |
| 429 | if (print) printf("ENDREC status %d len %d\n", status, endrec.len); |
444 | if (print) printf("ENDREC status %d len %d\n", status, endrec.len); |
| Line 462... | Line 477... | ||
| 462 | int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
477 | int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
| 463 | LPSTR lpszCmdLine, int nCmdShow) |
478 | LPSTR lpszCmdLine, int nCmdShow) |
| 464 | { |
479 | { |
| 465 | int i,j,status,refon; |
480 | int i,j,status,refon; |
| 466 | long int xpos, ypos, zpos; |
481 | long int xpos, ypos, zpos; |
| 467 | char dfile[ |
482 | char dfile[512]; |
| - | 483 | char message[256]; |
|
| 468 | FILE *fp; |
484 | FILE *fp; |
| 469 | 485 | ||
| 470 | typedef struct { |
486 | typedef struct { |
| 471 | unsigned long id,len; |
487 | unsigned long id,len; |
| 472 | unsigned long fver,time; |
488 | unsigned long fver,time; |
| Line 501... | Line 517... | ||
| 501 | #endif |
517 | #endif |
| 502 | 518 | ||
| 503 | if ((p1h = LoadPanel (0, "include/sipmScan_ui.uir", P1)) < 0) return -1; |
519 | if ((p1h = LoadPanel (0, "include/sipmScan_ui.uir", P1)) < 0) return -1; |
| 504 | DisplayPanel (p1h); |
520 | DisplayPanel (p1h); |
| 505 | SetCtrlAttribute (p1h, P1_PLCH, ATTR_MAX_VALUE, NCH-1); |
521 | SetCtrlAttribute (p1h, P1_PLCH, ATTR_MAX_VALUE, NCH-1); |
| - | 522 | ||
| - | 523 | SetCtrlVal (p1h, P1_OFFSETX, offsetX); |
|
| - | 524 | SetCtrlVal (p1h, P1_OFFSETY, offsetY); |
|
| 506 | 525 | ||
| 507 | GetCtrlVal(p1h, P1_ADCHLSAVE, &runrec.xy); |
526 | GetCtrlVal(p1h, P1_ADCHLSAVE, &runrec.xy); |
| 508 | SetCtrlVal(p1h, P1_ADCHL, runrec.xy-2); |
527 | SetCtrlVal(p1h, P1_ADCHL, runrec.xy-2); |
| 509 | 528 | ||
| 510 | QueueUserEvent (1000, p1h, P1_RESET); |
529 | QueueUserEvent (1000, p1h, P1_RESET); |
| 511 | QueueUserEvent (1000, p1h, P1_ASD8THR); |
530 | QueueUserEvent (1000, p1h, P1_ASD8THR); |
| 512 | QueueUserEvent (1000, p1h, P1_AMPDISSHTHR); |
531 | QueueUserEvent (1000, p1h, P1_AMPDISSHTHR); |
| 513 | QueueUserEvent (1000, p1h, P1_BIAS); |
532 | QueueUserEvent (1000, p1h, P1_BIAS); |
| - | 533 | QueueUserEvent (1000, p1h, P1_OFFSETX); |
|
| - | 534 | QueueUserEvent (1000, p1h, P1_OFFSETY); |
|
| 514 | 535 | ||
| 515 | printf("BIAS offset set to: %d\n", POWERSUPPLY); |
536 | printf("BIAS offset set to: %d\n", POWERSUPPLY); |
| 516 | 537 | ||
| 517 | do { |
538 | do { |
| 518 | GetUserEvent (1, &pID, &rID); |
539 | GetUserEvent (1, &pID, &rID); |
| 519 | switch (rID) { |
540 | switch (rID) { |
| Line 528... | Line 549... | ||
| 528 | case P1_DAQ: |
549 | case P1_DAQ: |
| 529 | GetCtrlVal (p1h, P1_DAQ, &daq_on); |
550 | GetCtrlVal (p1h, P1_DAQ, &daq_on); |
| 530 | if (daq_on) { |
551 | if (daq_on) { |
| 531 | CmtScheduleThreadPoolFunction (poolHandle, daq_run, (void *)&dummy, &tfID); |
552 | CmtScheduleThreadPoolFunction (poolHandle, daq_run, (void *)&dummy, &tfID); |
| 532 | } else { |
553 | } else { |
| 533 | CmtWaitForThreadPoolFunctionCompletion (poolHandle, tfID, |
554 | CmtWaitForThreadPoolFunctionCompletion (poolHandle, tfID, OPT_TP_PROCESS_EVENTS_WHILE_WAITING); |
| 534 | OPT_TP_PROCESS_EVENTS_WHILE_WAITING); |
- | |
| 535 | CmtReleaseThreadPoolFunctionID (poolHandle, tfID); |
555 | CmtReleaseThreadPoolFunctionID (poolHandle, tfID); |
| 536 | } |
556 | } |
| 537 | break; |
557 | break; |
| - | 558 | case P1_XMIN: |
|
| - | 559 | if (!daq_on) { |
|
| - | 560 | GetCtrlVal (p1h, P1_XMIN, &xpos); |
|
| - | 561 | //backlash |
|
| - | 562 | MIKRO_MoveTo(MIKRO_X, xpos+offsetX-1000); |
|
| - | 563 | Delay(0.01); |
|
| - | 564 | MIKRO_MoveTo(MIKRO_X, xpos+offsetX); |
|
| 538 | 565 | } |
|
| - | 566 | break; |
|
| - | 567 | case P1_YMIN: |
|
| - | 568 | if (!daq_on) { |
|
| - | 569 | GetCtrlVal(p1h, P1_YMIN, &ypos); |
|
| - | 570 | MIKRO_MoveTo(MIKRO_Y, ypos+offsetY-1000); |
|
| - | 571 | Delay(0.01); |
|
| - | 572 | MIKRO_MoveTo(MIKRO_Y, ypos+offsetY); |
|
| - | 573 | } |
|
| - | 574 | break; |
|
| 539 | case P1_ZSET: |
575 | case P1_ZSET: |
| 540 | if (!daq_on) { |
576 | if (!daq_on) { |
| 541 | GetCtrlVal (p1h, P1_ZSET, &zpos); |
577 | GetCtrlVal (p1h, P1_ZSET, &zpos); |
| 542 | #ifdef USE_MIKRO_Z |
578 | #ifdef USE_MIKRO_Z |
| 543 | MIKRO_MoveTo (MIKRO_Z, zpos); |
579 | MIKRO_MoveTo (MIKRO_Z, zpos); |
| Line 567... | Line 603... | ||
| 567 | break; |
603 | break; |
| 568 | case P1_MGET: |
604 | case P1_MGET: |
| 569 | #ifdef USE_MIKRO |
605 | #ifdef USE_MIKRO |
| 570 | MIKRO_GetPosition(MIKRO_X,&xpos); |
606 | MIKRO_GetPosition(MIKRO_X,&xpos); |
| 571 | Delay(0.01); |
607 | Delay(0.01); |
| 572 | SetCtrlVal (p1h, P1_X, xpos); |
608 | SetCtrlVal (p1h, P1_X, xpos-offsetX); |
| 573 | #ifdef USE_MIKRO_Y |
609 | #ifdef USE_MIKRO_Y |
| 574 | MIKRO_GetPosition(MIKRO_Y,&ypos); |
610 | MIKRO_GetPosition(MIKRO_Y,&ypos); |
| 575 | Delay(0.01); |
611 | Delay(0.01); |
| 576 | SetCtrlVal (p1h, P1_Y, ypos); |
612 | SetCtrlVal (p1h, P1_Y, ypos-offsetY); |
| 577 | #endif |
613 | #endif |
| 578 | #ifdef USE_MIKRO_Z |
614 | #ifdef USE_MIKRO_Z |
| 579 | MIKRO_GetPosition(MIKRO_Z,&zpos); |
615 | MIKRO_GetPosition(MIKRO_Z,&zpos); |
| 580 | Delay(0.01); |
616 | Delay(0.01); |
| 581 | SetCtrlVal (p1h, P1_Z, zpos); |
617 | SetCtrlVal (p1h, P1_Z, zpos); |
| Line 639... | Line 675... | ||
| 639 | GetCtrlVal (p1h, P1_SBIAS, &value); |
675 | GetCtrlVal (p1h, P1_SBIAS, &value); |
| 640 | value -= POWERSUPPLY; |
676 | value -= POWERSUPPLY; |
| 641 | SetDac(SIPM, value); |
677 | SetDac(SIPM, value); |
| 642 | } |
678 | } |
| 643 | break; |
679 | break; |
| - | 680 | // reset SiPM bias to initial power supply voltage |
|
| - | 681 | case P1_BIASOFF: |
|
| - | 682 | { |
|
| - | 683 | SetDac(SIPM, 0); |
|
| - | 684 | SetCtrlVal(p1h, P1_SBIAS, (double) POWERSUPPLY); |
|
| - | 685 | } |
|
| - | 686 | case P1_OFFSETX: |
|
| - | 687 | { |
|
| - | 688 | GetCtrlVal(p1h, P1_OFFSETX, &offsetX); |
|
| - | 689 | } |
|
| - | 690 | case P1_OFFSETY: |
|
| - | 691 | { |
|
| - | 692 | GetCtrlVal(p1h, P1_OFFSETY, &offsetY); |
|
| - | 693 | } |
|
| 644 | 694 | ||
| 645 | } |
695 | } |
| 646 | 696 | ||
| 647 | } while ((rID != P1_EXIT)||daq_on); |
697 | } while ((rID != P1_EXIT)||daq_on); |
| 648 | 698 | ||