论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
使用Block模式需要厂家驱动的支持,随着技术的发展,后两种模式将其取代。Text模式比较简单,但不能发送中文短信息。在智能家居的软件设计中,采用的是基于PDU模式,该模式支持各个,当然也包括中文。在智能家居中,采用中文报警和中文指令。
PDU数据包格式,是手机发送短信的一个数据单位[7]。其中的发送源手机号码、短消息服务中心号码(SMSC)、时间戳等都是用压缩BCD码表示,低位在前,高位在后。在PDU模式中,可采用Bit7、Bit8和UCS2编码方式对短消息发送内容进行编码。这三种编码方式可以发送的最大字符数分别为160,140和70。
其中Bit7编码发送普通ASCII字符,从0x00到0x7f,共可以表示128个字符。而短消息的报文是以8位字节传输的,所以就必须把8位码压缩成7位码。实现方法是: 将第二个字符的最后一位, 补充到第一个字符的前面第一位, 第三个字符的后两位, 补充到第二个字符的前两位, 依次类推, 就可得到相应的字符串。最后转换成十六进制。
Bit8编码通常用于发送任何二进制数据。
UCS2编码用于发送Unicode字符。它固定使用16位共两个字节来表示一个字符,共可以表示65535个字符。图4-11和图4-12分别是接收和发送短信的报文格式。
图4-11 接收短信的报文格式
图4-12 发送短消息的报文格式
实例一、发送短信时的PDU码:
08 91 68 31 08 20 01 05 F0 11 00 0B 91 31 58 81 27 64 F8 00 00 00 06 C8 32 9B FD 0E 01
表4-6 发送PDU包解析
结合发送短信的报文格式,知道短消息中心号码是:+8613800210500,对方号码是:13818413649,消息内容是“Hello!”。
实例二、接收短信时的PDU码
08 91 68 31 08 20 01 05 F0 84 0D 91 68 31 58 81 27 64 F8 00 08 30 30 21 80 63 54 80 06 53 4E 4E 1C 00 21
表4-7 接收短消息PDU包解析
短消息中心号码是:+8613800210500,对方号码是13851872468,消息内容是“华东!”。
4.4.1.2 AT指令
在智能家居中,控制中心通过串口给MC35模块发送AT指令以达到控制它的目的。表4-8中是一些系统中采用的AT指令。
表4-8 系统采用的AT指令
4.4.2 软件的实现
4.4.2.1 PDU编码解码
短信的PDU解码和编码的功能由智能家居软件工程中的CEncode类实现。
CEncode类的成员函数如表4-9所示:
表4-9 CEncode类的方法