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

📄 unit_connect.~cpp

📁 平台:c++ builder V6.0 功能:利用串口设备通讯,
💻 ~CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit_Connect.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm_Connect *Form_Connect;
//---------------------------------------------------------------------------
__fastcall TForm_Connect::TForm_Connect(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm_Connect::Button_ConnectClick(TObject *Sender)
{
Animate1->Active = true;
Button_Connect->Enabled = false;
String Temp;
Temp = "◆打开端口: COM" + String(Form1->COMM.Comm_No);
Memo1->Lines->Add(Temp);
  char *CommNo;
      Temp = "COM" + IntToStr(Form1->COMM.Comm_No);
      CommNo = Temp.c_str();
      Form1->hComm = CreateFile(CommNo,GENERIC_READ|GENERIC_WRITE,0,NULL,
                                OPEN_EXISTING,0,0);
      if(Form1->hComm == INVALID_HANDLE_VALUE){
         Memo1->Lines->Add("    失败! (端口可能被占用.)");
         Animate1->Active = false;
         CloseHandle(Form1->hComm);
         return;
         }/*CloseHandle(hComm);等待程序结束关闭*/
      else {
         Memo1->Lines->Add("    成功!");
         }
DCB dcb;
  Memo1->Lines->Add("◆设置通讯参数");
  dcb.BaudRate = Form1->COMM.Comm_BaudRate;
  dcb.ByteSize = Form1->COMM.Comm_ByteSize;
  dcb.Parity = Form1->COMM.Comm_Parity;
  dcb.StopBits = Form1->COMM.Comm_StopBits;
  Memo1->Lines->Add("    波特率:" + String(Form1->COMM.Comm_BaudRate));
  Memo1->Lines->Add("    数据位:" + String(Form1->COMM.Comm_ByteSize));
  if(Form1->COMM.Comm_Parity == 0 ) Temp = "  (无校验)";
  if(Form1->COMM.Comm_Parity == 1 ) Temp = "  (奇校验)";
  if(Form1->COMM.Comm_Parity == 2 ) Temp = "  (偶校验)";
  Temp=String(Form1->COMM.Comm_Parity) + Temp;
  Memo1->Lines->Add("    校验位:" + Temp);
  if(Form1->COMM.Comm_StopBits == 0) Temp = "  (1位)";
  if(Form1->COMM.Comm_StopBits == 1) Temp = "  (1.5位)";
  if(Form1->COMM.Comm_StopBits == 2) Temp = "  (2位)";
  Temp=String(Form1->COMM.Comm_StopBits) + Temp;
  Memo1->Lines->Add("    停止位:" + Temp);
  if(!SetCommState(Form1->hComm,&dcb)){
     Memo1->Lines->Add("    通讯参数设置失败! (重新设定.)");
     Animate1->Active = false;
     CloseHandle(Form1->hComm);
     return;
     }
  Memo1->Lines->Add("    通讯参数设置成功!");
Memo1->Lines->Add("◆连接设备");
Sleep(8000);
  {
  Memo1->Lines->Add("    连接成功,可以进行检测.");
  Form1->Comm_OK = true;
  Animate1->Active = false;
  Form1->StatusBar1->Panels->Items[1]->Text = "■ 联机";
  }
}
//---------------------------------------------------------------------------

void __fastcall TForm_Connect::Button_CancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm_Connect::FormActivate(TObject *Sender)
{
if(Form1->Comm_OK){
   Button_Connect->Enabled = false;
   }
else {
   Button_Connect->Enabled = true;
   Memo1->Lines->Clear();
   Memo1->Lines->Add("◆确认计算机与设备连接妥当.");
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm_Connect::FormClose(TObject *Sender,
      TCloseAction &Action)
{
if(Animate1->Active) Animate1->Active = false;
Button_Connect->Enabled = true;       
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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