【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 ...
随机推荐
- 【.net深呼吸】WPF异步加载大批量图像
如何在WPF中加载大批量数据,并且不会阻塞UI线程,尤其是加载大量图片时,这活儿一直是很多朋友都相当关注的.世上没有最完美的解决之道,咱们但求相对较优的方案. 经过一些试验和对比,老周找到了一种算是不 ...
- C#设计模式:单件(例)模式 -- 类也玩计划生育
这里写的代码,相当于<Head First 设计模式>的读书笔记,原书是java的,自己在学习的过程中将其翻译为C#: (一)剖析经典的单件模式实现 单件模式 -- 确保一个类只有一个实例 ...
- php json_encode数据格式化
在用ajax与后台交互数据的时候,后台传回来的数据格式不正确,后参考@傲雪星枫的博客在PHP文件添加了一段代码 :echo json_encode($arr); 成功解决.
- Ubuntu 14.04 LTS中怎样安装fcitx中文输入法
轉載: http://jingyan.baidu.com/article/4b07be3c60da3f48b380f3f0.html 一,安装fcitx,这么好的软件,ubuntu软件中心肯定是找得到 ...
- Java传值和传址
调用函数时,传的参数过去可能是传值,也可能是传址.如果是传值,函数内部的操作对参数的值没有影响:如果是传址,函数内部的操作是对参数指向的内存进行操作,会影响参数的值. Java到底是传值还是传址?用下 ...
- 继续上篇抢QQ口令红包,抢那招抢不了的红包技巧
- - - - - - - - - - -- - - --长按红包,出现回复,点击回复,那回复里有个表情,直接输入那个表情回复就可以抢了 - - - - - - - - --------------- ...
- python爬虫的一些心得
爬虫用于从网上得到目标数据,根据需要对其予以利用,加以分析,得到想要的实验成果.现在讲一讲我这两天学到的东西. 第一,爬虫的算法结构,包括以下几个方面: (1)读取网络数据 (2)将获取的数据解析为目 ...
- 严重: Exception sending context initialized event to listener instance of class
问题描述:Exception sending context initialized event to listener instance of class org.springframework.w ...
- js的命名规范
js的命名规范 1.驼峰命名法:首字母是小写的,接下来的字母都以大写字符开头.例如: var testValue = 0; var oneValue = 10; 2. ...
- intellij中不能导入jar包
①选中项目点击右键,选择open modual settings(或者直接按F4): ②在弹出的窗口左端选择Libraries: ③点击左边加号,选择From Maven Repository; ④将 ...