| 272,12 → 272,20 |
| return; |
| } |
| |
| void _VI_FUNC K617_test (void) |
| #ifdef K617_MAIN |
| |
| #include <cvirte.h> |
| |
| int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
| LPSTR lpszCmdLine, int nCmdShow) |
| { |
| int i; |
| int i; |
| double value; |
| char cres[100]; |
| |
| if (InitCVIRTE (hInstance, 0, 0) == 0) return -1; /* out of memory */ |
| |
| K617_open (1,5,3,0,13); |
| K617_clear (); |
| K617_current_mode (4); |
| K617_zero_correct (1); |
| 303,260 → 311,9 |
| Delay(5); |
| K617_vsource_operate (0); |
| |
| K617_close(); |
| |
| } |
| |
| #ifdef K617_MAIN |
| |
| #include <cvirte.h> |
| #include <userint.h> |
| #include "K617-ctrl.h" |
| int pnl; int gLogToFile; |
| int vmon[4]={P1_VMON_1}; |
| int imon[4]={P1_IMON_1 }; |
| int vset[4]={P1_U_1 }; |
| int iset[4]={P1_I_1 }; |
| int radiob[4]={P1_BOX_1 }; |
| |
| int cvcc[4]={P1_CVCC_1 }; |
| const unsigned char Pre_1 = 1; |
| int gMask=0xF; |
| |
| int pnl; |
| FILE *gFp; |
| int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
| LPSTR lpszCmdLine, int nCmdShow) |
| { |
| char cres[100]; |
| double Voltage, Current, tinterval; |
| if (InitCVIRTE (hInstance, 0, 0) == 0) return -1; /* out of memory */ |
| SetStdioPort (CVI_STDIO_WINDOW); |
| if ((pnl = LoadPanel (0, "K617-ctrl.uir", P1)) < 0) return -1; |
| |
| K617_open (1,4,3,0,13); |
| |
| |
| SetCtrlVal(pnl, P1_ONOFF, 0); |
| GetCtrlVal(pnl, P1_TINTERVAL, &tinterval); |
| SetCtrlAttribute (pnl, P1_TIMER, ATTR_INTERVAL, tinterval); |
| |
| for (unsigned char ch=0;ch<1;ch++){ |
| int ison,i; |
| Voltage =K617_vsource_get(); |
| Current =K617_get(cres,&i); |
| SetCtrlVal(pnl, vset[ch], Voltage); |
| SetCtrlVal(pnl, iset[ch], Current); |
| GetCtrlVal(pnl, radiob[ch], &ison); |
| gMask = ison; |
| } |
| |
| DisplayPanel (pnl); |
| RunUserInterface (); |
| DiscardPanel (pnl); |
| K617_close(); |
| |
| if (gFp) fclose(gFp); |
| |
| |
| return 0; |
| } |
| |
| |
| |
| |
| int CVICALLBACK SwitchOnOffCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) |
| { |
| unsigned char state; |
| switch (event) |
| { |
| case EVENT_COMMIT: |
| GetCtrlVal(panel, control, &state); |
| K617_vsource_operate (state); |
| break; |
| } |
| return 0; |
| } |
| |
| int CVICALLBACK SetCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) |
| { |
| |
| char cres[100]; |
| int i; |
| switch (event) |
| { |
| case EVENT_COMMIT: |
| |
| for (unsigned char ch = 0; ch<1;ch++){ |
| //printf("ch %d %x\n", ch, gMask); |
| if (gMask){ |
| double Voltage; |
| double Current; |
| GetCtrlVal(panel, vset[ch], &Voltage); |
| GetCtrlVal(panel, iset[ch], &Current); |
| printf("->ch %d VSet %g Iset %g\n", ch, Voltage, Current); |
| |
| K617_vsource_set (Voltage); |
| Voltage=K617_vsource_get(); |
| |
| // TMI_Current(TMI_DeviceId, ch+1, Pre_1, Current); |
| Current=K617_get(cres,&i); |
| printf("<-ch %d VSet %g Iset %g\n", ch, Voltage, Current); |
| |
| } |
| } |
| break; |
| } |
| return 0; |
| } |
| |
| int CVICALLBACK ReadCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) |
| { |
| |
| int iRet; |
| char ch=0; |
| double Voltage; |
| double Current; |
| char cv_cc; |
| char cres[100]; |
| |
| switch (event) |
| { |
| case EVENT_COMMIT: |
| for (ch = 0; ch<1;ch++){ |
| if (gMask){ |
| int ison,i; |
| Voltage =K617_vsource_get(); |
| Current =K617_get(cres,&i); |
| cv_cc = 1; |
| printf("ch %d VSet %g Iset %g\n", ch, Voltage, Current); |
| SetCtrlVal(panel, vmon[ch], Voltage); |
| SetCtrlVal(panel, imon[ch], Current); |
| SetCtrlVal(panel, cvcc[ch], cv_cc); |
| } |
| } |
| break; |
| } |
| return 0; |
| } |
| |
| int CVICALLBACK SetIntervalCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) { |
| double tinterval; |
| switch (event) { |
| case EVENT_COMMIT: |
| GetCtrlVal(panel, control, &tinterval); |
| SetCtrlAttribute (panel, P1_TIMER, ATTR_INTERVAL, tinterval); |
| break; |
| } |
| return 0; |
| } |
| |
| int CVICALLBACK TimerOnOffCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) |
| { |
| int state; |
| switch (event) |
| { |
| case EVENT_COMMIT: |
| GetCtrlVal(panel, control, &state); |
| if (state){ |
| ResumeTimerCallbacks(); |
| } else { |
| SuspendTimerCallbacks (); |
| printf ("Disabling timer....\n"); |
| } |
| break; |
| } |
| return 0; |
| } |
| |
| int CVICALLBACK ExitCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) |
| { |
| switch (event) |
| { |
| case EVENT_COMMIT: |
| QuitUserInterface(0); |
| break; |
| } |
| return 0; |
| } |
| |
| int CVICALLBACK SetMaskCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) |
| { int ison; |
| switch (event) |
| { |
| case EVENT_COMMIT: |
| GetCtrlVal(panel, control, &ison); |
| for (int i=0;i<1;i++) if (control == radiob[i]) break; |
| gMask = ison; |
| break; |
| } |
| return 0; |
| } |
| |
| |
| int CVICALLBACK LogToFileCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) |
| { |
| |
| switch (event) |
| { |
| case EVENT_COMMIT: |
| GetCtrlVal(panel, control, &gLogToFile); |
| |
| break; |
| } |
| return 0; |
| } |
| |
| int CVICALLBACK TimerCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) |
| { |
| switch (event) |
| { |
| |
| unsigned char ch; |
| double current[4]; |
| double voltage; |
| char cv_cc = 0; |
| char cres[100]; |
| int i=0; |
| case EVENT_TIMER_TICK: |
| for (ch = 0; ch<1;ch++){ |
| if (gMask){ |
| voltage =K617_vsource_get(); |
| current[ch] =K617_get(cres,&i); |
| |
| if (gLogToFile){ |
| if (!gFp) { |
| gFp= fopen("K617.log","w"); |
| fprintf(gFp,"#time\tch\tU\tI\tCV_CC\n"); |
| } |
| fprintf(gFp,"%ul\t%d\t%g\t%g\t%d\n", time(NULL), ch+1, voltage, current[ch], cv_cc); |
| } |
| } |
| } |
| PlotStripChart (panel, P1_GRAPH, current, 1, 0, 0, VAL_DOUBLE); |
| PlotStripChart (panel, P1_GRAPH_1, &voltage, 1, 0, 0, VAL_DOUBLE); |
| break; |
| } |
| return 0; |
| } |
| |
| int CVICALLBACK TestCB (int panel, int control, int event, |
| void *callbackData, int eventData1, int eventData2) { |
| switch (event) { |
| case EVENT_COMMIT: |
| K617_test(); |
| break; |
| } |
| return 0; |
| } |
| |
| #endif |
| |