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

📄 u_test.cpp

📁 C++ builder 环境下编写
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "U_Test.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Comm"
#pragma resource "*.dfm"
TF_Test *F_Test;
//---------------------------------------------------------------------------
__fastcall TF_Test::TF_Test(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TF_Test::InitComm(int dPort,int dBaud)
{
 Comm1->PortOpen =false;

  switch(dPort)
  {
   case  0:
        Comm1->CommPort=pnCOM1;
         break;
   case  1:
        Comm1->CommPort=pnCOM2;
         break;
   case  2:
        Comm1->CommPort=pnCOM3;
         break;
   case  3:
        Comm1->CommPort=pnCOM4;
         break;
  }
  switch(dBaud)
  {
   case  0:
        Comm1->BaudRate = br1200;
         break;
   case  1:
        Comm1->BaudRate = br2400;;
         break;
   case  2:
        Comm1->BaudRate = br4800;
         break;
   case  3:
        Comm1->BaudRate = br9600;
         break;
   case  4:
        Comm1->BaudRate = br19200;
         break;
   case  5:
        Comm1->BaudRate = br38400;;
         break;
   case  6:
        Comm1->BaudRate = br57600;
         break;
  }

  Comm1->HwHandShaking = hhNone; //不启动硬件流量控制
  Comm1->SwHandShaking = shNone; //不启动软件流量控制
  Comm1->DataBits = DB8;  //数据位数=8
  Comm1->Parity = None;   //不作同位检查
  Comm1->StopBits = SB1;   //停止位数=1
  Comm1->InputLen=0;  //默认是一次指令全部读取

 // Comm1->HwHandShaking=hhRTSCTS;
 // Comm1->SwHandShaking=shXonXoff;
  Comm1->RThreshold=1;


  Comm1->PortOpen=true;

  Comm1->DTREnabled=true;
  Comm1->RTSEnabled=true;
  Sleep(1000);

}
//--------------------------------------------------
void __fastcall TF_Test::Comm1ReceiveData(TObject *Sender)
{
  mReceive->Text = mReceive->Text + Comm1->Input ;
  //设置Memo的光标至最下方
  mReceive->SelStart = mReceive->Text.Length() ;
  mReceive->SelLength = 0;
  
}
//---------------------------------------------------------------------------

void __fastcall TF_Test::Timer1Timer(TObject *Sender)
{
 AnsiString Snd,Rev;
 if(flag)
 {
 Snd="at+csq";
 Comm1->OutputString(Snd+'\r');


 Sleep(500);

 Rev=Comm1->Input;
 mReceive->Text = mReceive->Text + Comm1->Input ;
  //设置Memo的光标至最下方
 mReceive->SelStart = mReceive->Text.Length() ;
 mReceive->SelLength = 0;

 AnsiString Rev1,Rev2;
 Rev1=Rev.SubString(Rev.Length()-3,2) ;
 if(Rev1=="OK")
 {
  sbStatus->Panels->Items[3]->Text="通讯成功";
  Rev2=Rev.SubString(Rev.Length()-12,5);

  if(Rev2.SubString(4,2)=="00")
  {
   sbStatus->Panels->Items[5]->Text="信号状态未知";
  }
  else
  {
   if(Rev2.SubString(1,2)>="23")
   {
    sbStatus->Panels->Items[5]->Text="信号状态较强";
   }
   else
   if(Rev2.SubString(1,2)<="20")
   {
    sbStatus->Panels->Items[5]->Text="信号状态较弱";
   }
   else
   {
    sbStatus->Panels->Items[5]->Text="信号状态正常";
   }
  }
}
}
}
//---------------------------------------------------------------------------
void __fastcall TF_Test::FormCreate(TObject *Sender)
{
 flag=false;
}
//---------------------------------------------------------------------------


void __fastcall TF_Test::spdSendClick(TObject *Sender)
{
//
 AnsiString Snd,Rev;

 Snd="at+cmgf=1";
 Comm1->OutputString(Snd+'\r');

 Sleep(500);

 Rev=Comm1->Input;
 mReceive->Text = mReceive->Text + Comm1->Input ;
  //设置Memo的光标至最下方
 mReceive->SelStart = mReceive->Text.Length() ;
 mReceive->SelLength = 0;

 Rev=Rev.SubString(Rev.Length()-3,2) ;
 if(Rev=="OK")
 {
  sbStatus->Panels->Items[1]->Text="发送短信";
  sbStatus->Panels->Items[3]->Text="通讯成功";
  //sbStatus->->Text="通讯成功";

  if(!flag)
  flag=true;
 }
 else
 {
   sbStatus->Panels->Items[3]->Text="通讯失败";
   return;
 }

 Snd="at+cmgs=";
 Snd=Snd+edtTel->Text;
 Comm1->OutputString(Snd+'\r');

 Sleep(500);

 //Rev=Comm1->Input;
 mReceive->Text = mReceive->Text + Comm1->Input ;
  //设置Memo的光标至最下方
 mReceive->SelStart = mReceive->Text.Length() ;
 mReceive->SelLength = 0;

 char c=26;
 Comm1->OutputString(edtSend->Text+c);
 Sleep(3000);

 Rev=Comm1->Input;
 mReceive->Text = mReceive->Text + Comm1->Input ;
  //设置Memo的光标至最下方
 mReceive->SelStart = mReceive->Text.Length() ;
 mReceive->SelLength = 0;

 Rev=Rev.SubString(Rev.Length()-3,2) ;
 if(Rev=="OK")
 {
  sbStatus->Panels->Items[1]->Text="发送短信";
  sbStatus->Panels->Items[3]->Text="通讯成功";
  //sbStatus->->Text="通讯成功";

  if(!flag)
  flag=true;
 }
 else
 {
   sbStatus->Panels->Items[1]->Text="通讯失败";
   return;
 }
        
}
//---------------------------------------------------------------------------

void __fastcall TF_Test::spdInitClick(TObject *Sender)
{
 AnsiString Rev,Snd;

 InitComm(cmbCom->ItemIndex,cmbBaud->ItemIndex);



 Snd="at";
 Comm1->OutputString(Snd+'\r');


 Sleep(500);

 Rev=Comm1->Input;
 mReceive->Text = mReceive->Text + Comm1->Input ;
  //设置Memo的光标至最下方
 mReceive->SelStart = mReceive->Text.Length() ;
 mReceive->SelLength = 0;

 Rev=Rev.SubString(Rev.Length()-3,2) ;
 if(Rev=="OK")
 {
  sbStatus->Panels->Items[1]->Text="初始化参数";
  sbStatus->Panels->Items[3]->Text="通讯成功";
  //sbStatus->->Text="通讯成功";

  if(!flag)
  flag=true;

 }
 else
 {
   sbStatus->Panels->Items[1]->Text="通讯失败";
 }

 Snd="at+csq";
 Comm1->OutputString(Snd+'\r');


 Sleep(500);

 Rev=Comm1->Input;
 mReceive->Text = mReceive->Text + Comm1->Input ;
  //设置Memo的光标至最下方
 mReceive->SelStart = mReceive->Text.Length() ;
 mReceive->SelLength = 0;

 AnsiString Rev1,Rev2;
 Rev1=Rev.SubString(Rev.Length()-3,2) ;
 if(Rev1=="OK")
 {
  sbStatus->Panels->Items[3]->Text="通讯成功";
  Rev2=Rev.SubString(Rev.Length()-12,5);

  if(Rev2.SubString(4,2)=="00")
  {
   sbStatus->Panels->Items[5]->Text="信号状态未知";
  }
  else
  {
   if(Rev2.SubString(1,2)>="23")
   {
    sbStatus->Panels->Items[5]->Text="信号状态较强";
   }
   else
   if(Rev2.SubString(1,2)<="20")
   {
    sbStatus->Panels->Items[5]->Text="信号状态较弱";
   }
   else
   {
    sbStatus->Panels->Items[5]->Text="信号状态正常";
   }
  }

  if(!flag)
  flag=true;

 }
 else
 {
   sbStatus->Panels->Items[1]->Text="通讯失败";
 }
}
//---------------------------------------------------------------------------

void __fastcall TF_Test::spdPauseClick(TObject *Sender)
{
 Timer1->Enabled=false;
}
//---------------------------------------------------------------------------

void __fastcall TF_Test::SpeedButton1Click(TObject *Sender)
{
//
 mReceive->Text = mReceive->Text + Comm1->Input ;
  //设置Memo的光标至最下方
 mReceive->SelStart = mReceive->Text.Length() ;
 mReceive->SelLength = 0;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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