⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 com_ctrl.cpp.~21~

📁 bds2006下面的串口操作
💻 ~21~
字号:
//$$---- Form CPP ----
//---------------------------------------------------------------------------

#include <vcl.h>  
#include <stdio.h>
#pragma hdrstop

#include "com_ctrl.h"
#include "com_error.h"  
#include "comm.c"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "IWBaseControl"
#pragma link "IWBaseHTMLControl"
#pragma link "IWCompMemo"
#pragma link "IWControl"
#pragma link "IWVCLBaseControl"
#pragma resource "*.dfm"
TFormMain *FormMain;
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
	: TForm(Owner)
{                
    baud_bak = ComboBaud->ItemIndex;
	if(open_comm((ComboComNo->ItemIndex)+1))
	{
		FormComError = new TFormComError(Application);
		FormComError->ShowModal();
		delete FormComError; 
		ComOnOff->Caption = "串口打开失败";
		ComOnOff->Checked = false;
	}
	else
	{
		ComOnOff->Caption = "串口已打开";
		ComOnOff->Checked = true;
	}
	check_flag = 0;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ComboComNoChange(TObject *Sender)
{
	close_comm( );
	Sleep(100);
	if(open_comm((ComboComNo->ItemIndex)+1))
	{
		FormComError = new TFormComError(Application);
		FormComError->ShowModal();
		delete FormComError;
		ComOnOff->Caption = "串口打开失败";
		ComOnOff->Checked = false;
	}
	else
	{
		ComOnOff->Caption = "串口已打开";
		ComOnOff->Checked = true;
	}
	check_flag = 0;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ComboBaudChange(TObject *Sender)
{
	baud_bak = ComboBaud->ItemIndex;

	close_comm( );
	Sleep(100);
	open_comm(port_bak);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonSendClick(TObject *Sender)
{
	if(SendEdit->Text != "")
	{
		put_str(SendEdit->Text.c_str());
	}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::Timer1Timer(TObject *Sender)
{
	char	buff[256];

	get_str(buff);
	if(*buff != '\0')
	{
		ReceiveMemo->Text = ReceiveMemo->Text + String(buff);
		ReceiveMemo->SelStart = ReceiveMemo->Text.Length();
		ReceiveMemo->SelLength = 0;  
	}
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonClearRClick(TObject *Sender)
{
	ReceiveMemo->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonClearTClick(TObject *Sender)
{
	SendEdit->Text = "";
}
//---------------------------------------------------------------------------




void __fastcall TFormMain::MenuSaveClick(TObject *Sender)
{
	if(SaveFile->Execute())
		ReceiveMemo->Lines->SaveToFile(SaveFile->FileName);
	ReceiveMemo->Modified = false;
	SaveFile->OnClose;

}
//---------------------------------------------------------------------------

void __fastcall TFormMain::MenuCloseClick(TObject *Sender)
{
	Close( );
}

//---------------------------------------------------------------------------
void __fastcall TFormMain::MenuPrinterClick(TObject *Sender)
{
	 if (!PrintDialog->Execute())
		  return; // user did not press OK

	int i,y,r_line,page;

	Printer()->Title=" ";
	Printer()->BeginDoc();

	r_line = ReceiveMemo->Lines->Count;
	page = 0;

	while(r_line>0)
	{
		Printer()->Canvas->TextOut(1000,100,
							"串口调试-----接收数据");
		y = 250;

		for(i=0;(i<r_line)&&(i<50);i++)
		{
			Printer()->Canvas->TextOut(250,y,
				ReceiveMemo->Lines->Strings[page*50 + i]);
			y+=Printer()->Canvas->TextHeight("A|jh") + 8;
		}

		Printer()->Canvas->TextOut(1000,3200,
							"第  "+IntToStr(page+1)+"  页");
		r_line -= 50;
		page++;

		if(r_line>0)
			Printer()->NewPage();
	}
	Printer()->EndDoc();
}

//---------------------------------------------------------------------------

void __fastcall TFormMain::ComOnOffKeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
 	if(ComOnOff->Checked == true)
	{
		close_comm( );
		ComOnOff->Caption = "串口已关闭";
		ComOnOff->Checked = false;
	}
	if(ComOnOff->Checked == false)
	{
		if(open_comm((ComboComNo->ItemIndex)+1))
		{
			FormComError = new TFormComError(Application);
			FormComError->ShowModal();
			delete FormComError;
			ComOnOff->Caption = "串口打开失败";
		}
		else
		{
			ComOnOff->Caption = "串口已打开";
			ComOnOff->Checked = true;
		}
	}
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -