📄 u_test.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 + -