📄 gprs.h
字号:
// GPRS.h : main header file for the GPRS application
//
#if !defined(AFX_GPRS_H__B92CFA9C_B6A6_4777_8729_89EA31D0E9A0__INCLUDED_)
#define AFX_GPRS_H__B92CFA9C_B6A6_4777_8729_89EA31D0E9A0__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
/*! \mainpage GPRS模块演示程序
\brief 基于Windows CE的GPRS模块演示程序
\version 1.0
\author 陈华毅
\n通过与法国WAVECOM的Q2403A模块通讯,演示了基于Q2403A的GPRS模块的打电话(含挂机),接听电话(含挂机),发送短消息,接收短消息等功能。
\image html images\Demo.BMP
\section GPRSUSERDOC 使用说明
\li\ref DemoIntro
\li\ref DemoCall
\li\ref DemoRecCall
\li\ref DemoSend
\li\ref DemoRecMsg
\li\ref ERROR
\section GPRSREF GPRS相关知识
\li\ref GPRSINTRO
\li\ref GROUP
\li\ref CIRCUIT_SWITCHING
\li\ref GPRSMODEM
\section GPRS_AT AT命令
\li\ref AT
\section GPRS_CODE 编码方式
\li\ref Codeing
\section Design 详细设计
\li\ref COMPDESING
// \section implement 实现说明
\li\ref CSERIAL_IMPLEMENT
\li\ref GPRSER_IMPLEMENT
\li\ref GPRSDLG_IMPLEMENT
*/
/*! \defgroup DemoIntro 基本介绍
\n 基本介绍:
\n 号码编辑框:用于编辑拨号或发送短消息的号码。
\n 消息显示\编辑框:用于显示接收到的新消息或编辑要发送的短消息内容。
\n 字符按键区域:按此类的按键就会在相应的编辑框显示键上的字符。
\n 清除按键1:把号码编辑框最后一个字符清除。
\n 拨号\挂机按键:拨打电话或挂断电话。
\n 短消息发送按键:发送短消息。
\n 清除按键2:把消息显示\编辑框最后一个字符清除。
\n 清空按键:把消息显示\编辑框所有字符清空。
\n 状态提示区:用于提示GPRS模块当前所于状态。
\n 如下图所示
\n
\image html images\Demo.JPG
\n
*/
/*! \defgroup DemoCall 打电话
\n 拨号:在号码编辑框输入电话号码,按拨号按键(之后此按键内容变为"挂机"),状态提示区显示"打电话!"。
\n 如下图所示:
\n
\image html images\Call.BMP
\n
\n 挂机:在通话状态中,按挂机按键(之后此按键内容变为"拨号"),状态提示区显示"通话结束!"。如下
图所示:
\image html images\Hang.BMP
\n
*/
/*! \defgroup DemoRecCall 接听电话
\n 当有来电时,在状态提示区显示"有来电!",并弹出一个对话框"有来电!按"是"接听,按"否"拒接!",如
下图所示:
\image html images\InCall.BMP
\n 接听来电:在弹出的对话框,按"是"接听来电,状态提示区显示"通话中!"。如下图所示:
\image html images\RevCall.BMP
\n 拒接来电:在弹出的对话框,按"否"拒接来电,状态提示区显示"通话结束!"。如下图所示:
\image html images\RejCall.BMP
\n
*/
/*! \defgroup DemoSend 发送短消息
\n 在号码编辑框输入要发送的手机号,消息显示\编辑框输入消息内容,按发送按键发送短消息,发送成功
则在状态提示区显示"发送成功!"。如下图所示:
\image html images\SendMsg.BMP
\n
*/
/*! \defgroup DemoRecMsg 接收短消息
\n 当有新消息时,在状态提示区显示"有新短消息!",并弹出一个对话框"有新短消息!按"是"读取,
按"否"返回!",如下图所示
\image html images\InMsg.BMP
\n读取短消息:在弹出的对话框,按"是"读取新短消息,则短消息相关信息(对方号码、对方发送时间、消息
内容)在消息显示\编辑框显示,状态提示区显示"读取短消息成功!"。如下图所示:
\image html images\ReadMsg.BMP
\n 放弃读取短消息:在弹出的对话框,按"否"放弃读取新短消息,状态提示区显示"有新短消息末读!"。如下
图所示:
\image html images\UnReadMsg.BMP
\n
*/
/*! \defgroup ERROR 出错说明
\n 号码出错:当输入的电话号码不足11位,按发送按键发送短消息时,会弹出一个出错对话框"请输入正确
的号码",如下图所示:
\image html images\NumErr.BMP
\n 解决方法:按OK,在号码编辑框输入正确号码。
\n 内容为空:本程序不希望可以发送空消息,故在发送时会检查消息内容是否为空。当消息内容为空,按发
送按键发送短消息时,会弹出一个出错对话框"请输入消息内容",如下图所示:
\image html images\ConNullErr.BMP
\n 解决方法:按OK,在消息显示\编辑框输入消息内容
\n 内容过长:本程序一次最多只能发送70个字符,故在发送时会检查消息内容是否过长。当消息内容大于70
字符,按发送按键发送短消息时,会弹出一个出错对话框"消息内容太长,无法发送!",如下图所示:
\image html images\ConLongErr.BMP
\n 解决方法:按OK,在消息显示\编辑框修改消息内容。
\n SIM卡短消息服务中心号码出错:本程序用PDU编码发送短消息,故需要短消息服务中心号码,若从SIM卡
的短消息服务中心号码有误,按发送按键时就会弹出一个出错对话框"提取短消息中心号码失败!请重新设
置短消息中心号码!"。如下图所示:
\image html images\SIMErr.BMP
\n 解决方法:按OK,在消息显示\编辑框修改消息内容。
*/
/*! \defgroup GPRSINTRO 通用分组无线业务
\n 通用分组无线业务(General Packet Radio Service)简称 GPRS,是在 GSM 基础上,采用基于分组交换
传输数据的高效率方式,在空中接口和外部网络间进行分组数据业务传输,提高了对频率资源和网络传输资
源的利用率,比 GSM 网有明显的优势;传输速率高,适合对传输速率敏感的移动多媒体;同时分组交换接
入时间短,大幅度提高远程监控的效率。通用分组无线业务使得用户能够在端到端分组传送模式下发送和接
收数据。由于无线资源采用动态分配,一个用户可分配多个时隙,一个时隙也可由多个 MS共享,用户虽然
与网络一直连接,但仅有当数据传送时才占用无线信道资源。与原有的电路型业务相比较,用户使用 GPRS
业务将会建立链接时间更短、数据传输速率更高、费用更低。GPRS可实现与外部IP网络的透明与非透明的连
接,支持特定的点对点和点对多点服务,以实现一些特殊应用如远程信息处理。GPRS也允许 SMS(Short
Message Service,短信息业务)经 GPRS 无线信道传输;以灵活的方式与 GSM 语音业务共享无线与网络资
源,采用了灵活的策略,实现数据与语音业务共存;GPRS 网络适于突发性数据的有效传送,
\n 它支持四种不同的服务质量级别。一般 GPRS能在0.5~1s之内恢复数据的重新传输;GPRS 的资源利用率
高,它引入了分组交换的传输模式,使得原来采用电路交换模式的GSM 传输数据方式发生了根本性的变化,
这在无线资源稀缺的情况下显得尤电路交换模式来说,在整个连接期间内,用户无论是否传送数据,都将独
自占有无线信道。而对于分组交换模式,用户只有在发送或接收数据期间才占有资源,这意味着多个用户可
高效率地共享同一无线信道,从而提高了资源的利用率。 虽然 GPRS具有上面的优点,但它现在也存在着一
些不足之处: 实际传输速率比理论值低,由于分组交换连接比电路交换质量要差一些,因此使用GPRS 会发
生一些数据包丢失现象。存在转接时延,通信 GPRS 分组通过不同的方向发送数据,最终达到相同的目的地,
那么数据在通过无线链路传输的过程中就可能发生一个或几个分组丢失或出错的情况。降低话音服务质量,
由 GPRS 引入的新增干扰,一定程度上导致话音质量下降、切换掉话率提高,进而导致原有话音服务面积缩
小。
*/
/*! \defgroup GROUP 分组交换
\n 分组交换是一种存贮转发的交换方式。它是将需要传送的信息以分组为单位进行存储转发。每个分组信息
都加载了接收地址和发送地址的标识,在传送数据分组之前,要先建立虚电路(即在数据网络中能模拟实际连接
功能在数据站之间传送数据的设施),然后按次序传送。
\n 用户终端发送的信息,经交换机划分为分组后,先存储在分组交换机的存储器内,以动态复用的方式,通过一
条高速传输线路进行传输,从而提高了传输线路的利用率。
\n 分组交换的优点是:传输质量高,可靠性高,为不同种类的终端相互提供方便,能在一条线路上同时和多个用
户终端进行通信,简化交换处理、因而经济性能好,此外,分组交换能与公用电话网、用户电报网及其他专用网
互连也是分组交换网的优点。
*/
/*! \defgroup CIRCUIT_SWITCHING 电路交换(Circuit Switching)
\n 电路交换是指按照需求建立连接并允许专用这些连接直至它们被释放这样一个过程。电路交换网络包含一
条物理路径,并支持网络连接过程中两个终点间的单连接方式。传统的语音电话服务通过公共交换电话网
PSTN(而不是 IP 语音)实现电路交换过程。电话公司在用户呼叫期间为用户呼叫号码设定一条特定的物理
路径,该路径专用于两终点双方间的连接。
*/
/*! \defgroup GPRSMODEM GPRS模块
\n GPRS模块一般是指带有GPRS功能的GSM模块。其中比较流行的有法国Wave 公司的WISMO系列和西门子公司的
S 系列等等。WAVECOM的WISCOM模块接口简单、使用方便且功能非常强大。本实验选用的是WAVECOM的Q2403A模
块,其外观如下图所示
\image html images\Q2403A.JPG
\n 产品特征:双频 GSM/GPRS模块,执行 ETSI GSM Phase ETSI 2+标准类别 4(2w @ 900MHZ),类别 1(1W @1800/1900MHZ),外部 3V/5V SIM,双音多频功能(DTMF),A5/1&A5/5加密算法。
\n 供电:3.6VDC1A,通信中平均 300MA,空闲时 3.5MA。
\n 外部尺寸:58*332*6 mm。
\n 重量:20g(包括屏蔽的)。
\n 数据特征:Q2403A(支持 CLASS2),下载 26.8bits/s,上传13.4kbits/s;Q2403A(支持 CLASS4),下载 53.68bits/s,上传 26.8kbits/s.数据线路异步传输合同步可达 14,400kbits/s,自动传真 group3(class1&2),通话和传真转换,Irda 1.2A协议,GPRS WAP。
\n 短消息服务:点对点的 MT&MO,端消息区域广播,恢复呼叫信息,附加服务,呼叫转移,多方通话,呼叫限制,电话薄,固定号码呼叫,呼叫等待或保持,呼叫线路认证,计费,红外线 SIM 数据传输,回声取消,SIM 工具包,SIM 锁。
\n 接口:单一天线接口(for900/1800),SIM3V/5V和 SIM 检测,实时时钟,为手持设备设计,I/O接口,4位平行接口,I2C bus,2 个麦克风输入和 2 个耳机输出。
\n 模块接口:数据操作,RS232C 串口线,通过 AT指令控制,波特率从 300 到115,200bits/s(默认 115200bps),自动速率从 2,400 到19,200bits/s。
*/
/*! \defgroup AT AT命令集
\n GPRS模块是通过 AT 命令来控制的,AT 命令是通用的标准,其特点是命令多以 AT
开头,下面是 AT 命令列表,我们熟悉的手机功能实际上都是通过 AT 命令实现的。
\n 更详细见:http://www.quantum.com.hk/mdm_htm/manuals/cat.htm
\n 一、一般命令
\n 1、 AT+CGMI 给出模块厂商的标识。
\n 2、 AT+CGMM 获得模块标识。这个命令用来得到支持的频带(GSM 900,DCS 1800 或PCS 1900)。当模块有多频带时,回应可能是不同频带的结合。
\n 3、 AT+CGMR 获得改订的软件版本。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -