各位:
在下目前在做“通过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命令之间必须在上一条命令有回应后才能执行下一条命令”的问题。
在下目前在做“通过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命令之间必须在上一条命令有回应后才能执行下一条命令”的问题。
解决方案 »
- 请问TBitmap类的 ScanLine方法有什么作用?
- 我用Delphi6编的程序,局域网中的有的电脑可以用,有的不可以,为什么?
- 我要写一个类似电子书的小软件。管理word文档资料
- 关于QuantumGrid中的TdxDBGrid的summaryfootertext的问题?
- listview怎么隐藏一列以及怎么在列的title上加上上下箭头?
- .........急急急急急急,word的行间距设置, 在线等候..................
- 怎么把SQL SERVER2000 数据库中的表转成.dbf格式的表!谢谢
- Delhpi中怎样使用SQL语言的‘游标’?
- 如何在程序中建立Firebird嵌入版数据库?
- 怎样在窗口的标题栏绘制图片?
- Delphi相关知识
- 想学学利用delphi存储网页flash和shockwave视频流技术
_______________________________________________________________你去掉最后的ctrl+z 试试看。
e后面多加了一个空格
你看看Length(s)对不对就知道了
拜托各位了,急呀!