📄 powermc.c
字号:
#include <utility.h>
#include <gpib.h>
#include <ansi_c.h>
#include <cvirte.h>
#include <userint.h>
#include "powermc.h"
static int panelHandle;
static int sign=1;
static int mark=0;
static int autoread=0;
static int device=0;
static int threadFunctionID=0;
static char DataBuffer_VOLT[20];
static char DataBuffer_CURR[20];
//MAIN FUNCTION:
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, "powermc.uir", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
device = ibdev (0, 5, NO_SAD, T10s, 1, 0); //打开设备并设置参数
ibwrt(device,"*RST",4);
SetCtrlVal (panelHandle, PANEL_LED_RMT, 1);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* ENTYR AREA */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
//ENTER VOLTAGE:
int CVICALLBACK ENTRY_VOLTAGE (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
sign=1;
mark=1;
break;
}
return 0;
}
//ENTER CURRENT:
int CVICALLBACK ENTRY_CURRENT (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
sign=0;
mark=1;
break;
}
return 0;
}
//ENTER TO THE POWER SUPPLY:
int CVICALLBACK ENTRY_ENTER (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10]={'0','0','0','0','0','0'};
char string_VOLT[20]="VOLT ";
char string_CURR[20]="CURR ";
unsigned int i=0,length=0;
double temp=0;
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
length=strlen(string);
for (;string[i]!='.'&&i<=5;i++);
if (i==1)
{
temp=(length-0>0)*(string[0]-48) + (length-2>0)*(string[2]-48)*0.1 + (length-3>0)*(string[3]-48)*0.01 + (length-4>0)*(string[4]-48)*0.001;
if (temp<0||temp>35){SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "Error");SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "Error"); mark=1; break;}
}
else
{
if (i>1&&i==2)
{
temp=(length-0>0)*(string[0]-48)*10 + (length-1>0)*(string[1]-48) + (length-3>0)*(string[3]-48)*0.1 + (length-4>0)*(string[4]-48)*0.01 + (length-5>0)*(string[5]-48)*0.001;
if (temp<0||temp>35){SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "Error");SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "Error"); mark=1; break;}
}
else
{
temp=(length-2>0)*(string[abs(length-3)]-48)*100 + (length-1>0)*(string[abs(length-2)]-48)*10 + (length-0>0)*(string[length-1]-48);
if (temp<0||temp>35){SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "Error");SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "Error"); mark=1; break;}
}
}
strcat (string_VOLT,string);
ibwrt (device, "OUTP OFF", 8);
ibwrt (device, string_VOLT, strlen(string_VOLT));
ibwrt (device, "OUTP ON", 7);
Delay (0.5);
FUNCTION_READ (1, 45, 1, 0, 0, 0);
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
length=strlen(string);
for (;string[i]!='.'&&i<=5;i++);
if (i==1)
{
temp=(length-0>0)*(string[0]-48) + (length-2>0)*(string[2]-48)*0.1 + (length-3>0)*(string[3]-48)*0.01 + (length-4>0)*(string[4]-48)*0.001;
if (temp<0||temp>60){SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "FUCKYOU!");SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "Error"); mark=1; break;}
}
else
{
if (i>1&&i==2)
{
temp=(length-0>0)*(string[0]-48)*10 + (length-1>0)*(string[1]-48) + (length-3>0)*(string[3]-48)*0.1 + (length-4>0)*(string[4]-48)*0.01 + (length-5>0)*(string[5]-48)*0.001;
if (temp<0||temp>60){SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "Error");SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "Error");mark=1;break;}
}
else
{
temp=(length-2>0)*(string[abs(length-3)]-48)*100 + (length-1>0)*(string[abs(length-2)]-48)*10 + (length-0>0)*(string[length-1]-48);
if (temp<0||temp>60){SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "Error");SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "Error"); mark=1; break;}
}
}
strcat (string_CURR,string);
ibwrt (device, "OUTP OFF", 8);
ibwrt (device, string_CURR, strlen(string_CURR));
ibwrt (device, "OUTP ON", 7);
Delay (0.5);
FUNCTION_READ (1, 45, 1, 0, 0, 0);
}
mark=1;
break;
}
return 0;
}
//CLEAR:
int CVICALLBACK ENTRY_CLEAR (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
{
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "0");
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "0");
mark=0;
}
break;
}
return 0;
}
//DELETE A CHAR:
int CVICALLBACK ENTRY_DELETE (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10];
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
if (string[0]=='\0') {SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "0");break;}
string[strlen(string)-1]='\0';
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
if (string[0]=='\0') {SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "0");}
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
if (string[0]=='\0') {SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "0");break;}
string[strlen(string)-1]='\0';
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
if (string[0]=='\0') {SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "0");}
}
break;
}
return 0;
}
//DECIMAL PIONT:
int CVICALLBACK ENTRY_POINT (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10];
unsigned int i=0;
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
for (;string[i]!='.'&&i<=5;i++);
if (string[i]=='.') break;
if (strlen(string)==6&&mark!=1) break;
if (mark==1) {SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "0.");}
else {strcat(string,"."); SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);}
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
for (;string[i]!='.'&&i<=5;i++);
if (string[i]=='.') break;
if (strlen(string)==6&&mark!=1) break;
if (mark==1) {SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "0.");}
else {strcat(string,"."); SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);}
}
mark=0;
break;
}
return 0;
}
//NUMBER 0:
int CVICALLBACK ENTRY_0 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10];
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "0");
else
{
strcat(string,"0");
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
}
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "0");
else
{
strcat(string,"0");
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
}
}
mark=0;
break;
}
return 0;
}
//NUMBER 9:
int CVICALLBACK ENTRY_9 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10];
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "9");
else
{
strcat(string,"9");
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
}
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "9");
else
{
strcat(string,"9");
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
}
}
mark=0;
break;
}
return 0;
}
//NUMBER 8:
int CVICALLBACK ENTRY_8 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10];
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "8");
else
{
strcat(string,"8");
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
}
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "8");
else
{
strcat(string,"8");
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
}
}
mark=0;
break;
}
return 0;
}
//NUMBER 7:
int CVICALLBACK ENTRY_7 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10];
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "7");
else
{
strcat(string,"7");
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
}
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "7");
else
{
strcat(string,"7");
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
}
}
mark=0;
break;
}
return 0;
}
//NUMBER 6:
int CVICALLBACK ENTRY_6 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10];
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "6");
else
{
strcat(string,"6");
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
}
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "6");
else
{
strcat(string,"6");
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
}
}
mark=0;
break;
}
return 0;
}
//NUMBER 5:
int CVICALLBACK ENTRY_5 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10];
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "5");
else
{
strcat(string,"5");
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
}
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "5");
else
{
strcat(string,"5");
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
}
}
mark=0;
break;
}
return 0;
}
//NUMBER 4:
int CVICALLBACK ENTRY_4 (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char string[10];
switch (event)
{
case EVENT_COMMIT:
if (sign==1)
{
GetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, "4");
else
{
strcat(string,"4");
SetCtrlVal (panelHandle, PANEL_STRING_VOLTAGE, string);
}
}
else
{
GetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
if (strlen(string)==6&&mark!=1) break;
if (string[0]=='0'&&string[1]!='.'||mark==1)
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, "4");
else
{
strcat(string,"4");
SetCtrlVal (panelHandle, PANEL_STRING_CURRENT, string);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -