您的位置 首页 解答

根据CGI的无线路由中短信功能设计

移动通信中的短消息是人们无线沟通的重要方式,更以其方便、可靠性得到广泛应用。针对嵌入式无线路由的迅速普及,为实现良好人机交互,提出将短消息功能植入可使用上网卡的无线路由的动态Web中。用C语言进行CG

摘要:移动通讯中的短音讯是人们无线沟通的重要办法,更以其便当、可靠性得到广泛应用。针对嵌入式无线路由的敏捷遍及,为完结杰出人机交互,提出将短音讯功用植入可运用上网卡的无线路由动态Web中。用C言语进行CGI程序规划,选用PDU短信形式,完结无线路由设备中短信的收发。试验成果也证明了此计划的正确性、实用性和可扩展性。
关键词:无线路由;动态WebCGI短信PDU

为完结杰出的人机交互及长途操控功用,现在大部分嵌入式Linux设备均引进Web服务器技能,无线路由的敏捷遍及更表现了这一点。Goa head是一款首要面向嵌入式体系的Web服务器,因其支撑asp、cgi且兼容性杰出备受无线路由等嵌入式设备的喜爱。而通用网关接口(CGI)则是Web服务器与为添加功用编写的外部程序之间的一个接口。市道遍及的无线路由器,办理界面鲜有收发短信的功用,这样用户可用功用受到限制。经过这个CGI接口完结从Web端修改短信并发送,及上网卡接纳短信并显现与Web端等功用,完结了无线路由更智能的一面。

1 嵌入式无线路由中的CGI技能
1.1 CGI作业原理
通用网关接口是Web服务器和外部扩展程序之间的一个接口。CGI能够使编写的程序处理WWW上客户端送来的表单和数据并对此做出相应反响。并且依据CGI的网页应用程序可作业于不同的浏览器渠道,兼容性杰出。
CGI程序的作业一般分为以下几个进程:
1)客户端宣布恳求;
2)Web服务器激活相应的CGI程序;
3)CGI程序对客户端的恳求做出反响;
4)Web服务器将CGI程序的处理成果传送给客户端;
5)Web服务器中止和客户端浏览器的衔接;
6)Web服务器将CGI程序的输出显现在浏览器的窗体上。
1.2 CGIC函数库
CGIC是用来生成依据CGI的WWW应用程序的C言语函数库,C言语编程是一项杂乱且简略犯错的作业,挑选适宜的库CGIC成为必要。一般的Linux体系都支撑ANSIC,添加相应的库函数和相应的h文件就能够完结CGI;而CGIC是一个完全符合ANSIC规范的程序库,在任何支撑ANSIC规范的体系渠道上都能够运用。
它有以下功用:
1)对数据进行语法分析;
2)接纳以GET和POST两种办法发送的数据;
3)把FORM中的不同域衔接成接连的串;
4)为检索FORM数据而供给字符串,整数,浮点以及单项和多项挑选功用;
5)为数字字段供给边界检测;
6)把CGI环境变量加载到非空的C串中;
7)为调试而捕捉CGI状况;
8)供给相对安全的体系调用功用。
CGIC自身供给了一个main()函数,CGIC的用户编写的程序代码应该放在函数cgiMain()中。CGIC的main()函数首要用来完结CGI程序的初始化作业、获取客户端用户的输入以及相应的解码作业,最终main()函数会调用cgiMain()以履行用户编写的程序代码。

2 短信功用规划
短信息服务作为现在最便当快捷的沟通办法,作业原理也变得越来越规范化。一般对短音讯的操控有3种完结途径:Block形式,依据AT指令的Text形式和依据AT指令的PDU形式。运用Text形式收发短信代码简略,但最大的缺陷是不能收发中文短信;而PDU形式不只支撑中文短信,也能发送英文短信。本文首要运用的是在Linux下用C言语来完结PDU形式的SMS收发。
2.1 PDU形式下短信发送原理
一个完好的SMS音讯所包括的一切报头信息被以二进制字符串格局传送。这个二进制由十六进制格局的IA5字符组合而成。一般的PDU码由13项组成:1)短信息中心地址长度,2位十六进制数(1字节);2)短信息中心号码类型,2位十六进制数;3)短信息中心号码,2)和3)的长度由1)中数据决议;4)文件头字节,2位十六进制数;5)信息类型,2位十六进制数;6)被叫号码长度,2位十六进制数;7)被叫号码类型,2位十六进制数,取值同短信息中心号码类型;8)被叫号码,长度由被叫号码长度中的数据决议;9)协议标识,2位十六进制数;10)数据编码计划,2位十六进制数;11)有效期,2位十六进制数;12)用户数据长度,2位十六进制数。13)用户数据,其长度由用户数据长度中的数据决议。数据编码计划中设定选用UCS2编码,这里是中英文的Unicode字符。
常用AT指令如下表所示:

a.JPG

2.2 PDU形式编码
用PDU形式收发短音讯能够运用3种编码:7-bit编码、8-bit编码和USC2编码。7-bit编码用于发送一般的ASCII字符;8-bit编码一般用于发送数据音讯,如图片或铃声等;USC2编码用于发送Unicode字符。因为短信需完结中文短信的发送,所以挑选用UCS2编码,即中文Unico de码。这些编码均有规范算法。

3 软件规划
3.1 串口通讯
嵌入式无线路由是经过串口发送一系列AT指令完结与无线路由的各种通讯,短音讯的收发也是经过这种办法。串口通讯是计算机与其他设备通讯的常用办法,本体系选用libcsms这个依据Linux的串行通讯函数库,来完结串行接口的异步事情驱动并发。选用该办法,只需要在cgi中编写数据处理函数,大大提高了作业效率。
3.2 短信发送页面规划
Html代码发送短信部分,为简化cgi程序作业,在web端经过脚本函数ucs2_code()将短信内容先做处理。ucs2_code()函数详细功用为:读取短信内容,循环获取短信的每一位并经过charCodeAt()和toString()办法结合转换为独自的Unicode码,再依据长度补齐;如此得到整个短信内容的Unicode码及此编码的长度。
再经过form提交表单,提交内容有:手机号码,手机内存写入状况,处理后的短信Unicode码和长度。部分代码如下:
b.JPG
3.3 CGI发送短音讯
Cgi发送短信主函数处理音讯部分经过环境变量,读取form表单提交的值;先读取手机号码,若成功则处理手机号码后持续读取短信内容的Unicode码,若成功则读取短信长度,若成功则将短音讯参数结构中的SMSC地址的变量赋相应值。再读取短信是发送仍是保存的状况。如此完结整个web页面短音讯的处理进程。
发送短信主函数部分代码如下所示:
c.JPG
d.JPG
发送短音讯在gsmSendMessage中完结,先依据PDU参数,编码PDU串;再经过PDU串和其间SMSC信息的长度,生成发送指令。向串口输入指令,依据回来值ans判别模块是否准备就绪,是则持续输入PDU串,回来TRUE,则发送成功;不然回来FALSE。
发送短信流程图如图1所示。

e.JPG

4 结束语
规划的立异之处在于供给了依据CGI的嵌入式无线路由中上网卡模块的短信收发功用的规划办法。短信收发选用PDU形式处理中文、英文短信;功用是经过用C言语编写的CGI完结。在web端与iavascript结合,完结动态web的高效运转。关于依据Linux的无线路由设备已渐渐浸透人们日用的各个旮旯成为必需品,假如将短信收发功用添加其间,更能添加此设备智能的功用,为用户供给更便当的服务。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/295570.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部