没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2007-09-24 09:52:42.000|阅读 1138 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
很早以前,就注意到一些手机短消息的发送软件,当时觉得那是多么的神奇,可是从来没有想过去开发一个自己的手机短消息软件.临近毕业,要做毕业论文,我选的毕业课题是机房安全系统的开发,主要是机房环境系数的监测以及报警功能的实现,其中就包括手机短消息报警和拨号报警.
手机的短消息实现目前有三种方法:
1.通过移动网关发送短消息,使用该方法不需要附加的硬件,但是需要到电信部门申请网关,比较适用于一些大型的网络通讯公司开发,目前华为,中兴等公司就做的这方面的工作,并且还有相应的开发包供开发人员使用。
2.在电脑上通过 GSM MODEM 向手机发送中文短消息,这是目前比较适合于小项目开发的一种方法,所需硬件包括一款手机,提供 GSM MODEM,以及相应的数据线或是红外线适配器.该方法编码简单,只需对 AT 指令和串口编程比较熟悉就可以实现,而且对硬件需求不高,并能自动收发短消息.
3.通过一些网站上提供的短信发送功能来实现,比如新浪网,网易都提供这方面的服务,这种方法是这三种方法中实现起来最简单,所需资源最少的,但是对于网站的依赖性太强,对网络的依赖同样无法避免,不适用于项目开发。
通过第二种方法收发短消息又分为三种模式:Block 模式、Text 模式和 Pdu。使用 Block 机生产厂家提供驱动支持,现在还没有发现哪个厂家公布支持这种短信发送模式,而 Pdu 模式开发起来比较复杂,并且需要编写专门的函数来将文本转换为 Pdu 格式,比较繁琐.相对而言,应用 Text 模式开发及方便也简单,是一种不错的选择,不过使用 Text 模式开发只能发送 ASCII 码,对于中文的 Unicode 码不能发送.
使用 Text 模式发送短信其实很简单,只要对于 AT 指令有基本的了解,就能编写出短消息的发送程序,可是一直以来介绍该方法的文章却少之又少,很多人认为使用该方法太简单,不值一提。不过对于简单的应用来说,该方法也不失于一种不错的选择。
先在项目中添加 Mscomm 控件,一般的部件栏中可能没有列出 Mscomm 控件,可以过右击部件栏,选择”部件”,或是通过在菜单中的”工程”选择”部件”,然后选中 Microsoft Comm Control 6.0即可.添加了 Mscomm 控件后,可以设置一些基本的参数.如果你使用 Nokia 的手机,你还必须安装 data suite(可以到 Nokia 的开发论坛上去下载一个),然后 Mscomm 的 comport 选择3;如果你使用其他手机,采用红外线接口,你必须安装红外线驱动程序。选择相应的端口.下面的代码是一些基本参数的设置:
Mscomm1.Settings=”9600,N,8,
波特
,
无奇偶校验
,8
位数据
,
一个停止位
Mscomm1.InputLen=0 ‘
读入整个缓冲区
Mscomm1.Portopen=True ‘
打开端口
发送短消息的代码如下:
MSComm1.Output = "AT+CMGF=1" + vbCr ‘
设置发送的模式
,
注意
:
一定要加上
vbCr
MSComm1.Output = "AT+CSCA=" & Chr$(34) & "8613010341500" & Chr$(34) & ",129" + vbCr ‘8613010341500
是短消息中心
,
各地的号码不一样
,
必须设置当地的短消息号码
MSComm1.Output = "AT+CMGS=" & Chr$(34) & "13057575064" & Chr$(34) & ",129" + vbCr ‘13057575064
是对方手机号
MSComm1.Output = "test" & Chr$(26) ‘chr$(26)
是
Ctr+ Z
以上是简单实现短消息,你可以根据 AT 指令集结合 VB 的串口控件开发出更加完善的程序和功能丰富的应用程序,如接收短消息,拨号等等.
使用 Text 模式收发短信代码简单,实现起来十分容易,但是最大的缺点是不能收发中文短信,实在是有点美中不足.不过 Pdu 模式完全可以解决这个问题,Pdu 模式不仅支持中文短信,也能发送英文短信,堪称完美无缺.Pdu 模式收发短信可以使用三种编码: 7-bit、8-bit 和 UCS2编码. 7-bit 编码用于发送普通的 ASCII 字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送 Unicode 字符。我们要实现中文短信的发送,所以选择 UCS2,即中文 Unicode 码.
首先介绍一下 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 串(我调试程序时采用):
0891683110301405F011000D91683159717456F4000800165982679C6536523077ED4FE
我们将其分解为:
08 SMSC
地址信息的长度
(91683110301405F0
共八位字节
)
91 SMSC
地址格式
(TON/NPI)
683110301405F
0 SMSC
地址
(8613010341500
南京的短信服务中心号码
)
11
基本参数
(TP-MTI/VFP)(
发送
,
接收为
84)
00 MR Message Reference
0D
目标
SIM
卡号码长度
(
按阿拉伯数字个数计
)
91
同上
683159717456F
4
对方手机
SIM
卡号
(8613057575064)
00
普通
GSM
类型,点到点方式
08 UCS2
编码
00
有效期
16
用户信息长度
(
的长度共
22
为字节
)
5982679C
6536523077ED4FE
如果收到短信
,
请回复
.”Unicode
码
)
Pdu 码的构成我们已经了解后,我们就可以开始编码了,上面的红色部分就是我们要编码实现的.
首先看 SMSC 地址:
对于用户信息长度,我们可以通过 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= “0891683110301405F011000D91683159717456F4000800165982679C6536523077ED4FE
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
为
5982679C
6536523077ED4FE
的位数
.
到这里,短信的发送基本完成,短信的接收更简单一点,主要是解码,就是应用 ChrW()函数了.
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:百川之家接DevExpress原厂商通知,将于近日上调旗下产品授权价格,现在下单客户可享受优惠报价!
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号