/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 |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |
Index: K617.c |
=================================================================== |
--- K617.c (revision 256) |
+++ K617.c (revision 346) |
@@ -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 = "" |