如何用GPRS卡打电话或来电显示 ( 积分: 200 )

  • 主题发起人 主题发起人 yangyih007
  • 开始时间 开始时间
Y

yangyih007

Unregistered / Unconfirmed
GUEST, unregistred user!
我知道超级终端可以实现,比如拨打电话:ATD13316310781;
得到来电号码:
AT+CLIP=1
可惜我对于spcomm不了解,能否帮忙写一点代码?实现上面的功能?谢谢高手。
 
没有人知道吗?可以考虑再次加分
 
我已经搞定大部分了,就是无法得到来电号码,只能显示到RING,
而使用AT+CLIP=1
后超级终端显示为:RING
+CLIP: "13316310781",129
 
我已经全部搞定,很容易啊。
 
那分怎么办啊?
 
qnaqbgss你知道?如果到达目的我很谢谢你哦。分肯定会给你,放心吧。
 
顶一下分!
其实,采用一个维护线程就搞定了!
我以前也做过短信群发,自动接收识别内容回复的软件!
 
我现在只能采用AT+CMGL=0的方式,每隔半分钟读一次串口,如果有未读短信则提示。虽然可以不过不好,我贴出我的代码,请高人帮我修改一下。另外我对于线程了解很低,能否帮忙改为线程的方式,谢谢。
function checknewsms(hcomm:thandle;smstext:string):string;
var temp,str:string;
lrc:longword;
begin
result:='';
if (not active )and(issend) then exit;
str:=readcom(hcomm);
if pos('+CLIP:',str)>0 then begin
str:=copy(str,pos('+CLIP:',str)+8,11);
smstext:=smstext+#13+datetimetostr(now)+#13+'有新来电:'+str;
result:=smstext;
end;

temp:='AT+CMGL=0'+#13;
writefile(hcomm,pchar(temp)^,length(temp),lrc,nil);
delaytimems(1000);
str:=readcom(hcomm);

if (pos('+CMGL:',str)>0) then begin
str:=getsms(str,'+CMGL:');
smstext:=smstext+#13+str;
result:=result+#13+smstext;
end;




end;
 
學習一下。不錯。
 
和你用的设备有关,有的设备支持短信到来提示的,有的不支持,所以一般软件都是通过定时读取新短信的方式来完成。
 
看看还有高手没有,这个问题虽然解决,不过感觉真的不好,有更加好的办法吗?
 
后退
顶部