📄 main.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma link "YbCommDevice"
#pragma resource "*.dfm"
TfrmMain *frmMain;
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::Button2Click(TObject *Sender)
{
this->Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::txtSMSChange(TObject *Sender)
{
txtCount->Text=txtSMS->Text.WideCharBufSize()-1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::nComChange(TObject *Sender)
{
try{
COM->Active=false;
COM->PortNo=nCom->Value;
COM->Active=true;
String S="EMPTY\x1A\r\nATE1\r\nAT+CMEE=0\r\nAT+CSCS=UCS2\r\nAT+CGMM\r\nAT+CPBS=ME\r\nAT+CPBR=?\r\nAT+CPBS=SM\r\nAT+CPBR=?\r\nAT+CPBS=ON\r\nAT+MPBR=1\r\nAT+CGMI\r\nAT+CGMR\r\nAT+CGSN\r\nAT+CIMI\r\nAT+CCID\r\nAT+GCAP\r\nAT+CCLK?\r\nAT+CSQ\r\nAT+WOPN?\r\nAT+CSCS=\"ASCII\"\r\nAT+CSCA?\r\nAT+CSCS=\"UCS2\"\r\nAT+CBC?\r\n";
COM->Write(S.c_str(),S.Length());
stbMain->Panels->Items[0]->Text="准备就绪";
}
catch(...)
{
stbMain->Panels->Items[0]->Text="未连接";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::Button1Click(TObject *Sender)
{
if(txtSMS->Text=="")
{
Application->MessageBoxA("不能发送空信息!","提示",MB_OK+MB_ICONWARNING);
return;
}
stbMain->Panels->Items[1]->Text="准备发送短信...";
Button1->Enabled=false;
txtSMS->Enabled=false;
String S="AT+CPMS=MT,DM\r\n";
COM->Write(S.c_str(),S.Length());
S="AT+CMGW=\""+Trim(txtNum->Text)+"\"\r\n";
COM->Write(S.c_str(),S.Length());
S=GetUnicode(txtSMS->Text)+"\x1A\r\n";
COM->Write(S.c_str(),S.Length());
}
//---------------------------------------------------------------------------
String __fastcall TfrmMain::GetUnicode(String sIn)
{//
String sData="";
wchar_t wch[500];
ZeroMemory(wch,1000);
sIn.WideChar(wch,sIn.Length());
for(int i=0;i<sIn.WideCharBufSize()-1;i++)
{
sData=sData+IntToHex((int)wch[i],4);
}
return sData;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::tmrRecvTimer(TObject *Sender)
{
String sRecv;
const BufSize = 4096;
char Buffer[BufSize];
ZeroMemory(Buffer,BufSize);
if(COM->Read(Buffer,BufSize)>0)
{
sRecv=Buffer;
//Memo1->Text=Memo1->Text+sRecv;
if(sRecv.Pos("+CMGW: ")>0)
{
stbMain->Panels->Items[1]->Text="正在发送短信...";
for(int i=0;i<50;i++)
{
Application->ProcessMessages();
Sleep(20);
}
String S="AT+CMSS="+sRecv.SubString(sRecv.Pos("+CMGW: ")+7,sRecv.Length()-7)+"\r\n";
COM->Write(S.c_str(),S.Length());
}
else if(sRecv.Pos("+CMSS: ")>0 && sRecv.Pos("OK")>0)
{
stbMain->Panels->Items[1]->Text="发送成功";
Button1->Enabled=true;
txtSMS->Enabled=true;
txtSMS->Clear();
txtSMS->SetFocus();
txtCount->Text=0;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
nComChange(this);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormClose(TObject *Sender, TCloseAction &Action)
{
COM->Active=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::txtSMSKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Shift.Contains(ssCtrl) && Key==0xD)
{
Button1Click(this);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::txtSMSKeyPress(TObject *Sender, char &Key)
{
if(Key==0xA && ((GetKeyState(VK_LCONTROL)<0)||(GetKeyState(VK_RCONTROL)<0)))
Key=0;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -