GSM Communication on EBox4300--(3)
GSM Communication on EBox4300--(1)主要是关于EBox4300上实现GSM通信的框架;GSM Communication on EBox4300--(2)陈述了硬件的制作;这次就讲讲EBox4300和TC35i的通信吧。
根据TC35i的“TC35i_ATC_V01.03”文档,我们可以使用AT指令来控制它的行为。由于之前的硬件设计中,没有加入耳机和麦克风,所以诸如打电话之类的语音试验这里就不能进行了,发短信是最简单直接的一个试验。短信有关的AT指令如下:
AT+CMGC:发出一条短消息
AT+CMGD:删除SIM卡内存的短消息
AT+CMGF:选择短消息信息格式:0-PDU;1-文本
AT+CMGL:列出SIM卡中的短消息PDU/text: 0/"REC UNREAD"-未读,1/"REC READ"-已读,2/"STO UNSENT"-待发,3/"STO SENT"-已发,
4/"ALL"-全部的
AT+CMGR:读短消息
AT+CMGS:发送短消息
AT+CMGW :向SIM内存中写入待发的短消息
AT+CMSS:从SIM卡内存中发送短消息
AT+CNMI:显示新收到的短消息
AT+CPMS:选择短消息内存
AT+CSCA:短消息中心地址
AT+CSCB :选择蜂窝广播消息
AT+CSMP:设置短消息文本模式参数
AT+CSMS:选择短消息服务
上述AT指令是通过串口来交互的,根据我之前写的文章Serial Port Debug on EBox4300,就在EBox4300上可以通过串口来和TC35i通信了。
对串口的操作可以用托管代码来实现,即使用System.IO.Ports中的SerialPort,主要就是Open,Close,Read和Write功能。设计一个简单的界面来显示正在进行的串口操作,如下图1所示:
图1:一个简单的UI调试界面
上图中,1和2是ZigBee(EBox4300的串口1)信号发送和接收的显示窗口;3和4是GSM短信息发送和接收的显示窗口;5是目标用户的手机号码输入框;6是进行简单操作的按钮,包括串口打开、关闭,TC35i模块的初始化,发送、接收显示区的清空等等。
EBox4300给TC35i发送指令,其实就是往串口2写字符,串口2输出可以用:m_serialPort2.Write();
例如,初始化短信模式设置的时候,可以使用:
//set AT+CMGF=1+回车换行
m_serialPort2.Write(new char[] { 'A', 'T', '+', 'C', 'M', 'G', 'F', '=', '1' }, 0, 9);
m_serialPort2.Write(new byte[] { 0x0D }, 0, 1);
m_serialPort2.Write(new byte[] { 0x0A }, 0, 1);
特别需要注意的是:短信内容发送完毕必须以十六进制数0x1A结束,例如,发送短信时,先发送对方号码,然后发送数据:
//发送text中输入的对方手机号码
stATCommand = "AT+CMGS=+86" + textBoxPhoneNumber.Text;
btATCommand = stATCommand.ToCharArray();
m_serialPort2.Write(btATCommand, 0, 22);
m_serialPort2.Write(new byte[] { 0x0D }, 0, 1);
m_serialPort2.Write(new byte[] { 0x0A }, 0, 1);
Thread.Sleep(15);
m_serialPort2.Write(new char[] { 'H', 'e', 'l', 'l', 'o'}, 0, 5);
//set SMS end symbol
m_serialPort2.Write(new byte[] { 0x1A }, 0, 1);
至此,在EBox4300上实现GSM网络联网,发送短信的部分已经完成,希望对大家有用,谢谢关注!
项目的演示,可以观看Youtube上的视频,链接地址:http://www.youtube.com/watch?v=EOiiRbr0q5I。
Enjoy!
本文转自施炯博客园博客,原文链接http://www.cnblogs.com/dearsj001/archive/2008/12/02/1346327.html:,如需转载请自行联系原作者
GSM Communication on EBox4300--(3)相关推荐
- GSM Communication on EBox4300--(2)
上一篇GSM Communication on EBox4300--(1)主要是关于EBox4300上实现GSM通信的框架.这次就讲讲如何设计包含西门子TC35i的GSM通信模块吧. GSM通信模块主 ...
- GSM Communication on EBox4300--(1)
2008年的最后一个月马上就要到来,今天花了一天的时间,终于初步完成了这学期初上报的微软学生项目,接下来就是写Report了.我觉得作为学生,最重要的就是肯学习.肯交流,学习是自己的事情,只有通过自身 ...
- 基于单片机的车内滞留儿童预警系统设计
word完整版可点击如下下载>>>>>>>> 基于单片机的车内滞留儿童预警系统设计-嵌入式文档类资源-CSDN下载内容包括详细设计文档word版,附带 ...
- 基于单片机的家庭火灾警报系统设计
word完整版可点击如下下载>>>>>>>> 基于单片机的家庭火灾警报系统设计.rar-单片机文档类资源-CSDN下载1.资源内容:毕业设计lun-we ...
- 简述GPS,GSM,GPRS和GNSS的名称区别
GPS GPS(Global Positioning System)全球定位系统.是一个属于美国的卫星导航系统. GPS可以提供车辆定位.防盗.反劫.行驶路线监控及呼叫指挥等功能.要实现以上所有功能必 ...
- GSM技术类有哪些最新发表的毕业论文呢?
一.总体简介 GSM技术的相关文献在1998年到2020年内共计142篇,主要集中在无线电电子学.电信技术.自动化技术.计算机技术.邮电经济 等领域,其中期刊论文90篇.会议论文5篇.专利文献47篇: ...
- Survey Report on CDMA ——Learning Triggered by GSM Hijacking
电子科技大学 格拉斯哥学院 2017级 刘钰玺 无同组同学 1. Introduction Recently, the real experience of a netizen o ...
- GSM模块的调试(一)
概述 此次我使用的GSM是基于SIM900A芯片的通信模块,其功能和800A兼容(800系列是900系列的升级款)可以实现打电话,发短信,和服务器发送指令等功能.接下来将从GSM的工作原理及通过USB ...
- GSM模块_GPRS数据传输机制和原理
GSM模块_GPRS数据传输机制和原理 通信专业术语 GPRS网络结构 GPRS工作原理 GPRS协议模型 GPRS连接过程详解 GPRS的应用--TCPIPPPP GPRS相关AT指令集 GPRS网 ...
最新文章
- JSON字符串通过response下载保存
- springmvc原理详解(手写springmvc)
- C ++ 函数模板求三个数的最大和
- 成功解决在Eclipse中出现的can not find declarration to go to
- 拉普拉斯矩阵(Laplace Matrix)与瑞利熵(Rayleigh quotient)
- python的误差条形图的解释_如何使用python绘制带有误差条的条形图?
- best single model of RSNA
- (转载)windows server 2003的注意事项
- 软件定义汽车带来的困境---如何破局?
- python算法学习代码_python 算法学习部分代码记录篇章1
- 列表生成式、生成器表达式、模块导入
- CSS学习总结(4)——盒模型/背景属性
- 微信小程序—轮播图+背景变化
- Attempt to read from field ‘android.os.VibrationEffect com.android.server.VibratorService$Vibration.
- 记录一次app崩溃信息调试
- 如何在Mac上解决蓝牙问题
- APS系统是什么?APS系统是什么意思?
- C语言-返回数组并输出其值
- 通过图片识别定位拍摄地点——微信小程序
- 【图像加密】 Logistic混沌+Arnold置乱图像加密解密【含Matlab源码 1281期】