⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 中文pud短信说明.txt

📁 详细说明VB下中文短信PUD码AT指令结构
💻 TXT
字号:
VBAT中文短信 
编辑 | 删除 | 权限设置 | 更多▼ 设置置顶
 
推荐日志
 
转到私密记事本
 放任    发表于2009年04月11日 00:49 阅读(0) 评论(0) 
分类: 个人日记 权限: 公开 
 
 
首先介绍一下VB中的两个函数:ChrW()和AscW().对于Chr()和Asc()函数大家一定很熟悉,对于ChrW()和AscW()可能会比较生疏一点. ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同; AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。对于这两个函数我们各举一个例子说明: 
  ?ascw("短") 
  30701 
  ?chrw(26482) 
  杲 
  可见这两个函数可以实现中文和Unicode码之间的转换,对于我们编码解码十分方便.我们得到中文的Unicode码之后,就可以编制Pdu串了. 
  我们再了解一下Pdu串的构成,我们看这样一个Pdu串(我调试程序时采用): 
  0891683110301405F011000D91683159717456F4000800165982679C6536523077ED4FE1002C8BF756DE590D002E. 
  我们将其分解为: 
  08 SMSC地址信息的长度(91683110301405F0共八位字节) 
91 SMSC地址格式(TON/NPI) 
683110301405F0 SMSC地址(8613010341500南京的短信服务中心号码) 
11 基本参数(TP-MTI/VFP)( 发送,接收为84) 
00 MR Message Reference 
0D 目标SIM卡号码长度(683159717456F4按阿拉伯数字个数计) 
91 同上 
683159717456F4 对方手机SIM卡号(8613057575064) 
00 普通GSM类型,点到点方式 
08 UCS2编码 
00 有效期 
16 用户信息长度(5982679C6536523077ED4FE1002C8BF756DE590D002E的长度共22为字节) 
5982679C6536523077ED4FE1002C8BF756DE590D002E(“如果收到短信,请回复.”Unicode码) 
  Pdu码的构成我们已经了解后,我们就可以开始编码了,上面的红色部分就是我们要编码实现的. 
  首先看SMSC地址: 683110301405F0与8613010341500F(SMSC最后一位补F构成14位),我们可以发现只需将奇偶位对调即可.同样道理: 683159717456F4与8613057575064也是一样的处理. 
  对于用户信息长度,我们可以通过VB里的Len函数得到,例如”你好”,我们用Len(“你好”)得到2,那么2*2=4即为用户信息长度04(这里要转换为16进制,并且是两位).对于Unicode码,我们可以通过AscW()函数一个一个汉字取出其Unicode码即可得到. 
  下面给出短信发送的具体实现代码(相关知识可参见前一篇文章): 
  If MSComm1.PortOpen = False Then MSComm1.PortOpen = True 
Length=Len(“如果收到短信,请回复.”)*2 
MSComm1.Output = "AT+CMGF=0" + vbCr ‘以Pdu模式发送短信 
MSComm1.Output = "AT+CMGS=" & Str(15 + length ) + vbCr 
MSComm1.Output= “0891683110301405F011000D91683159717456F4000800165982679C6536523077ED4FE1002C8BF756DE590D002E” & Chr$(26) 
start = Timer 
pause =1 
While Timer < start + pause 
DoEvents 
Wend 
reco = MSComm1.Input 
If InStr(reco, "OK") Then sendsms = True 
If InStr(reco, "ERROR") Then sendsms = False 
MSComm1.Output = "AT+CMGS=" & Str(15 + length ) + vbCr中的15为 11000D91683159717456F400080016的位数.length为5982679C6536523077ED4FE1002C8BF756DE590D002E的位数  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -