Subversion Repositories f9daq

Compare Revisions

Ignore whitespace Rev 256 → Rev 360

/cvi/instr/K617/K617.c
272,20 → 272,12
return;
}
 
#ifdef K617_MAIN
 
#include <cvirte.h>
 
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
void _VI_FUNC K617_test (void)
{
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);
311,9 → 303,260
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