3-2.c
来自「cvi编程举例」· C语言 代码 · 共 129 行
C
129 行
#include <utility.h>
#include <rs232.h>
#include <ansi_c.h>
#include <cvirte.h>
//#include <userint.h>
#include "3-2.h"
static int status;
int CommPort=1;
int RR_L;
static int panelHandle;
void ReceiveCHR(int COMport, int eventMask, void *callbackdata);
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "3-2.uir", PANEL)) < 0)
return -1;
status = OpenComConfig (CommPort, "COM1", 9600, 0, 8, 1, 512, 512);
SetCtrlAttribute (panelHandle, PANEL_RECEIVE, ATTR_DIMMED, 1);
InstallComCallback (CommPort, LWRS_RXCHAR , 1, 0, ReceiveCHR, NULL); //设置回调函数 来自动接收数据
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK QuitP (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
CloseCom (CommPort);
CloseCom (CommPort);
QuitUserInterface (0);
break;
}
return 0;
}
int CVICALLBACK send (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
char SendInfo[255];
switch (event)
{
case EVENT_COMMIT:
// FlushInQ (CommPort);
FlushOutQ (CommPort);
GetCtrlVal (panelHandle, PANEL_SENDTEXT, SendInfo);
RR_L=strlen(SendInfo);
status=ComWrt (CommPort, SendInfo, strlen(SendInfo));
break;
}
return 0;
}
int CVICALLBACK clearSend (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
ResetTextBox (panelHandle, PANEL_SENDTEXT, "");
break;
}
return 0;
}
int CVICALLBACK receive (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
int LL;
int mm;
char info[255]="";
switch (event)
{
case EVENT_COMMIT:
LL = GetInQLen (1);
if (LL>0)
{
status = ComRd (CommPort, info, LL);
InsertTextBoxLine (panelHandle, PANEL_RECEIVETEXT, -1, info);
}
break;
}
return 0;
}
int CVICALLBACK clearReceive (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case EVENT_COMMIT:
ResetTextBox (panelHandle, PANEL_RECEIVETEXT, "");
break;
}
return 0;
}
void ReceiveCHR(int COMport, int eventMask, void *callbackdata)
{
int LL;
char info[255];
LL = GetInQLen (1);
if (LL>0)
{
status = ComRd (CommPort, info, RR_L);
InsertTextBoxLine (panelHandle, PANEL_RECEIVETEXT, -1, info);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?