📄 client.c
字号:
#include <ansi_c.h>
#include <tcpsupp.h>
#include <cvirte.h>
#include <userint.h>
#include "client.h"
static int panelHandle;
static unsigned int g_hconversation;
int is_link=0;
float tempSet;
float ser_temp;
struct info
{
char tag[12];
float value;
}transTemp;
int CVICALLBACK ClientTCPCB (unsigned handle, int event, int error,void *callbackData);
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "client.uir", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK start (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int portNum;
char tempBuf[256] = {0};
char portNumStr[32];
switch (event)
{
case EVENT_COMMIT:
GetCtrlVal(panelHandle,PANEL_IP,tempBuf);
GetCtrlVal(panelHandle,PANEL_PORT,portNumStr);
portNum=atoi(portNumStr);
// SetCtrlVal(panelHandle,PANEL_TEXTMSG_2,portNumStr);
if(is_link==0)
{
if (ConnectToTCPServer (&g_hconversation, portNum, tempBuf, ClientTCPCB,NULL, 1000) < 0)
{
MessagePopup("TCP Client", "Connection to server failed !");
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"连接失败");
}
else
{
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"连接成功");
is_link=1;
SetCtrlAttribute(panelHandle,PANEL_COMMANDBUTTON,ATTR_LABEL_TEXT,"断开");
}
}
else
{
SetCtrlAttribute(panelHandle,PANEL_COMMANDBUTTON,ATTR_LABEL_TEXT,"连接");
DisconnectFromTCPServer (g_hconversation);
is_link=0;
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"连接断开");
}
break;
}
return 0;
}
int CVICALLBACK up (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char* cmd="up";
switch (event)
{
case EVENT_COMMIT:
if(is_link==1)
{
if (ClientTCPWrite (g_hconversation, cmd,strlen (cmd), 1000) < 0)
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据失败");
else
{
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据:加热");
// SetCtrlVal(panelHandle,PANEL_TEXTMSG,cmd);
}
}
break;
}
return 0;
}
int CVICALLBACK down (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char* cmd="down";
switch (event)
{
case EVENT_COMMIT:
if(is_link==1)
{
if (ClientTCPWrite (g_hconversation, cmd,strlen (cmd), 100) < 0)
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据失败");
else
{
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据:降温");
// SetCtrlVal(panelHandle,PANEL_TEXTMSG,cmd);
}
}
break;
}
return 0;
}
int CVICALLBACK ac (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char* cmd="ac";
switch (event)
{
case EVENT_COMMIT:
if(is_link==1)
{
if (ClientTCPWrite (g_hconversation, cmd,strlen (cmd), 100) < 0)
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据失败");
else
{
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据:自动");
// SetCtrlVal(panelHandle,PANEL_TEXTMSG,cmd);
}
}
break;
}
return 0;
}
int CVICALLBACK stop (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char* cmd="stop";
switch (event)
{
case EVENT_COMMIT:
if(is_link==1)
{
if (ClientTCPWrite (g_hconversation, cmd,strlen (cmd), 100) < 0)
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据失败");
else
{
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据:停止");
// SetCtrlVal(panelHandle,PANEL_TEXTMSG,cmd);
}
}
// DisconnectFromTCPServer (g_hconversation);
break;
}
return 0;
}
int CVICALLBACK setTemp (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
break;
case EVENT_VAL_CHANGED:
GetCtrlVal (panelHandle,PANEL_NUMERICTHERM,&tempSet);
strcpy(transTemp.tag,"setTemp");
transTemp.value=tempSet;
if(is_link==1)
{
if (ClientTCPWrite (g_hconversation,&transTemp,sizeof(struct info), 100) < 0)
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据失败");
else
{
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"发送数据:设定温度");
// SetCtrlVal(panelHandle,PANEL_TEXTMSG,transTemp.tag);
}
//NUMERIC
}
//SetCtrlVal(panelHandle,PANEL_NUMERIC,sizeof(struct info));
break;
}
return 0;
}
int CVICALLBACK quit (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
QuitUserInterface (0);
break;
}
return 0;
}
int CVICALLBACK ClientTCPCB (unsigned handle, int event, int error,
void *callbackData)
{
float receiveBuf[4] = {0};
// int dataSize = sizeof (receiveBuf) - 1;
switch (event)
{
case TCP_DATAREADY:
if (ClientTCPRead (g_hconversation, receiveBuf,3*sizeof(float), 100)< 0)
{
MessagePopup("error","receive error");
}
else
{
ser_temp=receiveBuf[0];
PlotStripChart(panelHandle,PANEL_STRIPCHART,receiveBuf,2,0,0,VAL_FLOAT);
PlotStripChart(panelHandle,PANEL_STRIPCHART_2,&receiveBuf[2],1,0,0,VAL_FLOAT);
//SetCtrlVal(panelHandle,PANEL_NUMERICTHERM,tempSet);
SetCtrlVal(panelHandle,PANEL_NUMERIC_3,receiveBuf[1]);
SetCtrlVal(panelHandle,PANEL_NUMERIC_4,receiveBuf[2]);
if(ser_temp!=tempSet)
{
SetCtrlVal(panelHandle,PANEL_NUMERICTHERM,ser_temp);
}
}
break;
case TCP_DISCONNECT:
//DisconnectFromTCPServer (g_hconversation);
SetCtrlAttribute(panelHandle,PANEL_COMMANDBUTTON,ATTR_LABEL_TEXT,"连接");
// DisconnectFromTCPServer (g_hconversation);
is_link=0;
SetCtrlVal(panelHandle,PANEL_TEXTMSG,"连接断开");
MessagePopup ("TCP Client", "Server has closed connection!");
// g_connected = 0;
break;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -