关于使用GSM Modem发送短信息的问题(300分)

  • 主题发起人 主题发起人 zhaocq
  • 开始时间 开始时间
Z

zhaocq

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟和前面的一位兄台一样遇到了使用GSM Modem发送短信时中文的问题,
实在时无法弄懂PDU格式的编码方式,几篇文章仿佛都是写给高高手看得,
对问题的关键点到为止了,怎奈兄弟学识有限!
还请诸位大侠指点,最好能又完整的源码功参考!
另外请教发送图片和铃声的办法!
谢谢了,分数随意!先来300
 
AT+CMGF=1 选择PDU编码,0为文本模式
AT+CMGL=0 列出SIM卡中短消息,0-未读,1-已读,2-待发,3-已发
AT+CMGR=1 读取指定编号的短消息
AT+CMGD=1 删除短消息
AT+CMGS="13958138454" 发送短消息,CTRL+Z结束
>Good Morning! ^Z

PDU英文编码:
function EncodeEnglish(var s:String): String;
var
i,j, Cur: Integer;
t:String;
begin
Result := '';
i := 1; j := 0;
while i <= Length(s) do
begin
if i < Length(s) then
Cur := (ord(s) shr j) or ((ord(s[i+1]) shl (7-j)) and $ff)
else
Cur:=(ord(s) shr j) and $7f;
FmtStr(t,‘%2.2X’,[cur]);
Result := Result + t;
inc(i);
j := (j+1) mod 7;
if j = 0 then
inc(i);
end;
end; 
 
中文编码:
function EncodeChinese(var s:WideString): String;
var
i, Cur: Integer;
t: String;
begin
Result := '';
i := 1;
while i <= Length(s) do
begin
Cur:=ord(s);
FmtStr(t,'%4.4X',[Cur]);
Result := Result + t;
inc(i);
end;
end;
 
请问如果我不采用Nokia Data Suite,还能用其它的方式或驱动程序等通过串口AT命令发
短信〉?
有谁能说一下他们的区别?
我发现下载的发短信工具,他们都不需要什么驱动程序或Data suite就能够直接通过串口
红外线发短信,他们的原理是什么?采用什么方法〉??

Feizei@21cn.com

 
请问哪一位有PDU的样板,可否发出来看看。
虽然我对PDU包格式有一点了解,但不透切,请多多指点
 
PDU模式短信发送成功,但是手机接收到该短信发现乱码,却又不是全部乱码
例如:
我发送: “大富翁论坛讲座”
接收结果:“大富翁论坛讲座?#”“大富翁论坛讲座—”。。。。
请问原因何在?是否跟编码有关
其中发送的PDU包为
“0891683108304605F011000B913109009099F90008AA0E59275BCC7FC18BBA575B8BB25EA7”
“大富翁论坛讲座”编码:59275BCC7FC18BBA575B8BB25EA7
长度:14=X0E
我想TP-UDL可能没错。
除了PDU包错外,会不会其他地方错啦。例如串口连接参数等?????

请多多指教 Feizei@21cn.com
 
多人接受答案了。
 
本人用spcomm做短信发送,但,问题是要做群发。我不清楚硬件/协议上有没有群发
这个概念,如果没有,只能从软件上实现,如果群发的时候像单条短信发一样,时间
需求比较大,请问各位有什么好方法?
 
发短信等手机通讯有三种方式:
1.移动、联通网关,一般是通过宽带网连接
2.通过在163、sohu、sina等网站注册手机,编写程序来发送短信
3.红外或串口与手机通信,分Text和PDU两种传送模式。其中,Nokia手机还可以分为需要数据套件、免数据套件(二进制)两种方式。
我的主页上有后两种Demo程序及源代码。http://wenjinshan.wx-e.com/index2.htm
 
后退
顶部