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 + -
显示快捷键?