Subversion Repositories f9daq

Rev

Rev 281 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 281 Rev 304
Line -... Line 1...
-
 
1
#include <tcpsupp.h>
1
#include <formatio.h>
2
#include <formatio.h>
2
#include <userint.h>
3
#include <userint.h>
3
#include <ansi_c.h>
4
#include <ansi_c.h>
4
#include <utility.h>
5
#include <utility.h>
5
#include <gpib.h>
6
#include <gpib.h>
Line 9... Line 10...
9
 
10
 
10
K6517STATUS K6517Stat;
11
K6517STATUS K6517Stat;
11
static int K6517_Interface,K6517_Port,K6517_Gdev;
12
static int K6517_Interface,K6517_Port,K6517_Gdev;
12
static int iret;
13
static int iret;
13
static int stop;
14
static int stop;
-
 
15
static int debugCode;                                  
14
int _VI_FUNC K6517_status_print (void);
16
int _VI_FUNC K6517_status_print (void);
15
void GpibError(char *msg) {
17
void GpibError(char *msg) {
16
 
18
 
17
  printf ("%s\n", msg);
19
  printf ("%s\n", msg);
18
 
20
 
Line 118... Line 120...
118
  return;  
120
  return;  
119
}
121
}
120
 
122
 
121
void _VI_FUNC K6517_send (char *cmd, int len)
123
void _VI_FUNC K6517_send (char *cmd, int len)
122
{
124
{
123
        printf("-> %s\n", cmd);
125
        if (debugCode) printf("-> %s\n", cmd);
124
        if (!len) len = strlen(cmd);
126
        if (!len) len = strlen(cmd);
125
  switch (K6517_Interface){
127
  switch (K6517_Interface){
126
    case 1:
128
    case 1:
127
      PROLOGIX_Send(cmd);
129
      PROLOGIX_Send(cmd);
128
      break;
130
      break;
Line 139... Line 141...
139
        int ierr=0;
141
        int ierr=0;
140
  switch (K6517_Interface){
142
  switch (K6517_Interface){
141
    case 1:
143
    case 1:
142
      PROLOGIX_Send("++read eoi");
144
      PROLOGIX_Send("++read eoi");
143
      ierr= PROLOGIX_Receive (response,maxbyt);
145
      ierr= PROLOGIX_Receive (response,maxbyt);
144
                        printf("<---Read [%d] %s\n", ierr, response);
146
                        if (debugCode) printf("<---Read [%d] %s\n", ierr, response);
145
                        return ierr;
147
                        return ierr;
146
      break;
148
      break;
147
    default:
149
    default:
148
      iret = ibrd (K6517_Gdev, response, maxbyt);
150
      iret = ibrd (K6517_Gdev, response, maxbyt);
149
      if (ibsta & ERR) GpibError("OpenDev Error");
151
      if (ibsta & ERR) GpibError("OpenDev Error");
Line 192... Line 194...
192
//      K6517_send ("SYST:ZCH 0",0);      
194
//      K6517_send ("SYST:ZCH 0",0);      
193
  K6517_send ("READ?",0);
195
  K6517_send ("READ?",0);
194
 
196
 
195
        cres[0]= 0;
197
        cres[0]= 0;
196
        int len = K6517_receive (cres, 50);
198
        int len = K6517_receive (cres, 50);
197
  printf("current >%d, %s\n",len,cres);
199
  if (debugCode) printf("current >%d, %s\n",len,cres);
198
       
200
       
199
  return atof(cres);
201
  return atof(cres);
200
        /*
202
        /*
201
  K6517_send ("X", 1);
203
  K6517_send ("X", 1);
202
  len = K6517_receive (cres, 50);
204
  len = K6517_receive (cres, 50);
Line 266... Line 268...
266
void _VI_FUNC K6517_vsource_set (float value)
268
void _VI_FUNC K6517_vsource_set (float value)
267
{
269
{
268
  int len;
270
  int len;
269
  char cmd[100];
271
  char cmd[100];
270
  len=sprintf(cmd,":SOURCE:VOLTAGE %f",value);
272
  len=sprintf(cmd,":SOURCE:VOLTAGE %f",value);
-
 
273
  K6517_send (cmd, len);
-
 
274
        len=sprintf(cmd,":SOURCE:VOLTAGE:MCONNECT ON");
271
  K6517_send (cmd, len);
275
  K6517_send (cmd, len);
272
  return;
276
  return;
273
}
277
}
274
 
278
 
275
double _VI_FUNC K6517_vsource_get (void)
279
double _VI_FUNC K6517_vsource_get (void)
Line 386... Line 390...
386
int gMask=0xF;
390
int gMask=0xF;
387
 
391
 
388
int pnl;
392
int pnl;
389
FILE *gFp;
393
FILE *gFp;
390
 
394
 
-
 
395
static int tfID;
-
 
396
static int rID;
-
 
397
static CmtThreadPoolHandle poolHandle = 0;
-
 
398
#define MAX_THREADS 10  
-
 
399
 
-
 
400
 
-
 
401
 
-
 
402
/*---------------------------------------------------------------------------*/
-
 
403
/* Macros                                                                                            */
-
 
404
/*---------------------------------------------------------------------------*/
-
 
405
#define tcpChk(f) if ((g_TCPError=(f)) < 0) {ReportTCPError();} 
-
 
406
 
-
 
407
 
-
 
408
/*---------------------------------------------------------------------------*/
-
 
409
/* Internal function prototypes                                              */
-
 
410
/*---------------------------------------------------------------------------*/
-
 
411
int CVICALLBACK ClientTCPCB (unsigned handle, int event, int error,
-
 
412
                             void *callbackData);
-
 
413
static void ReportTCPError (void);
-
 
414
 
-
 
415
/*---------------------------------------------------------------------------*/
-
 
416
/* Module-globals                                                            */
-
 
417
/*---------------------------------------------------------------------------*/
-
 
418
static unsigned int g_hconversation;
-
 
419
static int          g_hmainPanel;
-
 
420
static int                      g_connected = 0;
-
 
421
static int                      g_TCPError = 0;
-
 
422
 
-
 
423
/*---------------------------------------------------------------------------*/
-
 
424
/* Report TCP Errors if any                                                                      */
-
 
425
/*---------------------------------------------------------------------------*/
-
 
426
static void ReportTCPError(void)
-
 
427
{
-
 
428
        if (g_TCPError < 0)
-
 
429
                {
-
 
430
                char    messageBuffer[1024];
-
 
431
                sprintf(messageBuffer,
-
 
432
                        "TCP library error message: %s\nSystem error message: %s",
-
 
433
                        GetTCPErrorString (g_TCPError), GetTCPSystemErrorString());
-
 
434
                MessagePopup ("Error", messageBuffer);
-
 
435
                g_TCPError = 0;
-
 
436
                }
-
 
437
}
-
 
438
/*---------------------------------------------------------------------------*/
-
 
439
 
-
 
440
 
-
 
441
int CVICALLBACK DisconnectCB (int panel, int control, int event,
-
 
442
                                                                                                                        void *callbackData, int eventData1, int eventData2) {
-
 
443
        switch (event) {
-
 
444
                case EVENT_COMMIT:
-
 
445
                        if (g_connected)
-
 
446
        DisconnectFromTCPServer (g_hconversation);
-
 
447
                        g_hconversation = 0;
-
 
448
                        g_connected = 0;
-
 
449
                        break;
-
 
450
        }
-
 
451
        return 0;
-
 
452
}
-
 
453
 
-
 
454
int CVICALLBACK ConnectCB (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) {
-
 
455
        int portNum=10000;
-
 
456
        char tempBuf[512];
-
 
457
        sprintf(tempBuf,"localhost");
-
 
458
        switch (event) {
-
 
459
                case EVENT_COMMIT:
-
 
460
                        if (ConnectToTCPServer (&g_hconversation, portNum, tempBuf, ClientTCPCB, NULL, 5000) < 0)
-
 
461
        MessagePopup("TCP Client", "Connection to server failed !");
-
 
462
    else
-
 
463
        {
-
 
464
        SetWaitCursor (0);
-
 
465
        g_connected = 1;
-
 
466
       
-
 
467
        /* We are successfully connected -- gather info */
-
 
468
       
-
 
469
                  if (GetTCPHostAddr (tempBuf, 256) >= 0) printf("%s\n" ,tempBuf);
-
 
470
                    if (GetTCPHostName (tempBuf, 256) >= 0) printf("%s\n" ,tempBuf);
-
 
471
               
-
 
472
        tcpChk (GetTCPPeerAddr (g_hconversation, tempBuf, 256));
-
 
473
        printf("%s\n" ,tempBuf);
-
 
474
        tcpChk (GetTCPPeerName (g_hconversation, tempBuf, 256));
-
 
475
        printf("%s\n" ,tempBuf);
-
 
476
        }
-
 
477
                        break;
-
 
478
        }
-
 
479
        return 0;
-
 
480
}
-
 
481
 
-
 
482
 
-
 
483
int CVICALLBACK ClientTCPCB (unsigned handle, int event, int error, void *callbackData)
-
 
484
{
-
 
485
    char receiveBuf[256] = {0};
-
 
486
    ssize_t dataSize         = sizeof (receiveBuf) - 1;
-
 
487
 
-
 
488
    switch (event)
-
 
489
        {
-
 
490
        case TCP_DATAREADY:
-
 
491
            if ((dataSize = ClientTCPRead (g_hconversation, receiveBuf,
-
 
492
                                           dataSize, 1000))
-
 
493
                < 0)
-
 
494
                {
-
 
495
                printf( "Receive Error\n");
-
 
496
                }
-
 
497
            else
-
 
498
                {
-
 
499
                receiveBuf[dataSize] = '\0';
-
 
500
                //printf("%s", receiveBuf);
-
 
501
                                                                float temp = 0;
-
 
502
                                                                float humidity = 0;
-
 
503
                                                                float dt=0;
-
 
504
                                                                float tdiff=0;
-
 
505
                                                                int t0 = 0;
-
 
506
                                                                sscanf(receiveBuf, "%d%f%f%f%f", &t0,&humidity,&temp, &tdiff, &dt);
-
 
507
                                                                SetCtrlVal(pn2,P2_TMON, temp);
-
 
508
                                                                SetCtrlVal(pn2,P2_HUMIDITY, humidity);
-
 
509
                                                                if (fabs(tdiff)<0.5 && fabs(dt) < 0.2)   SetCtrlVal(pn2,P2_LED, 1);
-
 
510
                                                                else  SetCtrlVal(pn2,P2_LED, 0);    
-
 
511
                }
-
 
512
            break;
-
 
513
        case TCP_DISCONNECT:
-
 
514
            MessagePopup ("TCP Client", "Server has closed connection!");
-
 
515
           
-
 
516
            g_connected = 0;
-
 
517
           
-
 
518
            break;
-
 
519
    }
-
 
520
    return 0;
-
 
521
}
-
 
522
 
-
 
523
 
-
 
524
void SetDimming(int state) {
-
 
525
        SetCtrlAttribute (pnl, P2_IVSCAN, ATTR_DIMMED, state);
-
 
526
        SetCtrlAttribute (pnl, P2_EXIT, ATTR_DIMMED, state);
-
 
527
        SetCtrlAttribute (pnl, P2_STOP, ATTR_DIMMED, !state);
-
 
528
}
-
 
529
 
-
 
530
void CVICALLBACK EndOfThread ( CmtThreadPoolHandle poolhandle,
-
 
531
                               CmtThreadFunctionID functionID, unsigned int event,
-
 
532
                               int value, void *callbackData  ) {
-
 
533
  SetDimming(0);
-
 
534
  printf("End of Thread \n");
-
 
535
  return ;
-
 
536
 
-
 
537
}
-
 
538
 
-
 
539
int ivscan (void *arg);
-
 
540
 
-
 
541
int TScan () {
-
 
542
 
-
 
543
        double temp;
-
 
544
        int n=0;
-
 
545
        int led;
-
 
546
        GetNumTableRows (pn2, P2_TABLE, &n );
-
 
547
        for(int i=0; i<n; i++) {
-
 
548
                GetTableCellVal (pn2, P2_TABLE, MakePoint (1,i+1), &temp);
-
 
549
                if (temp>100) break;  
-
 
550
                char transmitBuf[512]= {0};
-
 
551
                sprintf(transmitBuf, "1 %f\n", temp);
-
 
552
                SetCtrlVal(pn2,P2_LED, 0);    
-
 
553
                if (g_hconversation)
-
 
554
                                if ( ClientTCPWrite (g_hconversation, transmitBuf, strlen (transmitBuf), 1000) < 0) printf("Transmit Error\n");
-
 
555
                       
-
 
556
          do {
-
 
557
                        time_t t0 = time(NULL);
-
 
558
                        SetCtrlVal(pn2,P2_TIME, ctime(&t0));    
-
 
559
                        Delay(1);
-
 
560
                        GetCtrlVal(pn2,P2_LED, &led);
-
 
561
                        if (stop) break;
-
 
562
                }       while    (!led);
-
 
563
                if (stop) break;
-
 
564
               
-
 
565
                int itemp = (int) temp;
-
 
566
                ivscan(&itemp);
-
 
567
                printf("%d %f\n",i,temp);
-
 
568
        }
-
 
569
 
-
 
570
        return 0;
-
 
571
}
-
 
572
 
-
 
573
 
-
 
574
int CVICALLBACK TScanCB (int panel, int control, int event,
-
 
575
                                                                                                        void *callbackData, int eventData1, int eventData2) {
-
 
576
 
-
 
577
        switch (event) {
-
 
578
                case EVENT_COMMIT:{
-
 
579
                        ThreadFunctionPtr mythread = TScan;
-
 
580
                        CmtScheduleThreadPoolFunctionAdv (poolHandle, mythread, &rID,
-
 
581
                                        DEFAULT_THREAD_PRIORITY,
-
 
582
                                        EndOfThread,
-
 
583
                                        EVENT_TP_THREAD_FUNCTION_END,
-
 
584
                                        NULL, RUN_IN_SCHEDULED_THREAD,
-
 
585
                                        &tfID);
-
 
586
                }
-
 
587
                        break;
-
 
588
        }
-
 
589
        return 0;
-
 
590
}
391
 
591
 
392
int CVICALLBACK TimerOnOffCB (int panel, int control, int event,
592
int CVICALLBACK TimerOnOffCB (int panel, int control, int event,
393
                              void *callbackData, int eventData1, int eventData2)
593
                              void *callbackData, int eventData1, int eventData2)
394
{
594
{
395
  int state;
595
  int state;
Line 402... Line 602...
402
      } else {
602
      } else {
403
         SuspendTimerCallbacks ();
603
         SuspendTimerCallbacks ();
404
         printf ("Disabling timer....\n");
604
         printf ("Disabling timer....\n");
405
      }
605
      }
406
      break;
606
      break;
407
  }
607
  }
408
  return 0;
608
  return 0;
409
}
609
}
410
 
610
 
411
// reads the run number from the first line in the file
611
// reads the run number from the first line in the file
412
int GetRunNumberFromFile(char *fname) {
612
int GetRunNumberFromFile(char *fname) {
Line 418... Line 618...
418
 
618
 
419
  if ( GetFileInfo(fname,&size) ) fp = fopen(fname,"r");
619
  if ( GetFileInfo(fname,&size) ) fp = fopen(fname,"r");
420
 
620
 
421
  if (fp) {
621
  if (fp) {
422
    if (fgets(line,ndim,fp)!= NULL) current_run = atoi(line);
622
    if (fgets(line,ndim,fp)!= NULL) current_run = atoi(line);
423
    fclose(fp);
623
    fclose(fp);
424
  }
624
  }
425
  return current_run;
625
  return current_run;
426
 
626
 
427
}
627
}
428
 
628
 
429
int IncreaseRunNumberInFile(char *fname) {
629
int IncreaseRunNumberInFile(char *fname) {
430
 
630
 
431
  int current_run = GetRunNumberFromFile(fname);
631
  int current_run = GetRunNumberFromFile(fname);
432
  FILE *fp = fopen(fname,"w");
632
  FILE *fp = fopen(fname,"w");
433
 
633
 
434
  if (fp) {
634
  if (fp) {
435
    fprintf(fp,"%d", current_run+1 );
635
    fprintf(fp,"%d", current_run+1 );
436
    fclose(fp);
636
    fclose(fp);
437
  }
637
  }
438
  return current_run+1;
638
  return current_run+1;
439
}
639
}
-
 
640
 
440
 
641
 
441
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
642
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
442
                                           LPSTR lpszCmdLine, int nCmdShow)
643
                                           LPSTR lpszCmdLine, int nCmdShow)
443
{
644
{
444
    char cres[100];
645
    char cres[100];
445
  double Voltage, Current, tinterval;
646
  double Voltage, Current, tinterval;
446
  if (InitCVIRTE (hInstance, 0, 0) == 0) return -1;    /* out of memory */
647
  if (InitCVIRTE (hInstance, 0, 0) == 0) return -1;    /* out of memory */
447
                SetStdioPort (CVI_STDIO_WINDOW);
648
                SetStdioPort (CVI_STDIO_WINDOW);
-
 
649
        SetSleepPolicy(VAL_SLEEP_MORE);
-
 
650
  CmtNewThreadPool (MAX_THREADS,  &poolHandle);
-
 
651
       
448
        if ((pnl = LoadPanel (0, "K6517-ctrl.uir", P1)) < 0) return -1;  
652
        if ((pnl = LoadPanel (0, "K6517-ctrl.uir", P1)) < 0) return -1;  
449
        if ((pn2 = LoadPanel (0, "K6517-ctrl.uir", P2)) < 0) return -1;
653
        if ((pn2 = LoadPanel (0, "K6517-ctrl.uir", P2)) < 0) return -1;
450
       
-
 
-
 
654
        DisableBreakOnLibraryErrors();
451
        K6517_open (1,4,3,0,13);
655
        K6517_open (1,4,3,0,13);
452
         
656
         
453
 
657
 
454
  SetCtrlVal(pnl, P1_ONOFF, 0);
658
  SetCtrlVal(pnl, P1_ONOFF, 0);
455
  GetCtrlVal(pnl, P1_TINTERVAL, &tinterval);
659
  GetCtrlVal(pnl, P1_TINTERVAL, &tinterval);
456
  SetCtrlAttribute (pnl, P1_TIMER, ATTR_INTERVAL, tinterval);
660
  SetCtrlAttribute (pnl, P1_TIMER, ATTR_INTERVAL, tinterval);
457
  TimerOnOffCB(pnl, P1_TIMERON, EVENT_COMMIT,NULL,0,0);  
661
  TimerOnOffCB(pnl, P1_TIMERON, EVENT_COMMIT,NULL,0,0);  
458
  for (unsigned char  ch=0;ch<1;ch++){
662
  for (unsigned char  ch=0;ch<1;ch++){
Line 466... Line 670...
466
  }
670
  }
467
         
671
         
468
  DisplayPanel (pnl);
672
  DisplayPanel (pnl);
469
        DisplayPanel (pn2);
673
        DisplayPanel (pn2);
470
        RunUserInterface ();
674
        RunUserInterface ();
-
 
675
        CmtDiscardThreadPool (poolHandle);
-
 
676
        if (g_connected)
-
 
677
        DisconnectFromTCPServer (g_hconversation);
471
        DiscardPanel (pn2);
678
        DiscardPanel (pn2);
472
        DiscardPanel (pnl);
679
        DiscardPanel (pnl);
473
  K6517_close();  
680
  K6517_close();  
474
 
681
 
475
   if (gFp)  fclose(gFp);
682
   if (gFp)  fclose(gFp);
476
         
683
         
477
 
684
 
478
  return 0;
685
  return 0;
479
}
686
}
480
 
687
 
481
 
688
 
482
 
689
 
483
 
690
 
484
int CVICALLBACK SwitchOnOffCB (int panel, int control, int event,
691
int CVICALLBACK SwitchOnOffCB (int panel, int control, int event,
485
                               void *callbackData, int eventData1, int eventData2)
692
                               void *callbackData, int eventData1, int eventData2)
486
{
693
{
487
  unsigned char state;
694
  unsigned char state;
Line 494... Line 701...
494
  }
701
  }
495
  return 0;
702
  return 0;
496
}
703
}
497
 
704
 
498
int CVICALLBACK SetCB (int panel, int control, int event,
705
int CVICALLBACK SetCB (int panel, int control, int event,
499
                       void *callbackData, int eventData1, int eventData2)
706
                       void *callbackData, int eventData1, int eventData2)
500
{
707
{
501
 
708
 
502
  char cres[100];
709
  char cres[100];
503
        int i;
710
        int i;
504
  switch (event)
711
  switch (event)
505
  {
712
  {
506
    case EVENT_COMMIT:
713
    case EVENT_COMMIT:
507
       
714
       
508
      for (unsigned char ch = 0; ch<1;ch++){
715
      for (unsigned char ch = 0; ch<1;ch++){
509
        //printf("ch %d %x\n", ch, gMask);
716
        //printf("ch %d %x\n", ch, gMask);
510
        if (gMask){
717
        if (gMask){
511
          double Voltage;
718
          double Voltage;
512
          double Current;
719
          double Current;
513
          GetCtrlVal(panel, vset[ch], &Voltage);
720
          GetCtrlVal(panel, vset[ch], &Voltage);
514
          GetCtrlVal(panel, iset[ch], &Current);
721
          GetCtrlVal(panel, iset[ch], &Current);
515
          printf("->ch %d VSet %g Iset %g\n", ch, Voltage, Current);
722
          printf("->ch %d VSet %g Iset %g\n", ch, Voltage, Current);
516
                                       
723
                                       
517
                                        K6517_vsource_set (Voltage);
724
                                        K6517_vsource_set (Voltage);
518
                                        Voltage=K6517_vsource_get();
725
                                        Voltage=K6517_vsource_get();
519
                                       
726
                                       
520
          // TMI_Current(TMI_DeviceId, ch+1, Pre_1, Current);
727
          // TMI_Current(TMI_DeviceId, ch+1, Pre_1, Current);
521
                                        Current=K6517_get(cres,&i);  
728
                                        Current=K6517_get(cres,&i);  
522
          printf("<-ch %d VSet %g Iset %g\n", ch, Voltage, Current);  
729
          printf("<-ch %d VSet %g Iset %g\n", ch, Voltage, Current);  
523
         
730
         
524
        }
731
        }
525
      }  
732
      }  
526
      break;
733
      break;
527
  }
734
  }
528
  return 0;
735
  return 0;
529
}
736
}
530
 
737
 
531
int CVICALLBACK ReadCB (int panel, int control, int event,
738
int CVICALLBACK ReadCB (int panel, int control, int event,
532
                        void *callbackData, int eventData1, int eventData2)
739
                        void *callbackData, int eventData1, int eventData2)
533
{
740
{
534
 
741
 
535
   int iRet;
742
   int iRet;
536
         char ch=0;
743
         char ch=0;
537
         double Voltage;
744
         double Voltage;
538
   double Current;
745
   double Current;
Line 550... Line 757...
550
                                        cv_cc   = 1;
757
                                        cv_cc   = 1;
551
          printf("ch %d VSet %g Iset %g\n", ch, Voltage, Current);
758
          printf("ch %d VSet %g Iset %g\n", ch, Voltage, Current);
552
          SetCtrlVal(panel, vmon[ch], Voltage);
759
          SetCtrlVal(panel, vmon[ch], Voltage);
553
          SetCtrlVal(panel, imon[ch], Current);
760
          SetCtrlVal(panel, imon[ch], Current);
554
          SetCtrlVal(panel, cvcc[ch], cv_cc);
761
          SetCtrlVal(panel, cvcc[ch], cv_cc);
555
        }
762
        }
556
      }  
763
      }  
557
      break;
764
      break;
558
  }
765
  }
559
  return 0;
766
  return 0;
560
}
767
}
561
 
768
 
562
int CVICALLBACK SetIntervalCB (int panel, int control, int event,
769
int CVICALLBACK SetIntervalCB (int panel, int control, int event,
563
                               void *callbackData, int eventData1, int eventData2) {
770
                               void *callbackData, int eventData1, int eventData2) {
564
  double tinterval;
771
  double tinterval;
565
  switch (event) {
772
  switch (event) {
566
    case EVENT_COMMIT:
773
    case EVENT_COMMIT:
567
      GetCtrlVal(panel, control, &tinterval);
774
      GetCtrlVal(panel, control, &tinterval);
568
      SetCtrlAttribute (panel, P1_TIMER, ATTR_INTERVAL, tinterval);
775
      SetCtrlAttribute (panel, P1_TIMER, ATTR_INTERVAL, tinterval);
569
      break;
776
      break;
570
  }
777
  }
571
  return 0;
778
  return 0;
572
}
779
}
573
 
780
 
574
 
781
 
575
 
782
 
576
int CVICALLBACK ExitCB (int panel, int control, int event,
783
int CVICALLBACK ExitCB (int panel, int control, int event,
577
                        void *callbackData, int eventData1, int eventData2)
784
                        void *callbackData, int eventData1, int eventData2)
578
{
785
{
579
  switch (event)
786
  switch (event)
580
  {
787
  {
581
    case EVENT_COMMIT:
788
    case EVENT_COMMIT:
582
                        K6517_send (":OUTP OFF", 0);
789
                        K6517_send (":OUTP OFF", 0);
583
      QuitUserInterface(0);
790
      QuitUserInterface(0);
584
      break;
791
      break;
585
  }
792
  }
586
  return 0;
793
  return 0;
587
}
794
}
588
 
795
 
589
int CVICALLBACK SetMaskCB (int panel, int control, int event,
796
int CVICALLBACK SetMaskCB (int panel, int control, int event,
590
                           void *callbackData, int eventData1, int eventData2)
797
                           void *callbackData, int eventData1, int eventData2)
591
{ int ison;
798
{ int ison;
592
  switch (event)
799
  switch (event)
593
  {
800
  {
594
    case EVENT_COMMIT:
801
    case EVENT_COMMIT:
595
      GetCtrlVal(panel, control, &ison);
802
      GetCtrlVal(panel, control, &ison);
596
      for (int i=0;i<1;i++) if (control == radiob[i]) break;
803
      for (int i=0;i<1;i++) if (control == radiob[i]) break;
597
      gMask = ison;
804
      gMask = ison;
598
      break;
805
      break;
599
  }
806
  }
Line 618... Line 825...
618
int CVICALLBACK TimerCB (int panel, int control, int event,
825
int CVICALLBACK TimerCB (int panel, int control, int event,
619
                         void *callbackData, int eventData1, int eventData2)
826
                         void *callbackData, int eventData1, int eventData2)
620
{
827
{
621
  switch (event)
828
  switch (event)
622
  {
829
  {
623
     
830
     
624
      unsigned char   ch;
831
      unsigned char   ch;
625
      double current[4];
832
      double current[4];
626
      double voltage;
833
      double voltage;
627
      char cv_cc = 0;
834
      char cv_cc = 0;
628
                        char cres[100];
835
                        char cres[100];
Line 639... Line 846...
639
                fprintf(gFp,"#time\tch\tU\tI\tCV_CC\n");
846
                fprintf(gFp,"#time\tch\tU\tI\tCV_CC\n");
640
              }  
847
              }  
641
              fprintf(gFp,"%ul\t%d\t%g\t%g\t%d\n",  time(NULL), ch+1, voltage, current[ch], cv_cc);
848
              fprintf(gFp,"%ul\t%d\t%g\t%g\t%d\n",  time(NULL), ch+1, voltage, current[ch], cv_cc);
642
          }
849
          }
643
        }
850
        }
644
      }
851
      }
645
      PlotStripChart (panel, P1_GRAPH, current, 1, 0, 0, VAL_DOUBLE);
852
      PlotStripChart (panel, P1_GRAPH, current, 1, 0, 0, VAL_DOUBLE);
646
                        PlotStripChart (panel, P1_GRAPH_1, &voltage, 1, 0, 0, VAL_DOUBLE);
853
                        PlotStripChart (panel, P1_GRAPH_1, &voltage, 1, 0, 0, VAL_DOUBLE);
647
      break;
854
      break;
648
  }
855
  }
649
  return 0;
856
  return 0;
650
}
857
}
651
 
858
 
652
int CVICALLBACK TestCB (int panel, int control, int event,
859
int CVICALLBACK TestCB (int panel, int control, int event,
653
                                                                                                void *callbackData, int eventData1, int eventData2) {
860
                                                                                                void *callbackData, int eventData1, int eventData2) {
654
        switch (event) {
861
        switch (event) {
655
                case EVENT_COMMIT:
862
                case EVENT_COMMIT:
656
                        K6517_test();
863
                        K6517_test();
657
                        break;
864
                        break;
658
        }
865
        }
659
        return 0;
866
        return 0;
660
}
867
}
661
 
868
 
662
 
869
 
663
int CVICALLBACK IVSCANCB (int panel, int control, int event,
870
int ivscan (void *arg) {
664
                                                                                                        void *callbackData, int eventData1, int eventData2) {
871
        int *iarg = (int *) arg;
665
        int nsteps;
872
        int nsteps;
666
        double umin, umax, u;
873
        double umin, umax, u;
667
        double *xpoints;
874
        double *xpoints;
668
        double *ypoints;
875
        double *ypoints;
669
        static int plivhandle=0;
876
        static int plivhandle=0;
Line 680... Line 887...
680
        int overflow;
887
        int overflow;
681
        char ovf[10];
888
        char ovf[10];
682
        FILE *fp;
889
        FILE *fp;
683
        time_t mtime;
890
        time_t mtime;
684
        ssize_t size;
891
        ssize_t size;
-
 
892
                        int repeatscan = 1;
-
 
893
                  while (repeatscan){
-
 
894
               
685
       
895
               
686
        switch (event) {
-
 
687
                case EVENT_COMMIT:
-
 
688
                        K6517_send (":OUTP ON", 0);
896
                        K6517_send (":OUTP ON", 0);
689
        //              GetCtrlVal(panel, P2_UMIN, &umin);
-
 
690
        //              GetCtrlVal(panel, P2_UMAX, &umax); 
-
 
691
        //              GetCtrlVal(panel, P2_NSTEPS, &nsteps);
-
 
-
 
897
 
692
                        SetCtrlVal(pnl, P1_TIMERON, 0);
898
                        SetCtrlVal(pnl, P1_TIMERON, 0);
693
                        GetCtrlVal(panel, P2_FILENAME, fileName);
899
                        GetCtrlVal(pn2, P2_FILENAME, fileName);
694
                        GetCtrlVal(panel, P2_PATH, path);
900
                        GetCtrlVal(pn2, P2_PATH, path);
695
        //              GetCtrlVal(panel, P2_RANGE, &range);
-
 
-
 
901
 
696
                        TimerOnOffCB(pnl, P1_TIMERON, EVENT_COMMIT, NULL, 0, 0);
902
                        TimerOnOffCB(pnl, P1_TIMERON, EVENT_COMMIT, NULL, 0, 0);
-
 
903
                        GetCtrlVal(pn2, P2_REPEAT, &repeatscan);              
-
 
904
                        if (repeatscan) {
-
 
905
                                 int month, day, year, hours,minutes,seconds;
-
 
906
                                 GetSystemDate (&month,&day ,&year );
-
 
907
         GetSystemTime(&hours, &minutes, &seconds);
-
 
908
         sprintf(fname ,"%s/%s.%d_%d_%d_%d_%d.dat", path, fileName,year,month,day,hours,minutes );
-
 
909
                                 fp = fopen(fname,"w");  
-
 
910
                        } else {
-
 
911
                                if (*iarg>=100) sprintf(fname, "%s/%s.dat", path, fileName);
697
                        sprintf(fname, "%s/%s.dat", path, fileName);
912
                                else sprintf(fname, "%s/%s_T%d.dat", path, fileName,*iarg);
698
                        if ( !GetFileInfo(fname,&size) )
913
                        if ( !GetFileInfo(fname,&size) || strstr("test",fileName)!=NULL )
699
                                 fp = fopen(fname,"w");
914
                                 fp = fopen(fname,"w");
700
      else {  
915
        else {  
701
        sprintf(cres, "File %s exist\n Remove it first",fname);
916
         sprintf(cres, "File %s exist\n Remove it first",fname);
702
        MessagePopup ("Info", cres);
917
        MessagePopup ("Info", cres);
703
                                return 0;
918
                                return 0;
-
 
919
                          }
704
                        }
920
                        }
705
                        time(&mtime);
921
                        time(&mtime);
706
                        printf("#%s %s\n",DateStr(), TimeStr());
922
                        printf("#%s %s\n",DateStr(), TimeStr());
707
                        if (fp) fprintf(fp, "#%s %s\n",DateStr(), TimeStr());
923
                        if (fp) fprintf(fp, "#%s %s\n",DateStr(), TimeStr());
708
        //              K6517_current_mode (range);
924
        //              K6517_current_mode (range);
709
                        stop = 0;
925
                        stop = 0;
710
                        LogScaleCB (panel, P2_LOGSCALE, EVENT_COMMIT,NULL, 0, 0);
926
                        LogScaleCB (pn2, P2_LOGSCALE, EVENT_COMMIT,NULL, 0, 0);
711
                        int voltageMax[4]={P2_UMAX_1,P2_UMAX_2,P2_UMAX_3,P2_UMAX_4};
927
                        int voltageMax[4]={P2_UMAX_1,P2_UMAX_2,P2_UMAX_3,P2_UMAX_4};
712
                        int voltageMin[4]={P2_UMIN_1,P2_UMIN_2,P2_UMIN_3,P2_UMIN_4};
928
                        int voltageMin[4]={P2_UMIN_1,P2_UMIN_2,P2_UMIN_3,P2_UMIN_4};
713
                        int numberOfSteps[4]={P2_NSTEPS_1,P2_NSTEPS_2,P2_NSTEPS_3,P2_NSTEPS_4};
929
                        int numberOfSteps[4]={P2_NSTEPS_1,P2_NSTEPS_2,P2_NSTEPS_3,P2_NSTEPS_4};
714
                        int selectRange[4]={P2_RANGE_1,P2_RANGE_2,P2_RANGE_3,P2_RANGE_4};
930
                        int selectRange[4]={P2_RANGE_1,P2_RANGE_2,P2_RANGE_3,P2_RANGE_4};
715
                        int intervals[4]={P2_SLCT_1,P2_SLCT_2,P2_SLCT_3,P2_SLCT_4};
931
                        int intervals[4]={P2_SLCT_1,P2_SLCT_2,P2_SLCT_3,P2_SLCT_4};
716
                        int nrOfInt;
932
                        int nrOfInt;
717
                        int nrOfSteps;
933
                        int nrOfSteps;
718
                        int N=0;
934
                        int N=0;
719
                        int K=0;
935
                        int K=0;
720
                        for (int j=0;j<4;j++){
936
                        for (int j=0;j<4;j++){
721
                                GetCtrlVal(panel, intervals[j], &nrOfInt);
937
                                GetCtrlVal(pn2, intervals[j], &nrOfInt);
722
                                N = N + nrOfInt;
938
                                N = N + nrOfInt;
723
                                GetCtrlVal(panel, numberOfSteps[j], &nrOfSteps);
939
                                GetCtrlVal(pn2, numberOfSteps[j], &nrOfSteps);
724
                                K = K + nrOfSteps;
940
                                K = K + nrOfSteps;
725
                        }
941
                        }
726
                        xpoints = (double *) malloc ((K-N+2)*sizeof(double));
942
                        xpoints = (double *) malloc ((K-N+2)*sizeof(double)*4);
727
                        ypoints = (double *) malloc ((K-N+2)*sizeof(double));
943
                        ypoints = (double *) malloc ((K-N+2)*sizeof(double)*4);
728
                        int tockaK=0;
944
                        int tockaK=0;
-
 
945
                        double t1,t2;
-
 
946
                        GetCtrlVal(pn2, P2_DELAY, &t1);
-
 
947
                        GetCtrlVal(pn2, P2_DELAY2, &t2);
-
 
948
                       
729
                        for (int i=0;i<N;i++){
949
                        for (int i=0;i<N;i++){
730
                                GetCtrlVal(panel, voltageMin[i], &umin);
950
                                GetCtrlVal(pn2, voltageMin[i], &umin);
731
                                GetCtrlVal(panel, voltageMax[i], &umax);
951
                                GetCtrlVal(pn2, voltageMax[i], &umax);
732
                                GetCtrlVal(panel, numberOfSteps[i], &nsteps);
952
                                GetCtrlVal(pn2, numberOfSteps[i], &nsteps);
733
                                GetCtrlVal(panel, selectRange[i], &range);
953
                                GetCtrlVal(pn2, selectRange[i], &range);
734
                                K6517_current_mode (range);
954
                                K6517_current_mode (range);
735
                                for (int n=0;n<nsteps+1;n++){
955
                                for (int n=0;n<nsteps+1;n++){
-
 
956
                                       
736
                                        if (i>0) {
957
                                        if (i>0) {
737
                                                if(n==0) n++;
958
                                                if(n==0) n++;
738
                                        };
959
                                        };
739
                                        u= umin+ n*(umax-umin)/nsteps;
960
                                        u= umin+ n*(umax-umin)/nsteps;
-
 
961
                                        if (n==0) {
740
                                        K6517_vsource_set (u);
962
                                                K6517_vsource_set (u);
-
 
963
                                                Delay(1);
-
 
964
                                                K6517_get(cres,&k);
-
 
965
                                                K6517_vsource_set (u);
-
 
966
                                                Delay(1);
-
 
967
                                                K6517_get(cres,&k);
-
 
968
                                       
-
 
969
                                        }
-
 
970
                                        K6517_vsource_set (u);
-
 
971
                                        current =K6517_get(cres,&k);
-
 
972
                                        if (n==0)       Delay(t1);  
-
 
973
                                        Delay(t2);  
741
//                              voltage =K6517_vsource_get();
974
//                              voltage =K6517_vsource_get();
742
                current =K6517_get(cres,&k);
975
                current =K6517_get(cres,&k);
743
                                        if (current > range) printf("Overflow +\n");
976
//                                      if (current > range) printf("Overflow +\n");
744
                                        if (current < -range) printf("Overflow -\n");
977
//                                      if (current < -range) printf("Overflow -\n");
745
                                        voltage = u;
978
                                        voltage = u;
746
                                        xpoints[tockaK]= voltage;
979
                                        xpoints[tockaK]= voltage;
747
                                        ypoints[tockaK]= current;
980
                                        ypoints[tockaK]= current;
748
                                        SetCtrlVal(panel, P2_VMON, voltage);
981
                                        SetCtrlVal(pn2, P2_VMON, voltage);
-
 
982
                                        SetCtrlVal(pn2, P2_VCUR, current);
-
 
983
                                        double temperature=0;
-
 
984
                                        double humidity=0;
-
 
985
                                        GetCtrlVal(pn2, P2_TMON, &temperature);
-
 
986
                                        GetCtrlVal(pn2, P2_HUMIDITY, &humidity);
749
                                        if (fp) fprintf(fp, "%d %g %g %g\n",tockaK, u, voltage,current);
987
                                        if (fp) fprintf(fp, "%d %g %g %g %g %g\n",tockaK, u, voltage,current, humidity, temperature);
750
                                        printf("n=%d u=%g voltage=%g current=%g\n",tockaK, u, voltage,current);  
988
                                        if (debugCode) printf("n=%d u=%g voltage=%g current=%g\n",tockaK, u, voltage,current);  
751
                                        if (plivhandle) DeleteGraphPlot (panel, P2_GRAPHIV, plivhandle, VAL_IMMEDIATE_DRAW);
989
                                        if (plivhandle) DeleteGraphPlot (pn2, P2_GRAPHIV, plivhandle, VAL_IMMEDIATE_DRAW);
752
                                        plivhandle = PlotXY (panel, P2_GRAPHIV, xpoints, ypoints, tockaK+1, VAL_DOUBLE, VAL_DOUBLE, VAL_CONNECTED_POINTS, VAL_BOLD_X, VAL_SOLID, 1, VAL_RED);
990
                                        plivhandle = PlotXY (pn2, P2_GRAPHIV, xpoints, ypoints, tockaK+1, VAL_DOUBLE, VAL_DOUBLE, VAL_CONNECTED_POINTS, VAL_BOLD_X, VAL_SOLID, 1, VAL_RED);
753
                                        ProcessSystemEvents();
991
                                        ProcessSystemEvents();
754
                                        tockaK++;
992
                                        tockaK++;
755
                                        if (stop) break;
993
                                        if (stop) break;
756
                                }
994
                                }
-
 
995
                                if (stop) break;
757
                        }
996
                        }
-
 
997
                        u = 0;
-
 
998
                        K6517_vsource_set (u);
-
 
999
                        SetCtrlVal(pn2, P2_VMON, u);
-
 
1000
                       
-
 
1001
                        SetCtrlVal(pnl, P1_ONOFF, 0);
-
 
1002
                        K6517_vsource_operate (0);
758
                        fclose(fp);
1003
                        fclose(fp);
759
                        free(xpoints);
1004
                        free(xpoints);
760
                        free(ypoints);
1005
                        free(ypoints);
-
 
1006
                        if (stop) break;  
-
 
1007
                        if (repeatscan){
-
 
1008
                                 double period;
-
 
1009
                                 GetCtrlVal(pn2,P2_PERIOD,&period);
-
 
1010
                           while (period>0){
-
 
1011
                                         Delay(1);
-
 
1012
                                         period--;
-
 
1013
                                         SetCtrlVal(pn2,P2_NEXTSCAN, period);
-
 
1014
                                         if (stop) {
-
 
1015
                                           SetCtrlVal(pn2,P2_NEXTSCAN, 0);
-
 
1016
                                                 return 0;
-
 
1017
                                         }       
-
 
1018
                                 }       
-
 
1019
                        }
-
 
1020
                 
-
 
1021
                        }
-
 
1022
        return 0;
-
 
1023
}
-
 
1024
 
-
 
1025
 
-
 
1026
 
-
 
1027
 
-
 
1028
 
-
 
1029
int CVICALLBACK IVSCANCB (int panel, int control, int event,
-
 
1030
                                                                                                        void *callbackData, int eventData1, int eventData2) {
-
 
1031
       
-
 
1032
        rID=100;
-
 
1033
        switch (event) {
-
 
1034
                case EVENT_COMMIT:{
-
 
1035
                        ThreadFunctionPtr mythread = ivscan;
-
 
1036
                        CmtScheduleThreadPoolFunctionAdv (poolHandle, mythread, &rID,
-
 
1037
                                        DEFAULT_THREAD_PRIORITY,
-
 
1038
                                        EndOfThread,
-
 
1039
                                        EVENT_TP_THREAD_FUNCTION_END,
-
 
1040
                                        NULL, RUN_IN_SCHEDULED_THREAD,
-
 
1041
                                        &tfID);
-
 
1042
                }
761
                        break;
1043
                        break;
762
        }
1044
        }
763
        return 0;
1045
        return 0;
764
}
1046
}
-
 
1047
       
765
 
1048
 
766
int CVICALLBACK SETVOLTCB (int panel, int control, int event,
1049
int CVICALLBACK SETVOLTCB (int panel, int control, int event,
767
                                                                                                         void *callbackData, int eventData1, int eventData2) {
1050
                                                                                                         void *callbackData, int eventData1, int eventData2) {
768
        double voltage;
1051
        double voltage;
769
        switch (event) {
1052
        switch (event) {
770
                case EVENT_COMMIT:
1053
                case EVENT_COMMIT:
771
                        GetCtrlVal(panel, P2_VOLT, &voltage);
1054
                        GetCtrlVal(panel, P2_VOLT, &voltage);
772
                        K6517_vsource_set (voltage);
1055
                        K6517_vsource_set (voltage);
-
 
1056
                        SetCtrlVal(panel, P2_VMON, voltage);
773
                        break;
1057
                        break;
774
        }
1058
        }
775
        return 0;
1059
        return 0;
776
}
1060
}
777
 
1061
 
778
 
1062
 
779
int CVICALLBACK StopCB (int panel, int control, int event,
1063
int CVICALLBACK StopCB (int panel, int control, int event,
780
                                                                                                void *callbackData, int eventData1, int eventData2) {
1064
                                                                                                void *callbackData, int eventData1, int eventData2) {
781
        switch (event) {
1065
        switch (event) {
782
                case EVENT_COMMIT:
1066
                case EVENT_COMMIT:
783
                        stop = 1;
1067
                        stop = 1;
784
                        break;
1068
                        break;
785
        }
1069
        }
786
        return 0;
1070
        return 0;
787
}
1071
}
788
 
1072
 
789
int CVICALLBACK LogScaleCB (int panel, int control, int event,
1073
int CVICALLBACK LogScaleCB (int panel, int control, int event,
790
                                                                                                                void *callbackData, int eventData1, int eventData2) {
1074
                                                                                                                void *callbackData, int eventData1, int eventData2) {
791
        int selected;
1075
        int selected;
792
        switch (event) {
1076
        switch (event) {
Line 810... Line 1094...
810
      printf("Escape String %d %d \n",i[iptr] , i[iptr]==92 ) ;
1094
      printf("Escape String %d %d \n",i[iptr] , i[iptr]==92 ) ;
811
      //sa02Printf("Escape String %d %d \n",i[iptr] , ( (i[iptr] == 92) || (i[iptr] == 42) )) ;
1095
      //sa02Printf("Escape String %d %d \n",i[iptr] , ( (i[iptr] == 92) || (i[iptr] == 42) )) ;
812
      o[optr] = i[iptr];
1096
      o[optr] = i[iptr];
813
      optr++;
1097
      optr++;
814
    }
1098
    }
815
    o[optr] = i[iptr];
1099
    o[optr] = i[iptr];
816
  }
1100
  }
817
  o[optr] = '\0';
1101
  o[optr] = '\0';
818
  return 0;
1102
  return 0;
819
}
1103
}
820
 
1104
 
821
 
1105
 
822
int CVICALLBACK DrawCB (int panel, int control, int event,
1106
int CVICALLBACK DrawCB (int panel, int control, int event,
823
                                                                                                void *callbackData, int eventData1, int eventData2) {
1107
                                                                                                void *callbackData, int eventData1, int eventData2) {
824
        switch (event) {
1108
        switch (event) {
825
                case EVENT_COMMIT:{
1109
                case EVENT_COMMIT:{
826
                        char fileName[100];
1110
                        char fileName[100];
827
                        char fname[100];
1111
                        char fname[100];
828
                        char path[100];
1112
                        char path[100];
829
                        GetCtrlVal(panel, P2_FILENAME, fileName);
1113
                        GetCtrlVal(panel, P2_FILENAME, fileName);
830
                        GetCtrlVal(panel, P2_PATH, path);
1114
                        GetCtrlVal(panel, P2_PATH, path);
831
                        sprintf(fname, "%s/%s.dat", path, fileName);
1115
                        sprintf(fname, "%s/%s.dat", path, fileName);
832
                        int status;
1116
                        int status;
833
                        char name[MAX_PATHNAME_LEN];
1117
                        char name[MAX_PATHNAME_LEN];
834
//      char dfile[MAX_PATHNAME_LEN];
1118
//      char dfile[MAX_PATHNAME_LEN];
835
//      char efile[MAX_PATHNAME_LEN];
1119
//      char efile[MAX_PATHNAME_LEN];
836
//      status = FileSelectPopup ("dat", "*.dat", ".dat",
1120
//      status = FileSelectPopup ("dat", "*.dat", ".dat",
837
//                                "Izberi datoteko s podatki",
1121
//                                "Izberi datoteko s podatki",
838
//                                VAL_LOAD_BUTTON, 0, 0, 1, 0, efile);
1122
//                                VAL_LOAD_BUTTON, 0, 0, 1, 0, efile);
Line 847... Line 1131...
847
        return 0;
1131
        return 0;
848
}
1132
}
849
 
1133
 
850
 
1134
 
851
int CVICALLBACK Print (int panel, int control, int event,
1135
int CVICALLBACK Print (int panel, int control, int event,
852
                       void *callbackData, int eventData1, int eventData2) {
1136
                       void *callbackData, int eventData1, int eventData2) {
853
  char dfile[MAX_PATHNAME_LEN];
1137
  char dfile[MAX_PATHNAME_LEN];
854
  char name[MAX_PATHNAME_LEN];
1138
  char name[MAX_PATHNAME_LEN];
855
  int h2=0;
1139
  int h2=0;
856
  switch (event) {
1140
  switch (event) {
857
    case EVENT_COMMIT: {
1141
    case EVENT_COMMIT: {
Line 867... Line 1151...
867
          SaveCtrlDisplayToFile (panel,P2_GRAPHIV, 0, -1, -1, dfile);
1151
          SaveCtrlDisplayToFile (panel,P2_GRAPHIV, 0, -1, -1, dfile);
868
          printf("bmp image saved as %s\n", dfile);
1152
          printf("bmp image saved as %s\n", dfile);
869
       
1153
       
870
      //PrintCtrl (p1h, P1_GRAPH2D, "sa02_CVI", 1, 1);
1154
      //PrintCtrl (p1h, P1_GRAPH2D, "sa02_CVI", 1, 1);
871
    }
1155
    }
872
    break;
1156
    break;
873
  }
1157
  }
874
  return 0;
1158
  return 0;
875
}
1159
}
876
 
1160
 
877
int CVICALLBACK DebugCB (int panel, int control, int event,
1161
int CVICALLBACK DebugCB (int panel, int control, int event,
878
                                                                                                 void *callbackData, int eventData1, int eventData2) {
1162
                                                                                                 void *callbackData, int eventData1, int eventData2) {
879
        int selected;
1163
        int selected;
880
        int debugCode;
1164
       
881
        switch (event) {
1165
        switch (event) {
882
                case EVENT_COMMIT:
1166
                case EVENT_COMMIT:
883
                        GetCtrlVal(panel, control, &selected);
1167
                        GetCtrlVal(panel, control, &selected);
884
                        if(selected) debugCode = 1;
1168
                        if(selected) debugCode = 1;
885
                        else debugCode = 0;
1169
                        else debugCode = 0;
886
                        break;
1170
                        break;
Line 896... Line 1180...
896
      QuitUserInterface(0);
1180
      QuitUserInterface(0);
897
                        break;
1181
                        break;
898
        }
1182
        }
899
        return 0;
1183
        return 0;
900
}
1184
}
-
 
1185
 
-
 
1186
 
-
 
1187
 
901
#endif 
1188
#endif