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 |
|