/cvi/instr/hm7044/example.c |
---|
0,0 → 1,117 |
#include <ansi_c.h> |
#include <utility.h> |
#include "hm7044ui.h" |
#include "hm7044.h" |
static int panelHandle; |
int test(){ |
char result[MAX_CMD] ; |
char cmd[MAX_CMD] ; |
float data[4]; |
int port; |
int err; |
int i,ch=1; |
GetCtrlVal(panelHandle,PANEL_PORT,&port); |
GetCtrlVal(panelHandle,PANEL_CMD ,cmd); |
err=HM7044_Open (port); |
HM7044_SendCmd("FUSE 1,2,3,4",result); |
HM7044_FuseOff( ch); |
HM7044_SetVoltage(ch,1); |
HM7044_Enable_Output( ch); |
for (i=0;i<10;i++){ |
HM7044_SwitchOff(ch); |
HM7044_SetCurrent(ch,i/1000.); |
//HM7044_SetVoltage(ch,i/100.); |
HM7044_SwitchOn(ch); |
Delay(0.5); |
HM7044_Read(data); |
} |
HM7044_Disable_Output(ch); |
err= HM7044_Close() ; |
printf ( "[%d] Port closed.\n" ,err) ; |
return 0; |
} |
int mymain(){ |
char result[MAX_CMD] ; |
char cmd[MAX_CMD] ; |
float data[4]; |
int port; |
int err; |
GetCtrlVal(panelHandle,PANEL_PORT,&port); |
GetCtrlVal(panelHandle,PANEL_CMD ,cmd); |
err=HM7044_Open (port); |
printf ( "[%d] Port %d opened \n",err,port) ; |
HM7044_SendCmd (cmd, result ); |
printf ( "\nRecieved response:#%s#\n",result ) ; |
SetCtrlVal(panelHandle,PANEL_READ ,result); |
SetCtrlVal(panelHandle,PANEL_READ ,"\n"); |
err= HM7044_Close() ; |
printf ( "[%d] Port closed.\n" ,err) ; |
return 0; |
} |
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
LPSTR lpszCmdLine, int nCmdShow) |
{ |
if (InitCVIRTE (hInstance, 0, 0) == 0) |
return -1; /* out of memory */ |
if ((panelHandle = LoadPanel (0, "hm7044ui.uir", PANEL)) < 0) |
return -1; |
DisplayPanel (panelHandle); |
SetStdioPort (CVI_STDIO_WINDOW); |
RunUserInterface (); |
DiscardPanel (panelHandle); |
return 0; |
} |
int CVICALLBACK Send (int panel, int control, int event, |
void *callbackData, int eventData1, int eventData2) |
{ |
switch (event) |
{ |
case EVENT_COMMIT: |
mymain(); |
break; |
} |
return 0; |
} |
int CVICALLBACK TestCB (int panel, int control, int event, |
void *callbackData, int eventData1, int eventData2) |
{ |
switch (event) |
{ |
case EVENT_COMMIT: |
test(); |
break; |
} |
return 0; |
} |
int CVICALLBACK Exit (int panel, int control, int event, |
void *callbackData, int eventData1, int eventData2) |
{ |
switch (event) |
{ |
case EVENT_COMMIT: |
QuitUserInterface (0); |
break; |
} |
return 0; |
} |
/cvi/instr/hm7044/hm7044.c |
---|
0,0 → 1,183 |
#include <utility.h> |
#include <rs232.h> |
#include <ansi_c.h> |
#include <cvirte.h> |
#include <userint.h> |
#include <hm7044.h> |
/* |
linuxs |
root: trenutna konfiguracija |
setserial -G /dev/ttyS0 |
root: nastavitev konfiguracij |
# setserial /dev/ttyS0 baud_base 9600 spd_normal skip_test |
stty 9600 cs8 -parenb -cstopb crtscts -echo -F /dev/ttyS0 |
*/ |
char gresult[MAX_CMD] ; |
static int comport=1 ; |
int HM7044_Open(int port){ |
int rs232er; |
comport=port; |
rs232er = OpenComConfig (comport, "", 9600, 0, 8, 1, 512, 512); |
return rs232er; |
} |
int HM7044_Close(void){ |
int rs232er; |
rs232er = CloseCom(comport); |
return rs232er; |
} |
static int com_send ( char* cmd ) { |
char str1[1024] ; |
int err; |
sprintf ( str1, "%s\r", cmd ) ; |
err = ComWrt (comport, str1, strlen(str1)); |
fprintf ( stdout, "Command: %s \t", cmd ) ; |
//printf("%d bytes written: %s\n",err,str1); |
return err; |
} |
static int com_read ( char* result ) { |
int err; |
int nbytes=1024; |
int maxsize=nbytes; |
result[0]=0; |
err = ComRdTerm (comport, result, nbytes,13); |
//CR=13 |
if (err>0 && err>=maxsize) result[maxsize-1]=0; |
if (err>0 && err<maxsize) result[err]=0; |
//printf("%d bytes read=> #%s#\n\t",err,result); |
return err; |
} |
int HM7044_SendCmd ( char* cmd, char* result ) |
{ |
com_send ( cmd ) ; |
if ( com_read ( result ) ) { |
printf ( "answer: %s\n", result ) ; |
return 0 ; |
} |
else { |
printf ( "\nanswer: error\n" ) ; |
return 1 ; |
} |
} |
static int send_int( char* cmd,int val, char* result ) { |
char cmd1[MAX_CMD]; |
sprintf(cmd1,"%s %d",cmd,val); |
return HM7044_SendCmd(cmd1,result); |
} |
static int send_float( char* cmd,float val, char* result ) { |
char cmd1[MAX_CMD]; |
sprintf(cmd1,"%s %f",cmd,val); |
return HM7044_SendCmd(cmd1,result); |
} |
int HM7044_SetVoltage(int ch, float value){ |
char cmd[MAX_CMD]; |
send_int("SEL",ch, gresult); |
sprintf(cmd,"SET %4.2f V",value); |
HM7044_SendCmd(cmd, gresult); |
HM7044_SendCmd("SEL NONE", gresult); |
return 0; |
} |
int HM7044_SetCurrent(int ch, float value){ |
char cmd[MAX_CMD]; |
send_int("SEL",ch, gresult); |
sprintf(cmd,"SET %f A",value); |
HM7044_SendCmd(cmd, gresult); |
HM7044_SendCmd("SEL NONE", gresult); |
return 0; |
} |
int HM7044_Read( float *data){ |
int nb,i; |
com_send("READ"); |
printf ( "\n"); |
for (i=0;i<3;i++){ |
com_read ( gresult ); |
printf ( "%d.answer: %s\n",i, gresult ) ; |
} |
nb = sscanf (gresult, "%fV%fV%fV%fV", |
&data[0],&data[1],&data[2],&data[3]); |
for (i=0;i<nb;i++){ |
//printf("%d. %f\n",i, data[i]); |
} |
return (nb==4); |
} |
int HM7044_Enable_Output(int ch){ |
send_int("SEL",ch, gresult); |
HM7044_SendCmd("EN", gresult); |
HM7044_SendCmd("SEL NONE", gresult); |
return 0; |
} |
int HM7044_Disable_Output(int ch){ |
send_int("SEL",ch, gresult); |
HM7044_SendCmd("DIS", gresult); |
HM7044_SendCmd("SEL NONE", gresult); |
return 0; |
} |
int HM7044_SwitchOn(int ch){ |
send_int("SEL",ch, gresult); |
HM7044_SendCmd("ON", gresult); |
HM7044_SendCmd("SEL NONE", gresult); |
return 0; |
} |
int HM7044_SwitchOff(int ch){ |
send_int("SEL",ch, gresult); |
HM7044_SendCmd("ON", gresult); |
HM7044_SendCmd("SEL NONE", gresult); |
return 0; |
} |
int HM7044_FuseOff(int ch){ |
send_int("SEL",ch, gresult); |
HM7044_SendCmd("FUSE OFF", gresult); |
HM7044_SendCmd("SEL NONE", gresult); |
return 0; |
} |
int HM7044_FuseOn(int ch){ |
send_int("SEL",ch, gresult); |
HM7044_SendCmd("FUSE ON", gresult); |
HM7044_SendCmd("SEL NONE", gresult); |
return 0; |
} |
/cvi/instr/hm7044/hm7044.fp |
---|
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: hm7044/hm7044.h |
=================================================================== |
--- hm7044/hm7044.h (nonexistent) |
+++ hm7044/hm7044.h (revision 259) |
@@ -0,0 +1,13 @@ |
+#define MAX_CMD 1024 |
+int HM7044_Open(int port); |
+int HM7044_Close(void); |
+int HM7044_SetVoltage(int ch, float value); |
+int HM7044_SetCurrent(int ch, float value); |
+int HM7044_Read( float *data); |
+int HM7044_Enable_Output(int ch); |
+int HM7044_Disable_Output(int ch); |
+int HM7044_SwitchOn(int ch); |
+int HM7044_SwitchOff(int ch); |
+int HM7044_SendCmd ( char* cmd, char* result ); |
+int HM7044_FuseOn(int ch); |
+int HM7044_FuseOff(int ch); |
Index: hm7044/hm7044.prj |
=================================================================== |
--- hm7044/hm7044.prj (nonexistent) |
+++ hm7044/hm7044.prj (revision 259) |
@@ -0,0 +1,194 @@ |
+[Project Header] |
+Version = 551 |
+Platform Code = 4 |
+Pathname = "/c/MeasurementStudio/cvi/instr/hm7044/hm7044.prj" |
+CVI Dir = "/c/measurementstudio/cvi" |
+VXIplug&play Framework Dir = "/C/VXIPNP/winnt" |
+Number of Files = 5 |
+Sort Type = "No Sort" |
+Target Type = "Executable" |
+Build Configuration = "Debug" |
+Warn User If Debugging Release = 1 |
+Flags = 16 |
+Drag Bar Left = 135 |
+Window Top = 77 |
+Window Left = 420 |
+Window Bottom = 379 |
+Window Right = 960 |
+ |
+[File 0001] |
+File Type = "CSource" |
+Path = "/c/MeasurementStudio/cvi/instr/hm7044/hm7044.c" |
+Res Id = 1 |
+Exclude = False |
+Disk Date = 3187853080 |
+Project Flags = 0 |
+Compile Into Object File = False |
+Object Format = "Win32-MSVC" |
+ForceCompile_Debug = False |
+ForceCompile_Release = True |
+Window Top = 74 |
+Window Left = 193 |
+Window Height = 0 |
+Window Width = 0 |
+Source Window State = "1,125,125,125,36,36,37,0,0,80,0,1,0,1,0,25,110,0,127,28," |
+Header Dependencies = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22," |
+ |
+[File 0002] |
+File Type = "Function Panel" |
+Path = "/c/MeasurementStudio/cvi/instr/hm7044/hm7044.fp" |
+Res Id = 2 |
+Exclude = False |
+Disk Date = 3187852036 |
+Project Flags = 0 |
+Window Top = 0 |
+Window Left = 0 |
+Window Height = 0 |
+Window Width = 0 |
+ |
+[File 0003] |
+File Type = "User Interface Resource" |
+Path = "/c/MeasurementStudio/cvi/instr/hm7044/hm7044ui.uir" |
+Res Id = 3 |
+Exclude = False |
+Disk Date = 3187852316 |
+Project Flags = 0 |
+Window Top = 232 |
+Window Left = 114 |
+Window Height = 400 |
+Window Width = 676 |
+ |
+[File 0004] |
+File Type = "Include" |
+Path = "/c/MeasurementStudio/cvi/instr/hm7044/hm7044.h" |
+Res Id = 4 |
+Exclude = False |
+Disk Date = 3187851746 |
+Project Flags = 0 |
+Window Top = 254 |
+Window Left = 135 |
+Window Height = 0 |
+Window Width = 0 |
+Source Window State = "1,8,10,8,0,-1,0,0,0,80,0,0,0,0,0,25,0,0,13,11," |
+ |
+[File 0005] |
+File Type = "CSource" |
+Path = "/c/MeasurementStudio/cvi/instr/hm7044/example.c" |
+Res Id = 5 |
+Exclude = False |
+Disk Date = 3189076472 |
+Project Flags = 0 |
+Compile Into Object File = False |
+Object Format = "Win32-MSVC" |
+ForceCompile_Debug = False |
+ForceCompile_Release = True |
+Window Top = 277 |
+Window Left = 135 |
+Window Height = 0 |
+Window Width = 0 |
+Source Window State = "1,18,18,18,3,9,3,0,0,80,0,2,0,2,0,25,8,0,17,71," |
+Header Dependencies = "1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23," |
+ |
+[SCC Options] |
+Use global settings = True |
+SCC Provider = "" |
+SCC Project = "" |
+Local Path = "" |
+Auxiliary Path = "" |
+Perform Same Action For .h File As For .uir File = "Ask" |
+Comment = "" |
+Username = "" |
+Use Default Comment = False |
+Use Default Username = False |
+Do Not Include PRJ File in Actions = True |
+Suppress CVI Error Messages = False |
+ |
+[Compiler Options] |
+Default Calling Convention = "cdecl" |
+Max Number Of Errors = 10 |
+Require Prototypes = True |
+Require Return Values = True |
+Enable Pointer Mismatch Warning = False |
+Enable Unreachable Code Warning = False |
+Track Include File Dependencies = True |
+Prompt For Missing Includes = True |
+Stop On First Error File = False |
+Bring Up Err Win For Warnings = True |
+Show Build Dialog = False |
+O Option Compatible With 5.0 = False |
+ |
+[Run Options] |
+Stack Size = 250000 |
+Debugging Level = "Standard" |
+Save Changes Before Running = "Ask" |
+Break On Library Errors = True |
+Break On First Chance Exceptions = False |
+Hide Windows = False |
+Break At First Statement = False |
+ |
+[Compiler Defines] |
+Compiler Defines = "/DWIN32_LEAN_AND_MEAN" |
+ |
+[Command Line Args] |
+Command Line Args = "" |
+ |
+[Included Headers] |
+Header 0022 = "/c/MeasurementStudio/cvi/instr/hm7044/hm7044.h" |
+Header 0001 = "/c/MeasurementStudio/cvi/include/utility.h" |
+Header 0002 = "/c/MeasurementStudio/cvi/include/cvidef.h" |
+Header 0003 = "/c/MeasurementStudio/cvi/include/cvirte.h" |
+Header 0004 = "/c/MeasurementStudio/cvi/include/rs232.h" |
+Header 0005 = "/c/MeasurementStudio/cvi/include/ansi_c.h" |
+Header 0006 = "/c/MeasurementStudio/cvi/include/ansi/assert.h" |
+Header 0007 = "/c/MeasurementStudio/cvi/include/ansi/ctype.h" |
+Header 0008 = "/c/MeasurementStudio/cvi/include/ansi/errno.h" |
+Header 0009 = "/c/MeasurementStudio/cvi/include/ansi/float.h" |
+Header 0010 = "/c/MeasurementStudio/cvi/include/ansi/limits.h" |
+Header 0011 = "/c/MeasurementStudio/cvi/include/ansi/locale.h" |
+Header 0012 = "/c/MeasurementStudio/cvi/include/ansi/math.h" |
+Header 0013 = "/c/MeasurementStudio/cvi/include/ansi/setjmp.h" |
+Header 0014 = "/c/MeasurementStudio/cvi/include/ansi/signal.h" |
+Header 0015 = "/c/MeasurementStudio/cvi/include/ansi/stdarg.h" |
+Header 0016 = "/c/MeasurementStudio/cvi/include/ansi/stddef.h" |
+Header 0017 = "/c/MeasurementStudio/cvi/include/ansi/stdio.h" |
+Header 0018 = "/c/MeasurementStudio/cvi/include/ansi/stdlib.h" |
+Header 0019 = "/c/MeasurementStudio/cvi/include/ansi/string.h" |
+Header 0020 = "/c/MeasurementStudio/cvi/include/ansi/time.h" |
+Header 0021 = "/c/MeasurementStudio/cvi/include/userint.h" |
+Header 0023 = "/c/MeasurementStudio/cvi/instr/hm7044/hm7044ui.h" |
+Max Header Number = 23 |
+ |
+[Create Executable] |
+Executable File_Debug = "/c/MeasurementStudio/cvi/instr/hm7044/hm7044_dbg.exe" |
+Target Creation Date_Debug = 3189076476 |
+Force Creation of Target_Debug = False |
+Executable File_Release = "/c/MeasurementStudio/cvi/instr/hm7044/fieldpoint.exe" |
+Target Creation Date_Release = 0 |
+Force Creation of Target_Release = True |
+Icon File = "" |
+Application Title = "hm7044 driver" |
+DLL Exports = "Include File Symbols" |
+DLL Import Library Choice = "Gen Lib For Current Mode" |
+Use VXIPNP Subdirectories for Import Libraries = False |
+Use Dflt Import Lib Base Name = True |
+Where to Copy DLL = "Do not copy" |
+Add Type Lib To DLL = False |
+Include Type Lib Help Links = False |
+Type Lib FP File = "" |
+Type Lib Guid = "" |
+Uses DataSocket = 0 |
+Uses NIReports = 0 |
+Uses DCom95 = 0 |
+Instrument Driver Support Only = False |
+ |
+[External Compiler Support] |
+UIR Callbacks File Option = 0 |
+Using LoadExternalModule = False |
+Create Project Symbols File = True |
+UIR Callbacks Obj File = "" |
+Project Symbols H File = "" |
+Project Symbols Obj File = "" |
+ |
+[DLL Debugging Support] |
+External Process Path = "" |
+ |
Index: hm7044/hm7044ui.h |
=================================================================== |
--- hm7044/hm7044ui.h (nonexistent) |
+++ hm7044/hm7044ui.h (revision 259) |
@@ -0,0 +1,40 @@ |
+/**************************************************************************/ |
+/* LabWindows/CVI User Interface Resource (UIR) Include File */ |
+/* Copyright (c) National Instruments 2005. All Rights Reserved. */ |
+/* */ |
+/* 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 PANEL 1 |
+#define PANEL_CMD 2 |
+#define PANEL_TEST 3 /* callback function: TestCB */ |
+#define PANEL_SEND 4 /* callback function: Send */ |
+#define PANEL_READ 5 |
+#define PANEL_EXIT 6 /* callback function: Exit */ |
+#define PANEL_PORT 7 |
+ |
+ |
+ /* Menu Bars, Menus, and Menu Items: */ |
+ |
+ /* (no menu bars in the resource file) */ |
+ |
+ |
+ /* Callback Prototypes: */ |
+ |
+int CVICALLBACK Exit(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); |
+int CVICALLBACK Send(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); |
+ |
+ |
+#ifdef __cplusplus |
+ } |
+#endif |
Index: hm7044/hm7044ui.uir |
=================================================================== |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/hm7044/hm7044ui.uir |
---|
Property changes: |
Added: svn:mime-type |
## -0,0 +1 ## |
+application/octet-stream |
\ No newline at end of property |