【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 ...
随机推荐
- 【Win 10 应用开发】Web授权示例:获取新浪微博的授权码
在使用类似微博的开放API的时候,会涉及到授权的问题,就拿微博来说,当用户在你的应用中需要调用微博API来处理一些事情时,你首先要让用户登录微博,得到用户授权后,才能调用微博API. 授权通常通过一个 ...
- CSS实现图片缩放特效
今天是感恩节,祝大家感恩节快乐哦!最近天冷了,大家注意保暖哟.下面一起看看小颖写的demo吧. html代码: <!DOCTYPE html> <html> <head& ...
- Android中如何使用命令行查看内嵌数据库SQLite3
转载博客:http://www.linuxidc.com/Linux/2011-06/37135.htm 在上图中,除了最后一个红色的方框,其它方框都是adb shell下的命令. [1]在Andro ...
- 如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server
我们在上面对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了详细介绍(<聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer& ...
- 开始学nodejs —— 调试篇
新学习一种技术,肯定会遇到很多坑,我们需要找到这些坑,弄清楚这些坑出现的原因和其中的原理.这种操作就叫做调试. 程序调试的方法和工具多种多样,在这里我总结一下我在学习nodejs的过程中,学到的和用到 ...
- 谈谈iOS Animation
零.前言 这里没有太多的代码细节,只是探索iOS动画的基本概念,以及其抽象模型,数学基础等.我们学习一个知识的时候一般有两个部分,抽象部分和形象部分,抽象好比语言的语法,是规则,形象好比具体的句子,可 ...
- Vue.js学习笔记(1)
数据的双向绑定(ES6写法) 效果: 没有改变 input 框里面的值时
- (转)从P1到P7——我在淘宝这7年
(一) 2011-12-08 [原文链接] 今天有同事恭喜我,我才知道自己在淘宝已经七周年了.很多人第一句话就是七年痒不痒,老实说,也曾经痒过,但往往都是一痒而过,又投入到水深火热的工作中去.回家之后 ...
- Navisworks 提供了.NET, COM和NwCreate 三种API
Navisworks 提供了.NET, COM和NwCreate 三种API.而通常我们说Navisworks API其实指的只是COM或.NET,因为NwCreate的功能比较特殊.待我一一道来: ...
- 使用PublishSetting快速在Powershell中登录Azure
使用Powershell 来管理Azure资源实在是一大快事. 在使用power script之前, 需要先连接到Azure上,其中使用导入PublishSetting文件是最方便的方法. 步骤: 1 ...