【GSM】GTM900C的应用——短信
虽说GSM已经很老旧,但其低廉的价格,非常适合一些需要小数据上网传输和短信等功能的应用场合。 不知道GSM能否像51单片机一样,在低端应用中长久不衰。GTM900C发送短信,支持两种模式,TXT和PDU。TXT模式指令简单,操作方便,但不支持中文。PDU模式最通用,因为能发送所有的世界上所有国家的字符,但操作稍微有些复杂。本文介绍使用PDU模式开发收、发短信功能。
避免重复造轮子:请参考网友博客。注意:AT指令均以回车换行结尾。
拿到GTM900C,成功发送一条短信需要以下步骤:
1、初始化模块
步骤1:上电
说明:模块上电后,自我初始化成功,会通过串口输出AT-Command Interpreter ready
步骤2:测试串口
说明:串口通信不成功,主控模块应做处理
发送指令:AT
应答指令:AT
OK
步骤3:关闭回显
说明:串口通信成功,指令不管正常或异常都有应答,就不再需要回显。
发送指令:ATE
应答指令:OK
步骤4:测试SIM卡
说明:SIM不存在,应做处理。
发送指令:AT%TSIM
应答指令:%TSIM 1
OK
步骤5:测试信号质量
说明:质量太差,应做处理。
发送指令:AT+CSQ
应答指令:+CSQ:20,99
OK
2、短信编码
短信编码就是按照固定的协议,把用户短消息内容加上各种协议内的配置参数,封装成一条可以传输、解析的数据流。具体编码函数可以拿来主义,验证下即可,不要重复造轮子。
举个例子:一条完整的PDU编码后的短信如下:
0891683108200505F011000D91683196032930F000000006C8329BFD0E01
08,91,68 31 08 20 05 05 F0,11 00 0D ,91 ,68 31 96 03 29 30 F0 ,00 00 00 06 C8 32 9B FD 0E 01 //(加逗号间隔开)
其中,此PDU编码结构如下:
08:短信中心号码长度(+8613800250500转换成91683108200505F0,一共8个字节)。
91:国际格式(号码前的符号“+”)。
682108200505F0:短信中心号码(8613800250500,规律:末尾补F,每两位内翻转)
11:固定,基本参数。
00:固定,消息基准值。
0D:目标号码数字个数(不包含“+”和“F”),有可能此值为0B(目标号码格式就不带86)。
91:国际格式(号码前的符号“+”),81是小灵通。很奇怪的事,使用81能成功发送短信,也能正确接收,但使用91能成功发送,但接收不到。
683196032930F0:目的手机号码(8613693092030)
00:固定,协议标识。
00:编码模式,00-7bit,04-8bit,08-USC2。
00:00-有效时长5分钟。
06:用户信息长度,不同编码下,用户数据长度(字节)不同。
C8329BFD0E01:用户信息内容。
3、发送
步骤1:设置PDU模式
发送指令:AT+CMGF=0
应答指令:OK
步骤2:发送PDU编码长度
说明:PDU编码长度是源手机号码之后的字节数。
发送指令:AT+CMGS=16
接收指令:>
步骤3:发送1A
说明:发送1A(Hex)后,有应答,此时才发送成功。
发送指令:1A
应答指令:+CMGS: 35
OK
【GSM】GTM900C的应用——短信的更多相关文章
- Moto C118 基于 Osmocom-BB 和 OpenBTS 搭建小型GSM短信基站
此文章PDF文档下载地址:点击下载 0x00 写在前面 大家应该都听说过摩托罗拉C118配合Osmocom-BB实现GSM网络下的短信拦截功能吧,在14年左右新出了一种玩法就是Osmocom-BB的s ...
- android-----test------模拟来电提醒和短信提醒
为了测试应用是否能处理来电提醒和短信提醒时正常处理,我们需要做个测试,怎么模拟来电提醒和短信提醒呢?? 采用Telnet 命令来模拟. 1.首先看看Telnet 命令是否可以使用,如果不可以使用,则需 ...
- VB短信猫开发包,支持超长短信
一.短信猫开发包(长短信/异步调用)说明: 短信猫开发包以OCX控件的形式提供,支持Windows平台下常用的开发工具:如VB.VB.net.VC++.Power Builder.C#.DELPH ...
- 【转】如何向Android模拟器打电话发短信
转载地址:http://hi.baidu.com/jeremylai/item/420f9c9fe4881fccb62531f7 1. 启动Android Emulator, 查看标题栏找出端口.一般 ...
- 黑客炼金术士 Seeker:可以攻破 4G 摸到你短信,还要为朝阳群众提供谍战工具
在北京上地的一家咖啡馆里,我在等待黑客 Seeker 的到来. 我对黑客 Seeker 颇有期待.他曾在黑客大会 KCon 上演讲<伪基站高级利用技术——彻底攻破短信验证码>,介绍利用 L ...
- 【Android】Android 发送短信和打电话的方法
发送短信的方法 有两种方法可以实现发送短信,其一是使用intent-startActivity,URI数据格式为"smsto:num",调用的action为Intent.ACTIO ...
- SIM900A—发送、接收中英文短信
文章目录 一.SMS简介 二.短信的控制模式与编码 1.Text Mode 2.PDU Mode 3.GSM编码 4.UCS2编码 三.收发英文短信 1.AT+CPMS查询短信数量 2.AT+CNMI ...
- GSM 短信相关AT指令(转)
// AT+CSMS 选择消息业务AT+CSMS=0 // SMS 的AT 命令兼容GSM 07.05 Phase 2AT+CSMS=1 // SMS 的AT 命令兼容GSM 07.05 Phase ...
- GSM短信侦听的便宜方案
侦听GSM短信常用的是OsmocomBB + C118方案,主要是用luca/gsmmap分支.使用ccch_scan这个程序可以把通信封装成GSMTAP发给本机,然后用WireShark接收GSMT ...
随机推荐
- 微软Power BI技术文章与资源目录
下面是本博客原创的微软Power BI技术相关文章,对于部分转载文章和资源,会注明出处. 本博客将发布基于微软Power BI相关的基础入门文章,视频教程等资源,敬请关注. 个人建立的Power BI ...
- The .NET of Tomorrow
Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciting times lie ahead f ...
- 计算机程序的思维逻辑 (39) - 剖析LinkedList
上节我们介绍了ArrayList,ArrayList随机访问效率很高,但插入和删除性能比较低,我们提到了同样实现了List接口的LinkedList,它的特点与ArrayList几乎正好相反,本节我们 ...
- 计算机程序的思维逻辑 (46) - 剖析PriorityQueue
上节介绍了堆的基本概念和算法,本节我们来探讨堆在Java中的具体实现类 - PriorityQueue. 我们先从基本概念谈起,然后介绍其用法,接着分析实现代码,最后总结分析其特点. 基本概念 顾名思 ...
- C语言之链表list
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h& ...
- A chatroom for all! Part 1 - Introduction to Node.js(转发)
项目组用到了 Node.js,发现下面这篇文章不错.转发一下.原文地址:<原文>. ------------------------------------------- A chatro ...
- jQuery+CSS3文字跑马灯特效
jQuery+CSS3文字跑马灯特效是一款将跑马灯背景制作为3D立方体效果,文字在上面移动时,就像是文字投影到墙壁上,在转角出会改变运动方向. 效果展示 http://hovertree.com/te ...
- JavaWeb_day07_JSP
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day07 JSP 全称 :Java Server P ...
- SVNKit支持SSH连接
SVNKit这个开源工具,用于Java语言访问SVN库,咋看的时候很方便,其实坑特别多.我在这里只想跟大家说一句,如果你还没有用过,请不要在生产环境使用这个东西了,兼容性问题搞死你(替换方案是直接用s ...
- 面向对象设计模式纵横谈:Singelton单件模式(笔记记录)
李建忠老师讲的<面向对象设计模式纵横谈>,早就看过了,现在有了时间重新整理一下,以前的博客[赛迪网]没有了,现在搬到博客园,重新过一遍,也便于以后浏览. 设计模式从不同的角度分类会得 ...