短消息在林务系统中的应用毕业论文(编辑修改稿)内容摘要:

PP 协议格式的消息序列号;若消息从队列 2中来,该元素将是转化后的 SMPP 协议格式的消息序列号。 short mqm_sockfd。 //接收该消息的 socket。 short mqm_seqnum。 //收到的消息序列号; time_t mqm_timeout。 //收到该消息的时间; int total_length。 //该消息的长度; char mqm_buf[MAX_PACKET_SIZE]。 //该消息的内容; char converted_buf[MAX_PACKET_SIZE]。 //转换协议后的消息内容; }。 现以 MO请求业务为例,描述通信模块的工作流程。 当 SMSC 以 SMPP 格式的 DELIVER_SM 消息发出订阅某个 SP 的言语传情短消息,经由 smpp_server 收到,从队列 4 中转发给 package_server。 Package_server 收到 MO请求后回送给 SP 一个 SMPP 格式的 DELIVER_SM_REP 应答消息,并用 mqm_connection结构体存储这条 MO消息的各个信息。 之后, package_server 就把该消息转换成 CMPP协议的 CMPP_Deliver 消息,并通过队列 1送到 cmpp_server 中,转发给目的 SP。 SP在接收到这个消息后,会产生一个 CMPP 格式的 CMPP_Deliver_Rep 的应答消息返回给网关。 当 package_server 收到了应答信号,也需要用 mqm_connection 结构体存储。 这时,一条 MO 短消息转发成功, package_server 记录 SMO 话单 [9]。 3 利用 GSM 通信模块开发 短消息 的 相关 GSM AT 指令 相关的 GSM AT 指令 与 SMS 有关的 GSM AT 指令( from )如下表所示: AT 指令 功 能 AT+CMGC Send an SMS mand(发出一条短消息命令) 西南林学院 20xx 届本科毕业论文 9 AT+CMGD Delete SMS message(删除 SIM 卡内存的短消息) AT+CMGF Select SMS message formate(选择短消息信息格式: 0PDU。 1文本) AT+CMGL List SMS message from preferred store(列出 SIM 卡中的短消息PDU/text: 0/“ REC UNREAD” 未读, 1/“ REC READ” 已读, 2/“ STO UNSENT” 待发, 3/“ STO SENT” 已发, 4/“ ALL” 全部的) AT+CMGR Read SMS message(读短消息) AT+CMGS Send SMS message(发送短消息) AT+CMGW Write SMS message to memory(向 SIM 内存中写入待发的短消息) AT+CMSS Send SMS message from storage(从 SIM 内存中发送短消息) AT+CNMI New SMS message indications(显示新收到的短消息) AT+CPMS Preferred SMS message storage( 选择短消息内存) AT+CSCA SMS service center address(短消息中心地址) AT+CSCB Select cell broadcast messages(选择蜂窝广播消息) AT+CSMP Set SMS text mode parameters(设置短消息文本模式参数) AT+CSMS Select Message Service(选择短消息服务) 表 1 相关的 GSM AT 指令 对短消息的控制共有三种模式: Block Mode 基于 AT命令的 PDU Mode 基于 AT命令的 Text Mode Block Mode 已是昔日黄花,目前很少用了。 Text Mode 比较简单是纯文本方式,可使用不同的字符集,主要用于欧美地区。 从技术上说也可用于发送中文短消息,但国内手机基本上不支持。 PDU Mode 被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式。 计算机与 GSM通信模块的通信 1) 串口连接 由于 GSM 通信模块自带 RS232 串口线,故只需将其连接到计算机串口即可。 打开windows 自带的超级终端,选择相应的串口,将端口参数设置还原为默认值 即可。 2) 连接测试 输入“ AT”然后回车,屏幕上返回“ OK”表明计算机与 GSM 通信模块已连接成功,GSM 通信模块能够正常工作。 这时就可以测试各类 AT 命令。 短 消息在林务系统中的应用 10 当测试命令“ AT+CMGS=?CR”时,如果返回“ OK”标明 GSM 通信模块支持该指令。 该指令的完整语法如下: 如果此时 GSM 通信模块处于 PDU Mode(即“ AT+CMGF?CR”返回“ 0”) AT+CMGS=lengthCRPDU is given^Z/ESC 如果短消息发送成功,则返回“ OK”,并显示信息号: AT+CMGS:mr[,ackpdu] 如果短消息发送失败,则返回如下信息号: AT+CMS ERROR:err 如果此时 GSM 通信模块处于 Text Mode(即“ AT+CMGF?CR”返回“ 1”) AT+CMGS=da[,toda]CRtext is entered^Z/ESC 如果短消息发送成功,则返回“ OK”,并显示信息号: AT+CMGS:mr[,scts] 如果短消息发送失败,则返回如下信息号: AT+CMS ERROR:err 另外,由于使用的是 GSM 通信模块,当有新的短 消息到来时,需要 GSM 通信模块产生提示,使用指令“ AT+CNMI”。 该指令的完整语法如下: AT+CNMI=[mode][,mt][,bm][,ds][,bfr] 如果有新的短消息来到,则 GSM 通信模块将自动返回下列提示: AT+CMTI:“SM”,index 此时读出 index,然后用“ AT+CMGR”指令即可读出短消息内容。 3) 鉴于 TC35( T)支持 TEXT 格式,我们在试验中主要测试该格式。 ( A)设置短消息中心 AT+CSCA=+8613800731500(短消息中 心 ); ( B)设置短消息发送格式 AT+CMGF=1(1TEXT。 0PDU); ( C)发送短消息 (短消息内容为“ test” ) AT+CMGS=13508485560(目的地址 )cr test^z; ( D)设置短消息到达自动提示 :设置短消息到达提示当短消息被接收,将获取指西南林学院 20xx 届本科毕业论文 11 令: AT+CMTI:SM,INDEX(信息存储位置 ) AT+CNMI=1,1,0,0,1(); ( E)获取短消息内容 (Once more),假设 INDEX= 8。 AT+CMGR=8 返回信息如下: AT+CMGR:RECUNREAD,+8613508485560,01/07/16,15:37:28+32,Once more [2] 短消息编码 设需要发送的短消息内容为“ Hi”,使用的 GSM 字符集为 7 位编码。 首先将字符转换为 7 位的二进制,然后,将后面字符的位调用到前面,补齐前面的差别。 例如:H 翻译成 1001000, i 翻译成 1101001,显然 H 的二进制编码不足八位,那么就将 i的最后一位补足到 H 的前面。 那么就成了 11001000( C8), i 剩下六位 110100,前面再补两个 0,变成 00110100( 34),于 是“ Hi”就变成了 C8 34。 4 基于 PDU 模式的中文短信息接收 分析 PDU 数据包,根据 PDU 的数据格式将收到的中文信息和其它相关信息解析出来。 PDU 数据格式分析 PDU 数据包格式 , PDU 数据包由两部分构成,短信息服务中心地址( SMSC address)TPDU。 PDU 串表面上是一串 ASCII 码,由 ‘039。 ‘939。 、 ‘A39。 ‘F39。 这些数字和字母组成。 它们是 8 位字节的十六进制数,或者 BCD 码十进制数。 PDU 串不仅包含可显示的消息本身,还包含很多其它信息,如 SMS 服务中心号码、目标号码、回复号码、编码 方式和服务时间等。 其中短信息服务中心号码、发送源号码、日期以及时采用压缩 BCD 码表示,低位在前,高位在后。 例如,我们要将字符“ Hi”字符发送到目的地“ 13677328099” PDU 字符串为: 短 消息在林务系统中的应用 12 08 91 683108701305F0 11 00 0D 91 3176378290F9 00 00 00 02 C834 ⑴ 08— 短信息中心地址长度。 指( 91) +( 683108701305F0)的长度。 ⑵ 91— 短信息中心号码类型。 91 是 TON/NPI 遵守 International/ 标准,指在号 码前需加‘ +’号;此外还有其它数值,但 91 最常用。 91— 10010001 BIT No. 7 6 5 4 3 2 1 0 Name 1 数值类型 号码鉴别 表 2 91— 短信息中心号码类型 数值类型( Type of Number): 000— 未知, 001— 国际, 010— 国内 ,111— 留作扩展;号码鉴别( Numbering plan identification) :0000— 未知, 0001— ISDN/电话号码 (), 1111— 留作扩展; ⑶ 683108701305F0— 短信息中心号码。 由于位置上略有处理,实际号码应为:8613800731500(字母 F是指长度减 1)。 这需要根据不同的地域作相应的修改。 ⑴、⑵、⑶通称短消息中心地址( Address of the SMSC)。 ⑷ 11— 文件头字节。 11amp。 h=00010001amp。 b BIT No. 7 6 5 4 3 2 1 0 Name TPRP TPUDHI TPSPR TPVFP TPRD TPMTI Value 0 0 0 1 0 0 0 1 表 3 11— 文件头字 节 应答路径 — TPRP( TPReplyPath): 0— 不设置。 1— 设置 用户数据头标识 — TPUDHL( TPUserDataHeaderIndicator): 0— 不含任何头信息。 1— 含头信息 状态报告要求 — TPSPR( TPStatusReportRequest): 0— 需要报告。 1— 不需要报告 有效期格式 — TPVPF( TPValidityPeriodFormat): 00— 不提供( Not present)。 10— 整型(标准); 01— 预留。 11— 提供 8 位字节的一半( SemiOctet Represented) 拒绝复制 — TPRD( TPRejectDuplicates): 0— 接受复制。 1— 拒绝复制 信息类型提示 — TPMTI( TPMessageTypeIndicator): 00— 读出( Deliver)。 01— 提交( Submit) 西南林学院 20xx 届本科毕业论文 13 ⑸ 00— 信息类型( TPMessageReference) ⑹ 0B— 被叫号码长度。 ⑺ 91— 被叫号码类型(同⑵)。 ⑻ 3176378290F9— 被叫号码,经过了位移处理,实际号码为“ 13677328099”。 ⑹、⑺、⑻通称目的地址( TPDestinationAddress)。 ⑼ 00— 协议标识 TPPID( TPProtocolIdentifier) BIT No. 7 6 5 4 3 2 1 0 表 4 00— 协议标识 TPPID Bit 与 Bit : 00— 如下面定义的分配 Bit — Bit ; 01— 参见 协议标识完全定义; 10— 预留; 11— 为服务中心( SC)特殊用途分配 Bit — Bit。 一般将这两位置为 00。 Bit : 0— 不使用远程网络 ,只是短消息设备之间的协议; 1— 使用远程网络。 Bit — Bits : 00000— 隐含; 00001— 电传; 00010— group 3 telefax;00100— 语音; 00101— 欧洲无线信息系统( ERMES); 00110— 国内系统; 10001— 任何基于 的公用信息处理系统; 10010— Email。 ⑽ 00— 数据编码方案 TPDCS( TPDataCodingScheme) BIT No. 7 6 5 4 3 2 1 0 表 5 00— 数据编码方案 TPDCS Bit 与 Bit :一般设置为 00; Bit : 0— 文本未压缩,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。