- 浏览: 29376 次
- 性别:
- 来自: 北京
最新评论
wavecom q2403 发送彩信(1)
一、彩信开发动态链接库简介 三、
MMS文件解析
多媒体短信服务
(
MMS
)
,也就是通常所说的彩信,是在短信息服务
(SMS)
和增强短信服务
(
EMS
)
技术基础上进一步发展起来的。典型的彩信是以
MIME
格式编码打包,并通过
WAP
协议进行传递的
(另一种方式使
用
TCP/IP
协议
)
。本动态链接库采用的就是此种方式。
本动态链接库是在
Microsoft Visual Studio 2005下使用
C#语言开发的
DLL类库,
提供简单的开发流程,灵活的开发方式,支持多种彩信文件:
1
、标准MMS格式,文件后缀名“.mms”。此格式包含彩信消息头和消息体,且消息头中应包含发送目标信息,如对方手机号码。如果开发人员有已经打包好的MMS文件,可以调用动态链接库中的函数直接发送。
2
、SMIL文件+独立多媒体文件。开发人员独自编写SMIL文件,可以获得更丰富的彩信表现能力。开发人员只须向发送链表中加入SMIL文件和相应的多媒体文件即可。此程序可以对其自动打包,以生成标准的MMS格式。
3
、独立的多媒体格式。为了提高彩信的兼容性,本程序采用标准封装方式,将独立的多媒体文件打包成MMS格式,以便大多数用户能够收到彩信。目前,本动态链接库支持常用的多媒体文件。
文本文件:txt格式,必须采用UTF-8编码格式;
图片文件:jpg,bmp,gif,png;
声音文件:amr,mid,midi。
二、彩信开发动态链接库详解
1
、彩信开发动态链接库简明案例
采用本动态链接库发送彩信非常简单方便。
⑥ string szReult = ms.Send(mm);
⑧ mm.ClearFile();
第①行代码设置彩信标题,第②行代码设置发送目标号码,③-⑤行代码添加文件,第⑥行代码发送彩信,第⑦行代码清除发送目标,第⑧行代码清除发送文件。
方法一:若发送标准MMS格式彩信,只添加第③行代码即可。
方法二:若发送SMIL文件+独立多媒体文件,可以注释掉第③行,添加第④行和第⑤行。
方法三:若发送独立文件,只须添加第⑤行。
多种情况下的处理工作全部由第⑥行函数完成。
不管是方法二还是方法三,一次可以添加多个独立多媒体文件,只需重复调用
AddFile()函数即可。
注意:采用方法二时,
smil文件必须第一个添加到动态数组中。
本程序没有使用重载的方式编写
Send()函数,是为了增加程序的灵活性。二次开发人员可以任意组合手机号码与彩信内容。
2
、彩信开发动态链接库
本动态链接库名字空间为“
MMSLib”,包含两个类:“
MMSender”和“
MMessage”。
类
MMSender包含四个函数:
MMSender()
构造函数;
void SetMMSC(string)
设置彩信中心网址;
void SetProxy(string)
设置代理服务器网关。
string Send(MMSLib.MMessage)
发送彩信函数;
类
MMessage包含七个函数:
MMessage()
构造函数;
void SetSubject(string)
设置彩信标题;
void AddTo(string)
添加目标手机号码;
void AddFile(string)
添加文件;
void ClearTo()
清除链表中目标手机号码;
void ClearFile()
清除链表中文件;
byte[] GetContent()
打包并获取彩信,
Send()中已封装此函数。
3
、函数详解
类
MMSender主要包含发送彩信的相关方法。
⑴
MMSender()
构造函数
通过如下代码可以创建一个
MMSender对象。
MMSender ms = new MMSender();
⑵
void SetMMSC(string)
设置彩信中心网址
通过如下代码可以设置彩信中心网址,根据不同的
SIM卡采用不同的地址。
ms.SetProxy("10.0.0.172:80");
⑷
string Send(MMSLib.MMessage)
发送彩信函数
在调用
string Send(MMSLib.MMessage)方法之前,应首先创建
MMessage对象,并对其初始化。
Send()方法封装了网络初始化方法,彩信读取方法,网络通讯方法。此方法完成了彩信发送的全过程。
类
MMessage主要包含彩信打包的相关方法。
⑸
MMessage()
构造函数
通过如下代码可以创建一个
MMessage对象。
MMessage mm = new MMessage();
⑹
void SetSubject(string)
设置彩信标题;
通过如下代码可以设置彩信标题。
mm.SetSubject("彩信测试
");
⑺
void AddTo(string)
添加目标手机号码
添加接收号码,调用一次添加一个接收号码。
通过如下代码可以添加目标手机号码
mm.AddTo("131********");
⑻
void AddFile(string)
添加文件
通过如下代码可以添加文件;
mm.AddFile("E:/…/***.***");
⑼
void ClearTo()
清除链表中目标手机号码
通过如下代码可以清除链表中目标手机号码
mm.ClearTo();
⑽
void ClearFile()
清除链表中文件
通过如下代码可以清除链表中文件
mm.ClearFile();
⑾
byte[] GetContent()
打包并获取彩信,
Send()中已封装此函数。
此函数是整个程序的核心部分,读取
lDest和
lFile中的信息,并将其打包成
MMS格式二进制数据。
4
、完整的例子
1
、MMS文件详解
每个
MMS都是由
MMS Header和
MMS Body组成。
如图所示,
MMS文件主要包含两部分:
1、
MMS headers;
2、
Message Body。
为了保证彩信兼容多种手机型号,本文的
Message Body部分采用标准
SMIL2.0语言描述。因此,本文所涉及的
MMS文件可细分为三个部分:
1、
MMS headers。
2、
SMIL2.0语言描述文件。
3、
Message Body中多媒体文件。
如果用户只输入:
mm.AddFile("E:/…/***.mms"); //
发送
MMS格式彩信
则,程序将此彩信直接发送。
如果用户输入如下形式:
mm.AddFile("E:/ …/***.smil"); //
添加
SMIL文件
mm.AddFile("E:/ …/ID-0001.gif"); //
添加多媒体文件
则程序只添加MMS headers部分,其他部分打包实现。
注意:在此种情况下,
smil必须第一个添加到动态数组中。
如果用户只输入多媒体文件:
mm.AddFile("E:/ …/ID-0001.jpg"); //
添加多媒体文件
mm.AddFile("E:/ …/ID-0001.txt"); //
添加多媒体文件
则程序添加
MMS headers部分,并按照固定的方式编写
SMIL文件,同时对多媒体文件打包,以便生成完整的
MMS格式文件。
2
、SMIL语言简介
SMIL是同步多媒体集成语言(
Synchronized Multimedia Integration Language)的缩写
,念做
smile。它是由
3W(World Wide Web Consortium)组织规定的多媒体操纵语言。最新的
SMIL版本是
2001年
8月推出的
SMIL 2.0版本。
SMIL与我们网页上用的
Html(超文本传输语言)的语法格式非常相似。后者主要针对普通的网络媒体文件进行操纵(文字、图片、声音、动画、视频的机械堆砌),而前者则操纵多媒体片断(对多媒体片断的有机的、智能的组合)。
SMIL 2.0版本,参见:
http://www.w3.org/TR/2005/REC-SMIL2-20050107/
。
SMIL 1.0版本,参见:
http://www.w3.org/TR/1998/REC-smil-19980615/
。
3
、简单的SMIL文件
本例子为本程序中内置的
SMIL语言文本。如果开发人员只添加独立的多媒体文件,则本例子中的通用文本会添加到打包文件中去。
<smil xmlns="http://www.w3.org/2001/SMIL20/CR/Language">
<head>
<meta name="title" content="mmsPower" />
<meta name="copyright" content="MMSPC2PHONE" />
<meta name="version" content="0.309" />
<layout>
<root-layout width="176" height="208"/>
<region id="Text" top="0%" left="0%" height="100%" width="100%"/>
<region id="Image" top="0%" left="0%" height="100%" width="100%"/>
</layout>
</head>
<body>
<par dur="10000ms">
<text src="ID-0001.txt" region="Text"/>
</par>
<par dur="10000ms">
<img src="ID-0001. jpg " region="Image"/>
</par>
<par dur="10000ms">
<audio src="ID-0001.mid" repeat="indefinite"/>
</par>
</body>
</smil>
四、创建彩信开发平台
1
、彩信开发平台简述
彩信开发动态链接库属于彩信开发平台的中间层,完整的彩信开发平台还需要彩信猫硬件的支持和
WAP网络连接。
彩信开发平台的创建过程如下:
第一步,确保彩信猫硬件连接正常(略);
第二步,在超级终端下通过
AT指令对彩信猫进行初始化,建立彩信猫对
GPRS、
WAP网关的支持;
第三步,设置拨号网络连接。通过此连接,可以使计算机通过彩信猫访问
WAP网关。
详细步骤参见本章第
2节。
AT指令设置图解详见本章第
3节。超级终端与
AT指令的相关知识参见本文附录。
设置拨号网络连接图解详见本章第
4节。
创建彩信开发平台后,再将本动态链接库引入二次开发系统中,即可建立完整的彩信应用环境。此过程详见本章第
5节。
2
、彩信猫GPRS拨号连接的设置过程
以下过程在后面章节中有详细图解。
一) AT
指令设置部分
(1) AT+CGCLASS=”B”
置为“
B”模式。
(2) AT+CGDCONT=1,”IP”,”CMWAP”
设置
WAP连接。 (改成AT+CGDCONT=1,”IP”,”CMNET”)
(3) AT+CSQ
检查信号
若返回
10—
31,
0之间的信号数字则继续,如果信号是
99,
99,则应该考虑不停的键入
A/命令,不停的让模块去搜寻网络。
(4) AT+CGACT=1,1
激活
,返回
OK则继续。
(5) AT+CGREG?
若返回为
0,
1则可以,若返回
0,
0则不行返回(
1)重来。或者,不停键入
A/,多次执行
AT+CGREG?命令。
(6) AT+IPR=115200;&W
更改模块速率并保存。
二)
设置
MODERN
(1)
控制面板
à
调制解调器
à
常规
à
选择添加
à
不检测调制解调器
à
标准调制解调器类型
à
标准
19200(应该改成33600,妈的搞死了)bps
调制解调器
à
通讯串口
1(建议只使用串口
COM1)
(2)
设置
19200调制解调器
属性
à
调制解调器
à
最高速率(
115200
)
三)
设置拨号网络
(1)
新建连接
à
标准
19200调制解调器
(2)
区号置空
à
电话号码
{GPRS V5.29版本设置为
*99***1#
)
{注意:如果是
GPRS 5.26版本号的话,电话号码改为
*98*1#}
(3)
完成
四)
双击新建的拨号网络,置空用户名和密码,拨号进行,检测用户名和密码,通过之后登陆网络。
3
、通过AT指令对GPRS设备进行初始化
4
、创建拨号网络连接
⑴
设置
MODERN
打开:控制面板
à
调制解调器
à
选择“添加”。
弹出“添加硬件向导”对话框,选择“不检测调制解调器”,单击“下一步”。
COM1)
显示“选择制造商与型号”界面,选择“标准调制解调器类型”,“标准
19200bps
调制解调器”
,单击“下一步”。此过程可能占用较长时间,请耐心等待。
显示“选择调试解调器的端口”界面,点击“
COM1”(由彩信猫所连接的端口号决定),点击“下一步”。
依次出现如下界面:
点击“完成”后,可出现如下界面:
单击“属性”,显示“标准
19200 bps
调制解调器
属性”对话框
选择“调制解调器”属性页,“最大端口速度”设置为“
115200”,单击确定。
至此,
MODERN设置结束。
⑵
设置拨号网络
新建连接
选择“连接到
Internet”,单击“下一步”。
选择“手动设置我的连接”,单击“下一步”。
选择“用拨号调制解调器连接”,单击“下一步”。
输入“
ISP名称”,可以自定义,我在这里设置为“标准
19200调制解调器”。
设置电话号码为“
*99***1#
”。
注意:如果是
GPRS 5.26版本号的话,电话号码改为“
*98*1#
”。
“
Internet帐户信息”的用户名和密码不用设置,单击“下一步”
5
、动态链接库的引用方法
本动态链接库是在
Microsoft Visual Studio 2005下使用
C#语言开发的
DLL类库,所以在此环境下开发彩信发送程序,动态链接库的引用方法非常简单。
如下图所示,在“项目”菜单下选择“添加引用”。
在“添加引用”对话框中,选择“浏览”选项卡,选择本动态链接库“
MMSLib.dll”,单击“确定”按钮,
动态链接库即成功引入用户程序中。
在“解决方案资源管理器”中,在“引用”目录下,即可看到刚才添加的动态链接库的名字空间。
在“对象浏览器”下,可以看到“
MMSLib”的对象信息。
程序需要添加如下代码才可以使用动态链接库中的对象:
using
MMSLib;
下面是一个简单的例子:
通过拨号连接网络,然后再运行此程序,就可以发送彩信了。注意查看
SIM卡是属于哪个运营商的,从而设置不同的彩信中心网址。
五、综述
前面章节详细介绍了彩信开发的各个过程。下面将开发流程再细数一遍,以提供开发人员整体的开发思路。
因为彩信应用系统是软硬件结合的系统,所以,在进行开发之前,开发人员应确保彩信猫设备连接正常。
彩信猫连接计算机后,需要对彩信猫进行初始化,可以在超级终端下通过
AT指令对彩信猫进行检测,并进行
GPRS网络设置,使其支持
GPRS网络连接。超级终端与
AT指令的使用方法详见本文附录。
GPRS网络设置方法详见第四章第
2节和第
3节。
初始化硬件后,需要建立拨号网络连接,详细内容参见第四章第
2节和第
4节。
创建开发平台后,开发人员只需将本动态链接库引用至自己的软件开发环境即可。详细内容参见第四章第
5节。
动态链接库相关内容总结如下:
动态链接库的结构信息,参见第二章第
2节。函数详解,参见第二章第
3节。
动态链接库简明使用例子参见第二章第
1节,完整的使用例子参见第二章第
4节。
两个例子包含了彩信发送过程的相关过程。
本动态链接库支持的彩信文件格式,参见第一章。
MMS打包格式详解,参见第三章。
彩信程序编写完成后,发送彩信的过程如下:
1、通过拨号连接
GPRS网络;
2、运行彩信程序。
附录一、超级终端简介
超级终端是
windows自带的一个串口调试工具,其使用较为简单,被广泛使用在串口设备的初级调试上。
打开超级终端:开始
à
程序
à
附件
à
通讯
à
超级终端。
下面介绍一下一般使用的步骤
:
配置连接需要调试串口基本参数,其操作为:
⑴
选择菜单
“文件
”下
“属性
”菜单项。
⑵
配置调试设备所连接串口
“连接时使用
”
⑶
按
“配置
”按钮进行配置选定串口信息
⑷
依次选定每秒位数(波特率)等参数,一般情况下
MODEM设置波特率后即可,其它位取默认设置。
⑸
确定退出配置
⑹
按工具条上
“呼叫
”按钮连接所调试设备
⑺
输入英文字母
AT然后回车,此时如果设置正确,则会返回英文字母
OK
⑻
如果参数设置不正确,则提示无法连接,或者连接后无法输入
AT字母,此时,请确认步骤
⑵
中串口选择正确、请确认波特率设置正确。
⑼
大部分
GPRS MODEM出厂的时候其波特率已经设置为
115200,但是也可能部分设置为
9600或者其它。在
MODEM支持的范围内,越高的波特率代表了越高的计算机传输数据到
MODEM的能力。
附录二、
AT指令
AT指令是指从终端设备(
Terminal Equipment, TE)或数据终端设备(
Data Terminal Equipment,
DTE)向终端适配器(
Terminal Adapter, TA)或数据电路终端设备(
Data Circuit Terminal Equipment, DCTE)发送,用于控制移动台(
Mobile Station, MS)的功能,以实现与
GSM网络业务进行交互的操作指令。
20世纪
90年代初,
AT指令仅被用于调制解调器操作。当时,为了能够控制
MODEM工作,原著名通信设备生产商
Hayes制定了一套指令,通过通信软件(如超级终端)控制
MODEM的各项操作。这套指令称为“
AT指令”。
由于当时缺少对移动电话文本消息控制的先例,因此人们开发了一种称为“
SMS Block Mode”的协议,通过终端设备或计算机来控制短消息服务。几年后,诺基亚、爱立信、摩托罗拉和惠普等几大主要的移动电话生产厂商又共同研制了一整套用于
GSM业务的
AT指令,并形成
GSM 07.05标准以及在此之后的
GSM 07.07标准。目前,
AT指令已经在手机通信中发挥重要的作用,通过
AT指令能够控制手机执行许多操作,包括呼叫服务、短消息服务、传真、
GPRS等。
(以上内容摘自《
Q2406无线
CPU嵌入式开发技术》,洪利、杜耀宗编著,北京航空航天大学出版社出版)
常用的几个
AT命令
⑴
AT
测试指令,返回
OK表示串口设备正常
⑵
AT+CGMM
显示
MODEM型号
⑶
AT+CGMR
显示
MODEM软件版本号
⑷
AT+CGMI
显示
MODEM生产厂家
⑸
AT+IPR=?/AT+IPR?/ AT+IPR=115200
前者查询
MODEM支持的所有波特率,后者显示当前设定波特率,最后一条是设置
MODEM波特率为
115200。
相关推荐
1.将控件文件smscontrol.ocx和smscontrol.lib 拷贝到WINDOWS系统目录SYSTEM或SYSTEM32下。 2.注册控件:在开“始菜...再点“确定”。... 推荐深圳亿纬公司的原装 wavecom Q2403A 短信猫设备,支持二次开发、性能稳定!
本项目"wavecom.rar_C# wavecom_Q2403A_wavecom"聚焦于利用C#语言实现wavecom公司的短信收发模块功能,主要涉及到以下几个关键知识点: 1. **C#编程基础**:C#是微软公司推出的一种.NET框架下的编程语言,具备丰富...
在本文中,我们将深入探讨如何使用51单片机与Wavecom Q2403A GSM模块进行通信,以及如何编写C语言源码来实现这一功能。Wavecom是一家知名的无线通信解决方案提供商,Q2403A是一款适用于各种嵌入式应用的GSM/GPRS模块...
AT指令是控制WAVECOM Q24 Plus的重要手段,它基于文本命令,用于设置和查询模块状态、建立和维护无线连接、发送和接收数据等。Q24系列的AT指令集包括基本的网络控制指令、电话呼叫指令、数据传输指令等。例如: - `...
《Wavecom Q24设计手册》是一份详细的技术文档,主要涵盖了Wavecom公司Q24系列模块的设计指导和性能规格。Q24系列是Wavecom推出的一款基于GPRS(通用分组无线服务)技术的无线通信模块,适用于各种需要移动通信功能...
这份手册是Wavecom公司专有的硬件技术资料,详细介绍了WISMO Quik Q2403系列产品的规格和功能,旨在为用户提供全面的硬件设计指南。 ### 波科姆GPRS模块概述 WavecomGPRS硬件技术手册提供了关于Q2403A模块的详尽...
Wavecom彩信开发接口是针对Wavecom公司的无线通信模块进行多媒体消息服务(MMS)开发的一种接口。Wavecom是一家提供无线通信解决方案的公司,其产品广泛应用于移动通信、物联网等领域。彩信,全称为“多媒体信息服务...
1. **Wavecom Q2406B 模块**: Wavecom Q2406B是一款基于GSM/GPRS网络的无线通信模块,支持900/1800/1900MHz频段,提供串行接口(如UART)与主控设备进行通信。它具有强大的嵌入式处理能力,内置TCP/IP协议栈,可以...
Wavecom Q2406B 固件 657e版本,包含WIP3.1 AT+WIPCFG=3 WIP Soft v311 on Open AT OS v314 Dec 13 2007 10:56:52 WIPlib:v3a05 WIPSoft:v3a02 OK AT+CGMR 657e09gg.Q2406B 1961548 103107 17:56 OK AT+WOPEN=2 +W...
根据给定文件的信息,我们可以详细地探讨一下WAVECOM Q2687 AT命令的相关知识点。这份文档提供了针对固件版本7.46的AT命令接口指南,它不仅包括了AT命令的详细介绍,还涉及了一些重要的注意事项、安全指导以及责任...
本篇文章将深入探讨Wavecom公司的CDMA模块——Q2438,特别关注其12V供电模块的设计原理,以及相关的电路布局。 Wavecom Q2438是一款集成度极高的CDMA模块,具备强大的数据处理能力和灵活的接口选项。在Protel格式的...
该系统作为车载系统的一部分,使用串口连接WAVECOM的Q2403A模块和ARM处理器S3C2410作为基本硬件平台,裁剪后的Linux系统作为软件平台,以GSM网络作为通信载体,实现汽车状态的自动监测与及时控制。
根据提供的文档信息,我们可以总结出以下关于WAVECOM Q2403 GSM/GPRS模块的相关知识点: ### 一、概述 Q2403产品规格书由WAVECOM公司发布,该文档详细介绍了WISMO Quik Q2403系列模块的功能特性及相关技术规格。该...
本文档旨在介绍WAVECOM公司的模块开发板,特别是针对Q2403/Q2406/Q2358/Q2438/Piml等型号模块的开发板。该开发板提供了硬件开发和评估的平台,使得用户能够在不制作PCB板的情况下快速上手,并进行一系列的功能测试与...
《WAVECOM Q2406模块:GPRS通信技术详解》 在现代通信领域,GPRS(General Packet Radio Service)是一种广泛应用于移动设备的数据通信技术,它为用户提供了一种高效、灵活的数据传输方式。本资料压缩包"**WAVECOM_...
《GPRS模块开发指南——基于Wavecom Q26 Wismo228》 在无线通信领域,GPRS(General Packet Radio Service)模块是实现数据传输的关键组件,尤其在物联网应用中发挥着重要作用。Wavecom Q26 Wismo228是一款广泛使用...