//---------------------------------------------------------------------------
#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;
}
//---------------------------------------------------------------------------
GPRS.rar_C Builder_GPRS 短信_c builder gp
版权申诉
112 浏览量
2022-09-19
13:16:38
上传
评论
收藏 207KB RAR 举报
钱亚锋
- 粉丝: 89
- 资源: 1万+
最新资源
- 驱动代码驱动代码驱动代码驱动代码
- SVID_20240523_141155_1.mp4
- Code for the complete guide to tkinter tutorial
- 关于百货中心供应链管理系统.zip
- SimpleFolderIcon-master 修改Unity的Project下的文件夹图标
- A python Tkinter widget to display tile based maps
- A pure Python library for adding tables to a Tkinter application
- Vector资源文件.zip
- MobaXterm-Installer
- MicroMsg.xlsx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈