Rev 83 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 83 | Rev 93 | ||
|---|---|---|---|
| Line 44... | Line 44... | ||
| 44 | return 0; |
44 | return 0; |
| 45 | } |
45 | } |
| 46 | 46 | ||
| 47 | int Pts_read(uint32_t addr, uint32_t *data ){ |
47 | int Pts_read(uint32_t addr, uint32_t *data ){ |
| 48 | VME_A32D32_R(ptaddr+addr,data); |
48 | VME_A32D32_R(ptaddr+addr,data); |
| - | 49 | return 0; |
|
| - | 50 | } |
|
| - | 51 | ||
| - | 52 | int Pts_Mread(uint32_t addr, uint32_t *data ){ |
|
| - | 53 | VME_MRRST(); |
|
| - | 54 | VME_MR(VME_A32, VME_D32,ptaddr+addr, data); |
|
| - | 55 | VME_MREXEC(data); |
|
| 49 | return 0; |
56 | return 0; |
| 50 | } |
57 | } |
| 51 | 58 | ||
| 52 | 59 | ||
| 53 | int Pts_erase( int verbose ) { |
60 | int Pts_erase( int verbose ) { |
| Line 212... | Line 219... | ||
| 212 | sprintf(str,"Example: %s --address 0x1000000 --verbose 1 --input pts_scaler.bit --load-bit 2\n", argv); |
219 | sprintf(str,"Example: %s --address 0x1000000 --verbose 1 --input pts_scaler.bit --load-bit 2\n", argv); |
| 213 | SetCtrlVal(p1,P1_RESPONSE,str); |
220 | SetCtrlVal(p1,P1_RESPONSE,str); |
| 214 | sprintf(str,"Example: %s --address 0x1000004 --write-csr 0x7600\n", argv);SetCtrlVal(p1,P1_RESPONSE,str); |
221 | sprintf(str,"Example: %s --address 0x1000004 --write-csr 0x7600\n", argv);SetCtrlVal(p1,P1_RESPONSE,str); |
| 215 | } |
222 | } |
| 216 | 223 | ||
| 217 | - | ||
| 218 | 224 | ||
| 219 | int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
- | |
| 220 | LPSTR lpszCmdLine, int nCmdShow) |
- | |
| 221 | { |
- | |
| 222 | char saddr[255]; |
- | |
| 223 | if (InitCVIRTE (hInstance, 0, 0) == 0) |
- | |
| 224 | return -1; /* out of memory */ |
- | |
| 225 | if ((p1 = LoadPanel (0, "PtsModule_CVI.uir", P1)) < 0) |
- | |
| 226 | return -1; |
- | |
| 227 | DisplayPanel (p1); |
- | |
| 228 | - | ||
| 229 | GetCtrlVal(p1,P1_VERBOSE,&verbose); |
- | |
| 230 | GetCtrlVal(p1,P1_ADDRESS,saddr); |
- | |
| 231 | ptaddr = strtoul (saddr,NULL,0); |
- | |
| 232 | RunUserInterface (); |
- | |
| 233 | DiscardPanel (p1); |
- | |
| 234 | VME_STOP(); |
- | |
| 235 | return 0; |
- | |
| 236 | } |
- | |
| 237 | - | ||
| 238 | int CVICALLBACK Reset (int panel, int control, int event, |
225 | int CVICALLBACK Reset (int panel, int control, int event, |
| 239 | void *callbackData, int eventData1, int eventData2) |
226 | void *callbackData, int eventData1, int eventData2) |
| 240 | { |
227 | { |
| 241 | switch (event) |
228 | switch (event) |
| 242 | { |
229 | { |
| 243 | case EVENT_COMMIT: |
230 | case EVENT_COMMIT: |
| 244 | Pts_reset(verbose); |
231 | Pts_reset(verbose); |
| 245 | break; |
232 | break; |
| 246 | } |
233 | } |
| 247 | return 0; |
234 | return 0; |
| 248 | } |
235 | } |
| 249 | 236 | ||
| 250 | int CVICALLBACK Erase (int panel, int control, int event, |
237 | int CVICALLBACK Erase (int panel, int control, int event, |
| 251 | void *callbackData, int eventData1, int eventData2) |
238 | void *callbackData, int eventData1, int eventData2) |
| 252 | { |
239 | { |
| 253 | switch (event) |
240 | switch (event) |
| 254 | { |
241 | { |
| 255 | case EVENT_COMMIT: |
242 | case EVENT_COMMIT: |
| 256 | Pts_erase(verbose); |
243 | Pts_erase(verbose); |
| 257 | break; |
244 | break; |
| 258 | } |
245 | } |
| 259 | return 0; |
246 | return 0; |
| Line 270... | Line 257... | ||
| 270 | GetCtrlVal(p1,P1_FIRMWARE,filename); |
257 | GetCtrlVal(p1,P1_FIRMWARE,filename); |
| 271 | GetCtrlVal(p1,P1_MODE,&mode); |
258 | GetCtrlVal(p1,P1_MODE,&mode); |
| 272 | if(VME_CONNECTED() >=0 ) { |
259 | if(VME_CONNECTED() >=0 ) { |
| 273 | Pts_configure_bit( filename, mode, verbose ); |
260 | Pts_configure_bit( filename, mode, verbose ); |
| 274 | } else { |
261 | } else { |
| 275 | MessagePopup ("Warning", "Connect VME!!"); |
262 | MessagePopup ("Warning", "Connect VME!!"); |
| 276 | } |
263 | } |
| 277 | break; |
264 | break; |
| 278 | } |
265 | } |
| 279 | return 0; |
266 | return 0; |
| 280 | } |
267 | } |
| Line 381... | Line 368... | ||
| 381 | 368 | ||
| 382 | int CVICALLBACK Address (int panel, int control, int event, |
369 | int CVICALLBACK Address (int panel, int control, int event, |
| 383 | void *callbackData, int eventData1, int eventData2) |
370 | void *callbackData, int eventData1, int eventData2) |
| 384 | { |
371 | { |
| 385 | char saddr[100]; |
372 | char saddr[100]; |
| 386 | switch (event) |
373 | switch (event) |
| 387 | { |
374 | { |
| 388 | case EVENT_COMMIT: |
375 | case EVENT_COMMIT: |
| 389 | GetCtrlVal(p1,P1_ADDRESS,saddr); |
376 | GetCtrlVal(p1,P1_ADDRESS,saddr); |
| 390 | ptaddr = strtoul (saddr,NULL,0); |
377 | ptaddr = strtoul (saddr,NULL,0); |
| 391 | break; |
378 | break; |
| 392 | } |
379 | } |
| 393 | return 0; |
380 | return 0; |
| 394 | } |
381 | } |
| 395 | 382 | ||
| 396 | int CVICALLBACK Exit (int panel, int control, int event, |
383 | int CVICALLBACK Exit (int panel, int control, int event, |
| 397 | void *callbackData, int eventData1, int eventData2) |
384 | void *callbackData, int eventData1, int eventData2) |
| 398 | { |
385 | { |
| 399 | switch (event) |
386 | switch (event) |
| 400 | { |
387 | { |
| 401 | case EVENT_COMMIT: |
388 | case EVENT_COMMIT: |
| 402 | QuitUserInterface(0); |
389 | QuitUserInterface(0); |
| 403 | break; |
390 | break; |
| 404 | } |
391 | } |
| 405 | return 0; |
392 | return 0; |
| 406 | } |
393 | } |
| Line 408... | Line 395... | ||
| 408 | int CVICALLBACK FSelect (int panel, int control, int event, |
395 | int CVICALLBACK FSelect (int panel, int control, int event, |
| 409 | void *callbackData, int eventData1, int eventData2) |
396 | void *callbackData, int eventData1, int eventData2) |
| 410 | { |
397 | { |
| 411 | int status; |
398 | int status; |
| 412 | char pathName[MAX_PATHNAME_LEN]; |
399 | char pathName[MAX_PATHNAME_LEN]; |
| 413 | switch (event) |
400 | switch (event) |
| 414 | { |
401 | { |
| 415 | case EVENT_COMMIT: |
402 | case EVENT_COMMIT: |
| 416 | status = FileSelectPopup ("", "*.bit", "*.bit", "Select Firmware file", |
403 | status = FileSelectPopup ("", "*.bit", "*.bit", "Select Firmware file", |
| 417 | VAL_SELECT_BUTTON, 0, 0, 1, 0, pathName); |
404 | VAL_SELECT_BUTTON, 0, 0, 1, 0, pathName); |
| 418 | if (status>0) SetCtrlVal(p1,P1_FIRMWARE,pathName); |
405 | if (status>0) SetCtrlVal(p1,P1_FIRMWARE,pathName); |
| 419 | break; |
406 | break; |
| 420 | } |
407 | } |
| 421 | return 0; |
408 | return 0; |
| 422 | } |
409 | } |
| 423 | 410 | ||
| 424 | int CVICALLBACK LedCB (int panel, int control, int event, |
411 | int CVICALLBACK LedCB (int panel, int control, int event, |
| 425 | void *callbackData, int eventData1, int eventData2) |
412 | void *callbackData, int eventData1, int eventData2) |
| 426 | { |
413 | { |
| 427 | switch (event) |
414 | switch (event) |
| 428 | { |
415 | { |
| 429 | int value=0; |
416 | int value=0; |
| 430 | case EVENT_COMMIT: |
417 | case EVENT_COMMIT: |
| - | 418 | if(VME_CONNECTED() <0 ) { |
|
| - | 419 | MessagePopup ("Warning", "Connect VME!!"); |
|
| - | 420 | return 0; |
|
| - | 421 | } |
|
| 431 | GetCtrlVal(p1,P1_LED,&value); |
422 | GetCtrlVal(p1,P1_LED,&value); |
| 432 | 423 | ||
| 433 | Pts_write( 0 , value+1 ); |
424 | Pts_write( 0 , value+1 ); |
| 434 | 425 | ||
| 435 | break; |
426 | break; |
| Line 437... | Line 428... | ||
| 437 | return 0; |
428 | return 0; |
| 438 | } |
429 | } |
| 439 | 430 | ||
| 440 | int CVICALLBACK Execute (int panel, int control, int event, |
431 | int CVICALLBACK Execute (int panel, int control, int event, |
| 441 | void *callbackData, int eventData1, int eventData2) |
432 | void *callbackData, int eventData1, int eventData2) |
| 442 | { |
433 | { |
| 443 | switch (event) |
434 | switch (event) |
| 444 | { |
435 | { |
| 445 | case EVENT_COMMIT:{ |
436 | case EVENT_COMMIT:{ |
| 446 | int n,i,nb; |
437 | int n,i,nb; |
| 447 | char buf[400]; |
438 | char buf[400]; |
| 448 | unsigned int data, addr; |
439 | unsigned int data, addr; |
| 449 | char sdata[255], saddr[255], rw[255]; |
440 | char sdata[255], saddr[255], rw[255]; |
| - | 441 | if(VME_CONNECTED() <0 ) { |
|
| - | 442 | MessagePopup ("Warning", "Connect VME!!"); |
|
| - | 443 | return 0; |
|
| - | 444 | } |
|
| 450 | GetNumTextBoxLines(panel, P1_COMMANDS,&n); |
445 | GetNumTextBoxLines(panel, P1_COMMANDS,&n); |
| 451 | for (i=0;i<n;i++){ |
446 | for (i=0;i<n;i++){ |
| 452 | GetTextBoxLine(panel, P1_COMMANDS, i, buf); |
447 | GetTextBoxLine(panel, P1_COMMANDS, i, buf); |
| 453 | nb = sscanf(buf,"%s%s%s",rw, saddr,sdata); |
448 | nb = sscanf(buf,"%s%s%s",rw, saddr,sdata); |
| 454 | addr = strtoul (saddr,NULL,0); |
449 | addr = strtoul (saddr,NULL,0); |
| Line 458... | Line 453... | ||
| 458 | if( verbose ) { |
453 | if( verbose ) { |
| 459 | sprintf(str, "VME Write addr 0x%0x+0x%0x data 0x%0x\n", ptaddr, addr, data ); |
454 | sprintf(str, "VME Write addr 0x%0x+0x%0x data 0x%0x\n", ptaddr, addr, data ); |
| 460 | SetCtrlVal (p1, P1_RESPONSE, str); |
455 | SetCtrlVal (p1, P1_RESPONSE, str); |
| 461 | } |
456 | } |
| 462 | } else { |
457 | } else { |
| 463 |
|
458 | Pts_Mread( addr , &data ); |
| 464 | if( verbose ) { |
459 | if( verbose ) { |
| 465 | sprintf(str, "VME Read addr 0x%0x+0x%0x response 0x%0x\n", ptaddr, addr, data); |
460 | sprintf(str, "VME Read addr 0x%0x+0x%0x response 0x%0x\n", ptaddr, addr, data); |
| 466 | SetCtrlVal (p1, P1_RESPONSE, str); |
461 | SetCtrlVal (p1, P1_RESPONSE, str); |
| 467 | } |
462 | } |
| 468 | } |
463 | } |
| 469 | } |
464 | } |
| 470 | break; |
465 | break; |
| 471 | } |
466 | } |
| 472 | } |
467 | } |
| 473 | return 0; |
468 | return 0; |
| 474 | } |
469 | } |
| 475 | 470 | ||
| 476 | int CVICALLBACK Connect (int panel, int control, int event, |
471 | int CVICALLBACK Connect (int panel, int control, int event, |
| 477 | void *callbackData, int eventData1, int eventData2) |
472 | void *callbackData, int eventData1, int eventData2) |
| Line 481... | Line 476... | ||
| 481 | { |
476 | { |
| 482 | 477 | ||
| 483 | case EVENT_COMMIT: |
478 | case EVENT_COMMIT: |
| 484 | GetCtrlVal (p1, P1_VMEINTERFACE, &interface); |
479 | GetCtrlVal (p1, P1_VMEINTERFACE, &interface); |
| 485 | VME_START(interface); |
480 | VME_START(interface); |
| 486 | break; |
481 | break; |
| 487 | } |
482 | } |
| 488 | return 0; |
483 | return 0; |
| 489 | } |
484 | } |
| 490 | 485 | ||
| 491 | int CVICALLBACK Disconnect (int panel, int control, int event, |
486 | int CVICALLBACK Disconnect (int panel, int control, int event, |
| 492 | void *callbackData, int eventData1, int eventData2) |
487 | void *callbackData, int eventData1, int eventData2) |
| 493 | { |
488 | { |
| 494 | switch (event) |
489 | switch (event) |
| 495 | { |
490 | { |
| 496 | case EVENT_COMMIT: |
491 | case EVENT_COMMIT: |
| 497 | VME_STOP(); |
492 | VME_STOP(); |
| 498 | break; |
493 | break; |
| 499 | } |
494 | } |
| - | 495 | return 0; |
|
| - | 496 | } |
|
| - | 497 | ||
| - | 498 | ||
| - | 499 | int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
|
| - | 500 | LPSTR lpszCmdLine, int nCmdShow) |
|
| - | 501 | { |
|
| - | 502 | char saddr[255]; |
|
| - | 503 | if (InitCVIRTE (hInstance, 0, 0) == 0) |
|
| - | 504 | return -1; /* out of memory */ |
|
| - | 505 | if ((p1 = LoadPanel (0, "PtsModule_CVI.uir", P1)) < 0) |
|
| - | 506 | return -1; |
|
| - | 507 | DisplayPanel (p1); |
|
| - | 508 | ||
| - | 509 | GetCtrlVal(p1,P1_VERBOSE,&verbose); |
|
| - | 510 | GetCtrlVal(p1,P1_ADDRESS,saddr); |
|
| - | 511 | ptaddr = strtoul (saddr,NULL,0); |
|
| - | 512 | RunUserInterface (); |
|
| - | 513 | DiscardPanel (p1); |
|
| - | 514 | VME_STOP(); |
|
| 500 | return 0; |
515 | return 0; |
| 501 | } |
516 | } |