读书人

短信猫 delphi AT 接收 端消息,该如何

发布时间: 2012-02-14 19:19:19 作者: rapoo

短信猫 delphi AT 接收 端消息
大侠们,有没有delphi 控制 AT指令,接收端消息的代码啊。。我现在只有发送的没有接收的。。

发送:
procedure TForm1.Button1Click(Sender: TObject);
Var
apdcomport:Tapdcomport;
r,s,s2,s3,s4,s5:string;
cmdlong,tmp:integer;
//msgs:WideString;
begin

try
ApdComPort := Tapdcomport.Create(nil); //创建串口通信对象
ApdComPort.AutoOpen := false;
apdcomport.ComNumber:=1;//设置串行通信口
apdcomport.Baud:=9600;//设置串口波特率
//msgs:=msg;
s:= '0031000D9168 ';
//PDU编码属性,这种方法是不需要设置短信中心号码的,因为现的手机SIM卡已经写好了
s2:=SEncodeMobNO(ed_hm.Text);//对手机号码进行PDU编码
s3:= '0008A7 ';
s4:= ' ';
s5:=EnCodeChinese(M_nr.Text);
tmp:=length(s5)div 2;
s4:=format( '%X ',[tmp]);
if length(s4) <2 then
s4:= '0 '+s4;
//计算PDU编码长度
r:=s+s2+s3+s4+s5+^Z;
cmdlong:=(length(r)-2) div 2;

apdcomport.Open:=true;//打开串行口
apdcomport.Output:= 'AT+CMGF=0 '#13;//设置Modem为PDU模式
delayticks(7,true);//延时
apdcomport.Output:= 'AT+CMGR=0 '#13;//设置信息长度,这里应为PDU编码长度的1/2.
delayticks(7,true);
apdcomport.
apdcomport.Output:=r;//发送短信。
delayticks(9,true);

//apdcomport.Open:=false;
//apdcomport.Free;
//Application.MessageBox( '发送成功! ', '提示 ',mb_ok+mb_iconinformation);
except
Application.MessageBox( '发送失败! ', '提示 ',mb_ok+mb_iconinformation);
end;
end;

接收呢????谢谢大侠们勒。。

------解决方案--------------------


这是我写的一段在用的代码
procedure TSmsByComm.SetCenterNo(Value: WideString);
begin
if Assigned(MyComm) then
begin
strLastAT := 'AT+CSCA= " ' + Value + ' " ' + #13;
MyComm.Output := strLastAT;
Sleep(1000);
strRec := MyComm.Input;
if AnsiContainsText(strRec, 'OK ') then
strCenterNo := Value;
end;
end;
[解决办法]
我用的TMSComm
[解决办法]
偶自己写的组件,感觉用着还可以!!
[解决办法]
网上好多例子,以前有做过,现在找不到了
[解决办法]
串口控件应该有收到数据的事件吧,在事件中处理啊
[解决办法]
我用的SPComm,看了个小例子就行了,挺简单的
[解决办法]
诺亚软件公司 提供开发接包
[解决办法]
我用的是MsComm 如果要的话我可以给你
[解决办法]
我也是用MSCOMM 可以收发的。

读书人网 >.NET

热点推荐