/cvi/instr/K617/K617-ctrl.h |
---|
0,0 → 1,62 |
/**************************************************************************/ |
/* LabWindows/CVI User Interface Resource (UIR) Include File */ |
/* */ |
/* WARNING: Do not add to, delete from, or otherwise modify the contents */ |
/* of this include file. */ |
/**************************************************************************/ |
#include <userint.h> |
#ifdef __cplusplus |
extern "C" { |
#endif |
/* Panels and Controls: */ |
#define P1 1 |
#define P1_TEST 2 /* control type: command, callback function: TestCB */ |
#define P1_EXIT 3 /* control type: command, callback function: ExitCB */ |
#define P1_U_1 4 /* control type: numeric, callback function: (none) */ |
#define P1_I_1 5 /* control type: numeric, callback function: (none) */ |
#define P1_BOX_1 6 /* control type: radioButton, callback function: SetMaskCB */ |
#define P1_READ 7 /* control type: command, callback function: ReadCB */ |
#define P1_SET 8 /* control type: command, callback function: SetCB */ |
#define P1_IMON_1 9 /* control type: numeric, callback function: (none) */ |
#define P1_VMON_1 10 /* control type: numeric, callback function: (none) */ |
#define P1_TIMERON 11 /* control type: binary, callback function: TimerOnOffCB */ |
#define P1_LOG 12 /* control type: radioButton, callback function: LogToFileCB */ |
#define P1_CVCC_1 13 /* control type: LED, callback function: (none) */ |
#define P1_TIMER 14 /* control type: timer, callback function: TimerCB */ |
#define P1_ONOFF 15 /* control type: binary, callback function: SwitchOnOffCB */ |
#define P1_TINTERVAL 16 /* control type: numeric, callback function: SetIntervalCB */ |
#define P1_GRAPH_1 17 /* control type: strip, callback function: (none) */ |
#define P1_GRAPH 18 /* control type: strip, callback function: (none) */ |
/* Control Arrays: */ |
/* (no control arrays in the resource file) */ |
/* Menu Bars, Menus, and Menu Items: */ |
/* (no menu bars in the resource file) */ |
/* Callback Prototypes: */ |
int CVICALLBACK ExitCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
int CVICALLBACK LogToFileCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
int CVICALLBACK ReadCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
int CVICALLBACK SetCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
int CVICALLBACK SetIntervalCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
int CVICALLBACK SetMaskCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
int CVICALLBACK SwitchOnOffCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
int CVICALLBACK TestCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
int CVICALLBACK TimerCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
int CVICALLBACK TimerOnOffCB(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
#ifdef __cplusplus |
} |
#endif |
/cvi/instr/K617/K617-ctrl.uir |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/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 |
/cvi/instr/K617/K617.prj |
---|
1,6 → 1,6 |
[Project Header] |
Version = 1302 |
Pathname = "/c/home/cvi/instr/K617/K617.prj" |
Pathname = "/c/home/CVI/instr/K617/K617.prj" |
CVI Dir = "/c/program files/national instruments/cvi2013" |
CVI Shared Dir = "/C/Program Files/National Instruments/Shared/CVI" |
CVI Pub Local Dir = "/C/ProgramData/National Instruments/CVI2013" |
9,7 → 9,7 |
VXIplug&play Framework Dir = "/C/Program Files/IVI Foundation/VISA/winnt" |
IVI Standard Root 64-bit Dir = "/C/Program Files/IVI Foundation/IVI" |
VXIplug&play Framework 64-bit Dir = "/C/Program Files/IVI Foundation/VISA/win64" |
Number of Files = 4 |
Number of Files = 5 |
Target Type = "Executable" |
Flags = 16 |
Copied From Locked InstrDrv Directory = False |
18,7 → 18,6 |
Don't Display Deploy InstrDrv Dialog = False |
[Folders] |
User Interface Files Folder Not Added Yet = True |
Library Files Folder Not Added Yet = True |
Folder 0 = "Source Files" |
FolderEx 0 = "Source Files" |
26,6 → 25,8 |
FolderEx 1 = "Instrument Files" |
Folder 2 = "Include Files" |
FolderEx 2 = "Include Files" |
Folder 3 = "User Interface Files" |
FolderEx 3 = "User Interface Files" |
[File 0001] |
File Type = "CSource" |
33,7 → 34,7 |
Path Is Rel = True |
Path Rel To = "Project" |
Path Rel Path = "K617.c" |
Path = "/c/home/cvi/instr/K617/K617.c" |
Path = "/c/home/CVI/instr/K617/K617.c" |
Exclude = False |
Compile Into Object File = False |
Project Flags = 0 |
46,7 → 47,7 |
Path Is Rel = True |
Path Rel To = "Project" |
Path Rel Path = "K617.fp" |
Path = "/c/home/cvi/instr/K617/K617.fp" |
Path = "/c/home/CVI/instr/K617/K617.fp" |
Exclude = False |
Project Flags = 0 |
Folder = "Instrument Files" |
58,7 → 59,7 |
Path Is Rel = True |
Path Rel To = "Project" |
Path Rel Path = "../PROLOGIX/prologix.fp" |
Path = "/c/home/cvi/instr/PROLOGIX/prologix.fp" |
Path = "/c/home/CVI/instr/PROLOGIX/prologix.fp" |
Exclude = False |
Project Flags = 0 |
Folder = "Instrument Files" |
70,12 → 71,24 |
Path Is Rel = True |
Path Rel To = "Project" |
Path Rel Path = "K617.h" |
Path = "/c/home/cvi/instr/K617/K617.h" |
Path = "/c/home/CVI/instr/K617/K617.h" |
Exclude = False |
Project Flags = 0 |
Folder = "Include Files" |
Folder Id = 2 |
[File 0005] |
File Type = "User Interface Resource" |
Res Id = 5 |
Path Is Rel = True |
Path Rel To = "Project" |
Path Rel Path = "K617-ctrl.uir" |
Path = "/c/home/CVI/instr/K617/K617-ctrl.uir" |
Exclude = False |
Project Flags = 0 |
Folder = "User Interface Files" |
Folder Id = 3 |
[Custom Build Configs] |
Num Custom Build Configs = 0 |
368,19 → 381,19 |
Executable File_Debug Is Rel = True |
Executable File_Debug Rel To = "Project" |
Executable File_Debug Rel Path = "K617_dbg.exe" |
Executable File_Debug = "/c/home/cvi/instr/K617/K617_dbg.exe" |
Executable File_Debug = "/c/home/CVI/instr/K617/K617_dbg.exe" |
Executable File_Release Is Rel = True |
Executable File_Release Rel To = "Project" |
Executable File_Release Rel Path = "K617.exe" |
Executable File_Release = "/c/home/cvi/instr/K617/K617.exe" |
Executable File_Release = "/c/home/CVI/instr/K617/K617.exe" |
Executable File_Debug64 Is Rel = True |
Executable File_Debug64 Rel To = "Project" |
Executable File_Debug64 Rel Path = "K617.exe" |
Executable File_Debug64 = "/c/home/cvi/instr/K617/K617.exe" |
Executable File_Debug64 = "/c/home/CVI/instr/K617/K617.exe" |
Executable File_Release64 Is Rel = True |
Executable File_Release64 Rel To = "Project" |
Executable File_Release64 Rel Path = "K617.exe" |
Executable File_Release64 = "/c/home/cvi/instr/K617/K617.exe" |
Executable File_Release64 = "/c/home/CVI/instr/K617/K617.exe" |
Icon File Is Rel = False |
Icon File = "" |
Application Title = "" |