+ -
当前位置:首页 → 问答吧 → delphi里用spcomm发短信,总是返回ERROR

delphi里用spcomm发短信,总是返回ERROR

时间:2011-09-05

来源:互联网

各位: 
  在下目前在做“通过GSM MODEM发送中文短信”的项目,现在的进展是:了解PDU编码,可以在超级终端里成功发送中、英文短消息,可以通过程序发送英文短消息,现在的问题是:程序发送不了中文的短消息。我使用的是SPCOMM控件(串口通讯),使用其默认属性,但在代码中写: 
  s := 'at+cmgs=18 '+chr($0d)+chr($0a);//PDU编码长度为18,后跟回车换行符 
  smsport.WriteCommData(pchar(s),Length(s)); 
  s := '0011000B813107020277F1000810046B228FCE '+chr($1A);//发送中文“欢迎”,编码为“46B228FCE”,后跟CTRL+Z 
  smsport.WriteCommData(pchar(s),Length(s)); 

  代码执行完后,却返回“ERROR”。好象与最后的结束符CTRL_Z有关! 

  但是如果在超级终端中输入如下命令则可以收到“欢迎”: 
  at+cmgf=0 
  at+cmgs=18 
  at+cmgs=0011000B812107020277F1000810046B228FCE(后跟一个CTRL_Z) 

  请问我的代码有何问题?是不是SPCOMM的属性不应使用默认值?

注意:我的程序是同步的,串口有返回才继续发送的,所以不存在“每一条AT命令之间必须在上一条命令有回应后才能执行下一条命令”的问题。

作者: liuqc   发布时间: 2011-09-05

你用comport控件试试看,我以前是用它做的,没任何问题。

作者: zhoufs   发布时间: 2011-09-05

回楼上,程序已经很多使用spcomm了,不能再改了。

作者: liuqc   发布时间: 2011-09-05

热门下载

更多