Subversion Repositories f9daq

Rev

Rev 304 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 304 Rev 313
Line 181... Line 181...
181
  len=sprintf(cmd,"G%0dX",mode);
181
  len=sprintf(cmd,"G%0dX",mode);
182
  K6517_send (cmd, len);
182
  K6517_send (cmd, len);
183
  return;
183
  return;
184
}
184
}
185
 
185
 
-
 
186
int _VI_FUNC K6517_EventStatus ()    
-
 
187
{
-
 
188
  K6517_send (":STATUS:MEAS:EVEN?",0);
-
 
189
        char cres[100];
-
 
190
        cres[0]= 0;
-
 
191
        int len = K6517_receive (cres, 50);
-
 
192
        if (len>0)
-
 
193
          return atoi(cres);
-
 
194
        else
-
 
195
                return -1;
-
 
196
}
186
double _VI_FUNC K6517_get (char *prefix, int *loc)
197
double _VI_FUNC K6517_get (char *prefix, int *loc)
187
{
198
{
188
 
199
 
189
  double value;
200
  double value;
190
  char cres[100];
201
  char cres[100];
Line 271... Line 282...
271
  char cmd[100];
282
  char cmd[100];
272
  len=sprintf(cmd,":SOURCE:VOLTAGE %f",value);
283
  len=sprintf(cmd,":SOURCE:VOLTAGE %f",value);
273
  K6517_send (cmd, len);
284
  K6517_send (cmd, len);
274
        len=sprintf(cmd,":SOURCE:VOLTAGE:MCONNECT ON");
285
        len=sprintf(cmd,":SOURCE:VOLTAGE:MCONNECT ON");
275
  K6517_send (cmd, len);
286
  K6517_send (cmd, len);
276
  return;
287
  return;
277
}
288
}
278
 
289
 
279
double _VI_FUNC K6517_vsource_get (void)
290
double _VI_FUNC K6517_vsource_get (void)
280
{
291
{
281
  double value;
292
  double value;
282
 
293
 
Line 409... Line 420...
409
/* Internal function prototypes                                              */
420
/* Internal function prototypes                                              */
410
/*---------------------------------------------------------------------------*/
421
/*---------------------------------------------------------------------------*/
411
int CVICALLBACK ClientTCPCB (unsigned handle, int event, int error,
422
int CVICALLBACK ClientTCPCB (unsigned handle, int event, int error,
412
                             void *callbackData);
423
                             void *callbackData);
413
static void ReportTCPError (void);
424
static void ReportTCPError (void);
414
 
425
 
415
/*---------------------------------------------------------------------------*/
426
/*---------------------------------------------------------------------------*/
416
/* Module-globals                                                            */
427
/* Module-globals                                                            */
417
/*---------------------------------------------------------------------------*/
428
/*---------------------------------------------------------------------------*/
418
static unsigned int g_hconversation;
429
static unsigned int g_hconversation;
419
static int          g_hmainPanel;
430
static int          g_hmainPanel;
Line 455... Line 466...
455
        int portNum=10000;
466
        int portNum=10000;
456
        char tempBuf[512];
467
        char tempBuf[512];
457
        sprintf(tempBuf,"localhost");
468
        sprintf(tempBuf,"localhost");
458
        switch (event) {
469
        switch (event) {
459
                case EVENT_COMMIT:
470
                case EVENT_COMMIT:
-
 
471
                        if (g_connected) return 0;
460
                        if (ConnectToTCPServer (&g_hconversation, portNum, tempBuf, ClientTCPCB, NULL, 5000) < 0)
472
                        if (ConnectToTCPServer (&g_hconversation, portNum, tempBuf, ClientTCPCB, NULL, 5000) < 0)
461
        MessagePopup("TCP Client", "Connection to server failed !");
473
        MessagePopup("TCP Client", "Connection to server failed !");
462
    else
474
    else
463
        {
475
        {
464
        SetWaitCursor (0);
476
        SetWaitCursor (0);
Line 504... Line 516...
504
                                                                float tdiff=0;
516
                                                                float tdiff=0;
505
                                                                int t0 = 0;
517
                                                                int t0 = 0;
506
                                                                sscanf(receiveBuf, "%d%f%f%f%f", &t0,&humidity,&temp, &tdiff, &dt);
518
                                                                sscanf(receiveBuf, "%d%f%f%f%f", &t0,&humidity,&temp, &tdiff, &dt);
507
                                                                SetCtrlVal(pn2,P2_TMON, temp);
519
                                                                SetCtrlVal(pn2,P2_TMON, temp);
508
                                                                SetCtrlVal(pn2,P2_HUMIDITY, humidity);
520
                                                                SetCtrlVal(pn2,P2_HUMIDITY, humidity);
509
                                                                if (fabs(tdiff)<0.5 && fabs(dt) < 0.2)   SetCtrlVal(pn2,P2_LED, 1);
521
                                                                if (fabs(tdiff)<0.2 && fabs(dt) < 0.05)          SetCtrlVal(pn2,P2_LED, 1);
510
                                                                else  SetCtrlVal(pn2,P2_LED, 0);    
522
                                                                else  SetCtrlVal(pn2,P2_LED, 0);    
511
                }
523
                }
512
            break;
524
            break;
513
        case TCP_DISCONNECT:
525
        case TCP_DISCONNECT:
514
            MessagePopup ("TCP Client", "Server has closed connection!");
526
            MessagePopup ("TCP Client", "Server has closed connection!");
Line 542... Line 554...
542
 
554
 
543
        double temp;
555
        double temp;
544
        int n=0;
556
        int n=0;
545
        int led;
557
        int led;
546
        GetNumTableRows (pn2, P2_TABLE, &n );
558
        GetNumTableRows (pn2, P2_TABLE, &n );
-
 
559
        stop = 0;
547
        for(int i=0; i<n; i++) {
560
        for(int i=0; i<n; i++) {
-
 
561
                if (stop) break;
548
                GetTableCellVal (pn2, P2_TABLE, MakePoint (1,i+1), &temp);
562
                GetTableCellVal (pn2, P2_TABLE, MakePoint (1,i+1), &temp);
549
                if (temp>100) break;  
563
                if (temp>100) break;  
550
                char transmitBuf[512]= {0};
564
                char transmitBuf[512]= {0};
551
                sprintf(transmitBuf, "1 %f\n", temp);
565
                sprintf(transmitBuf, "1 %f\n", temp);
-
 
566
               
552
                SetCtrlVal(pn2,P2_LED, 0);    
567
               
553
                if (g_hconversation)
568
                if (g_connected)
554
                                if ( ClientTCPWrite (g_hconversation, transmitBuf, strlen (transmitBuf), 1000) < 0) printf("Transmit Error\n");
569
                                if ( ClientTCPWrite (g_hconversation, transmitBuf, strlen (transmitBuf), 1000) < 0) printf("Transmit Error\n"); else  printf("%s\n", transmitBuf);
555
                       
570
                SetCtrlVal(pn2,P2_LED, 0);     
556
          do {
571
          do {
557
                        time_t t0 = time(NULL);
572
                        time_t t0 = time(NULL);
558
                        SetCtrlVal(pn2,P2_TIME, ctime(&t0));    
573
                        SetCtrlVal(pn2,P2_TIME, ctime(&t0));    
559
                        Delay(1);
574
                        Delay(1);
560
                        GetCtrlVal(pn2,P2_LED, &led);
575
                        GetCtrlVal(pn2,P2_LED, &led);
-
 
576
                        if (led) {
-
 
577
                                for (int k=0;k<10;k++){
-
 
578
                                        Delay(1);
-
 
579
                                        if (stop) break;
-
 
580
                                }      
-
 
581
                          GetCtrlVal(pn2,P2_LED, &led);
-
 
582
                        }      
561
                        if (stop) break;
583
                        if (stop) break;
562
                }       while    (!led);
584
                }       while    (!led);
563
                if (stop) break;
585
                if (stop) break;
564
               
586
               
565
                int itemp = (int) temp;
587
                int itemp = (int) temp;
Line 971... Line 993...
971
                                        current =K6517_get(cres,&k);
993
                                        current =K6517_get(cres,&k);
972
                                        if (n==0)       Delay(t1);  
994
                                        if (n==0)       Delay(t1);  
973
                                        Delay(t2);  
995
                                        Delay(t2);  
974
//                              voltage =K6517_vsource_get();
996
//                              voltage =K6517_vsource_get();
975
                current =K6517_get(cres,&k);
997
                current =K6517_get(cres,&k);
-
 
998
                                        int status = K6517_EventStatus();
-
 
999
                                        SetCtrlVal(pn2,P2_STATUS, status);
-
 
1000
                                        SetCtrlVal(pn2,P2_OVERFLOW, status & 0x1);
976
//                                      if (current > range) printf("Overflow +\n");
1001
//                                      if (current > range) printf("Overflow +\n");
977
//                                      if (current < -range) printf("Overflow -\n");
1002
//                                      if (current < -range) printf("Overflow -\n");
-
 
1003
                                        if (status & 0x1){
-
 
1004
                                                  if (range>0) range*=10;
-
 
1005
                                            K6517_current_mode (range);
-
 
1006
                                                        Delay(1);
-
 
1007
                                                        current =K6517_get(cres,&k);
-
 
1008
                                                        status = K6517_EventStatus();
-
 
1009
                                            SetCtrlVal(pn2,P2_STATUS, status);
-
 
1010
                                            SetCtrlVal(pn2,P2_OVERFLOW, status & 0x1);
-
 
1011
                                        }
978
                                        voltage = u;
1012
                                        voltage = u;
979
                                        xpoints[tockaK]= voltage;
1013
                                        xpoints[tockaK]= voltage;
980
                                        ypoints[tockaK]= current;
1014
                                        ypoints[tockaK]= current;
981
                                        SetCtrlVal(pn2, P2_VMON, voltage);
1015
                                        SetCtrlVal(pn2, P2_VMON, voltage);
982
                                        SetCtrlVal(pn2, P2_VCUR, current);
1016
                                        SetCtrlVal(pn2, P2_VCUR, current);
983
                                        double temperature=0;
1017
                                        double temperature=0;
984
                                        double humidity=0;
1018
                                        double humidity=0;
985
                                        GetCtrlVal(pn2, P2_TMON, &temperature);
1019
                                        GetCtrlVal(pn2, P2_TMON, &temperature);
986
                                        GetCtrlVal(pn2, P2_HUMIDITY, &humidity);
1020
                                        GetCtrlVal(pn2, P2_HUMIDITY, &humidity);
987
                                        if (fp) fprintf(fp, "%d %g %g %g %g %g\n",tockaK, u, voltage,current, humidity, temperature);
1021
                                        if (fp) fprintf(fp, "%d %g %g %g %g %g %d\n",tockaK, u, voltage,current, humidity, temperature, status);
988
                                        if (debugCode) printf("n=%d u=%g voltage=%g current=%g\n",tockaK, u, voltage,current);  
1022
                                        if (debugCode) printf("n=%d u=%g voltage=%g current=%g\n",tockaK, u, voltage,current);  
989
                                        if (plivhandle) DeleteGraphPlot (pn2, P2_GRAPHIV, plivhandle, VAL_IMMEDIATE_DRAW);
1023
                                        if (plivhandle) DeleteGraphPlot (pn2, P2_GRAPHIV, plivhandle, VAL_IMMEDIATE_DRAW);
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);
1024
                                        plivhandle = PlotXY (pn2, P2_GRAPHIV, xpoints, ypoints, tockaK+1, VAL_DOUBLE, VAL_DOUBLE, VAL_CONNECTED_POINTS, VAL_BOLD_X, VAL_SOLID, 1, VAL_RED);
991
                                        ProcessSystemEvents();
1025
                                        ProcessSystemEvents();
992
                                        tockaK++;
1026
                                        tockaK++;