原创 爱特生彩信开发控件(OCX)

2008-2-25 12:01 1989 1 1 分类: 通信

爱特生彩信开发控件(OCX)——产品简介


    爱特生彩信开发控件,是Windows系统的标准OCX控件,支持标准工业GPRS Modem。无需接入互联网即可实现发送彩信(移动彩信、联通彩信)、接收彩信(移动彩信、联通彩信)、发送短信、接收短信、发送WAP Push消息、发送彩E等功能,实时返回信息接收报告,同时还包含彩信制作、接收彩信解析、彩信文件播放等功能。本彩信控件支持100K以下的彩信收发,彩信文件编辑可以采用ini文件、SMIL文件等。本彩信控件采用特殊技术,对超长短信分割发送,手机收到后能自动合并为一条短信。


    爱特生短信彩信开发控件,使用特有的内嵌拨号技术,使在收发彩信时不需要在操作系统中建立拨号连接,从而避免了使用时与电脑上的其他网络软件发生冲突的可能性,因此大大提高了开发系统的环境独立性和可靠性。目前国内外同类软件因没有解决此问题,软件运行稳定性和可靠性均较差。


    利用爱特生彩信控件开发短信彩信的应用软件,您无需了解复杂的GSM/GPRS/WAP等通信协议,只需简单调用接口函数和接口事件,即可让应用软件快速集成彩信短信收发功能。适用于主流开发语言(VB、VC、Delphi、C++Builder、c#等),提供了多种开发语言的示例源代码。


    利用爱特生彩信控件升级应用系统的彩信功能,具有实施低成本的特点。只需要用一套GPRS Modem与电脑相连,就可以使用本控件来收发彩信短信,使用简单,维护较少。


    利用爱特生彩信控件,您可以简单快捷地进行二次开发,可广泛应用在企业MIS系统、电台节目互动、调度通知系统、ERP应用、OA办公网络、客户服务中心等应用系统中,将彩信短信服务与不同行业度身定制的信息管理系统相结合,根据不同客户、不同需求,高效提供更多个性化的服务、产品和信息。


    注:为了方便用户快速使用彩信二次开发功能,我们也有提供数据库开发接口的爱特生短信彩信开发平台。如需了解爱特生短信彩信开发平台的相关资料,请访问http://www.edi-son.com/MMSproductSDK.htm


爱特生彩信开发控件(OCX)——运行环境


一、软件环境


  Windows 操作系统:Windows 98/Me或Windows NT4.0/2000/XP/2003。


二、硬件环境


  建议配置:


   CPU:PIII 500 MHz 以上
   内存:512 MB以上
   显卡:标准 VGA,24 位真彩色
   其它:键盘、鼠标    


三、语言支持


  支持简体中文。


四、配套设备


  短信设备/彩信设备:GPRS Modem,俗称“彩信猫”。
  稳定可靠的彩信设备(彩信猫)是使用彩信控件的先决条件,稳定性差的彩信设备将严重影响彩信的收发速度和成功率。
  了解更多的彩信设备资料,请参阅:
http://www.edi-son.com/gsmgprsmodem.htm


爱特生彩信开发控件(OCX)——产品特点


  1、提供一系列控制函数库,用户通过在自行开发的软件中调用这些函数,就可实现短信、彩信的收发功能。适用于主流开发平台(VB、VC、Delphi等),帮助您的应用系统快速集成短信、彩信功能。


  2、基于此平台可快速开发网络短信、彩信的应用,您无需了解复杂的GSM/GPRS通信控制协议,只需简单调用标准的 OCX控件,即可让系统快速集成短信及彩信功能。


  3、点对点方式发送短信彩信,无需上网即可群发彩信、接收彩信、群发短信、接收短信、发送联通彩e、发送wap push消息等。


  4、低成本实施,采用GSM/GPRS Modem接入普通电脑,配合本套软件即可建立起短信彩信平台。使用和维护简单方便,有效保障企业利益。



四、爱特生彩信开发控件(OCX)——控件接口



  彩信控件接口包括了调用函数接口和控件事件接口两部分,事件信息传递可以是事件驱动模式也可以是手工查询方式,用户可以根据自己的编程习惯进行选择。


  彩信控件接口参数请参见: 《爱特生短信彩信开发控件开发说明书》


 


爱特生彩信开发控件(OCX)——调用示例


一、典型调用方式
    程序启动时初始化模块,设置控件为事件驱动模式;
    连接彩信设备;
    通过接口函数来发送短信彩信,利用控件事件来接收短信、彩信、发送报告、设备状态改变等;
    程序退出时,断开设备连接。
    注:如果本彩信控件采用非事件驱动模式,通常需要建立一个新线程来管理控件操作,相对要困难些,建议本彩信控件采用事件驱动模式。


二、调用示例
    约定:假设容器程序中添加的彩信控件名称为m_ctrlMMSOcx。


2.1初始化彩信模块


2.1.1初始化函数
int nRes="m"_ctrlMMSOcx.InitModel("C:\\RecvMMS",7,1,101,1);
if(nRes>0)
    MessageBox("初始化彩信控件成功,已经找到加密狗。");
else if(nRes==0)
    MessageBox("初始化彩信控件失败!\r\n未找到软件加密狗。");
else if(nRes==-4)
    MessageBox("初始化彩信控件失败!\r\n不支持的加密狗类型参数。");
说明:
    1、参数1指的是彩信工作路径,控件会在该创建彩信接收目录等。
    2、参数2指的是彩信使用模型,7表示要求彩信控件支持彩信短信的收发功能(1+2+4=7)。
    3、参数3指的是彩信控件使用事件驱动模式工作。
    4、参数4指的是彩信控件使用加密狗类型,此值固定为101(设备连接串口固定为com1)。
    5、参数5指的是指收到彩信后要创建新的彩信接收文件目录,因为一个彩信里面通常包括了多个多媒体信息文件,所以建议创建一个新的目录来存储这些文件。
    6、函数返回值的说明参见上面的代码中的提示信息。


2.2连接设备


2.2.1连接彩信设备函数
int nRes="m"_ctrlMMSOcx.ConnectModem("com1");
if(nRes==1)
    MessageBox("正在启动连接设备过程。请稍候。");
else if(nRes==-1)
    MessageBox("未成功初始化模块,请先进行控件初始化。");
说明:
    1、参数1指的是彩信设备连接的com口名称。需要注意的是我们假设了彩信设备的连接波特率为115200,如果你的设备不是115200,请通过AT指令将你的彩信设备连接速率设为115200。注意:使用101类型加密狗时连接的com口名称固定为“com1”。
    2、回值的说明参见上面的代码中的提示信息。
    3、因为彩信控件设为事件驱动方式工作,而彩信设备的检测和连接有个等待过程(约30秒钟),所以此函数的返回并没有说明设备是否连接成功,需要一个报告事件来告诉容器程序连接是否成功,此事件就是:ModemStatusChanged。


2.2.2彩信设备状态变化事件
Void ModemStatusChanged (long ModemStatus)
{
    if(ModemStatus==1)
    MessageBox("连接彩信设备成功!");
else if(ModemStatus==-1)
    MessageBox("连接彩信设备失败!");
else if(ModemStatus==0)
    MessageBox("正在连接彩信设备!");
}
说明:
    只要彩信设备的连接状态发生变化,控件都会发出此事件信息。需要了解一点的就是,收发短信和收发彩信的状态转换也会产生此事件,所以此事件不仅仅在连接彩信设备时才产生。


2.3收发彩信短信


2.3.1发送文字短信
int nRes="m"_ctrlMMSOcx.SendSMS(“1398080xxxx”,”您好,爱特生彩信控件文字短信测试消息。”,1);
if(nRes==1)
    MessageBox("提交短信成功!短信已加入服务器的发送列表等待发送。");
else if(nRes==-1)
    MessageBox("提交短信失败!尚未连接到短信彩信设备。");
else if(nRes==-2)
    MessageBox("提交短信失败!当前使用模式不支持收发短信。");
else if(nRes==-3)
    MessageBox("提交短信失败!未成功初始化模块,请先进行控件初始化。");
说明:
    1、参数1指的是短信的接收号码(如果需要短信送达报告,则要在发送号码后加一个#号,例如“1398080xxxx#”)。
    2、参数2指的是要发送的短信内容。
    3、参数3指的是短信发送序号(用于事件返回时区分是那条消息)。
    4、文字短信的发送结果可以通过事件SendSMSStatus获知;如果是有状态报告请求的消息,可以通过事件SMSRecvReport获知。


2.3.2发送彩信
int nRes="m"_ctrlMMSOcx.SendMMS(“1398080xxxx, 135989811xx”,”姚明精彩爆扣”,”c:\姚明.jpg”,1);
if(nRes==1)
    MessageBox("提交彩信成功!彩信已加入服务器的发送列表等待发送。");
else if(nRes==-1)
    MessageBox("提交彩信失败!尚未连接到短信彩信设备。");
else if(nRes==-2)
    MessageBox("提交彩信失败!当前使用模式不支持收发短信。");
else if(nRes==-3)
    MessageBox("提交彩信失败!未成功初始化模块,请先进行彩信控件初始化。");
else if(nRes==-4)
    MessageBox("提交彩信失败!彩信信息文件不存在(或为空)。");
else if(nRes==-5)
    MessageBox("提交彩信失败!彩信信息文件格式不正确。");
说明:
    1、参数1指的是彩信的接收号码(允许一次填写10个以下号码,号码间以西文逗号分割,软件能够一次性批量提交所列号码的彩信)。
    2、参数2指的是要发送彩信的标题。
    3、参数3指的是彩信的资源文件。关于资源文件的类型和说明,请参见《爱特生短信彩信控件开发说明书.doc》文档,该文档有非常详细的关于这方面的描述。
    4、参数4指的是彩信发送序号(用于事件返回时区分是那条消息)。
    5、彩信的发送结果可以通过事件SendMMSStatus获知;送达对方手机后的通知,可以通过事件MMSRecvReport获知。


2.3.3接收短信事件
Void RecvSMS(LPCTSTR PhoneNumber, LPCTSTR SMSContent)
{
    CString strNoticeText;
    strNoticeText.Format("收到短信: %s,%s",PhoneNumber,SMSContent);
    MessageBox(strNoticeText);
}
说明:
    1、参数1为发送者的手机号码。
    2、参数2为接收到的短信内容。


2.3.4接收彩信事件
Void RecvMMS (LPCTSTR PhoneNumber, LPCTSTR MMSTitle, LPCTSTR RecvMMSFileDir, LPCTSTR RecvFile1, LPCTSTR RecvFile2, LPCTSTR RecvFile3, LPCTSTR RecvFile4, LPCTSTR RecvFile5)
{
    CString strNoticeText;
    strNoticeText.Format("收到彩信!发送号码为:%s标题为:%s内容为: %s %s %s %s %s",
    PhoneNumber,MMSTitle,RecvFile1,RecvFile2,RecvFile3,RecvFile4,RecvFile5);
MessageBox(strNoticeText);}
说明:
    1、参数1为发送者手机号码。
    2、参数2为彩信标题。
    3、参数3为接收到的彩信资源文件保存目录。
    4、参数4-9为彩信资源文件名(列出彩信中包含的前五个彩信资源文件,主要是方便容器程序调用)。


2.3.5短信发送完毕事件
void SendSMSStatus(long SMSIndex, long SMSStatus)
{
    CString strNoticeText;
    if(SMSStatus==1)
        strNoticeText.Format("发送消息号为%d的短信已经成功发送!",SMSIndex);
    else
        strNoticeText.Format("发送消息号为%d的短信发送失败!",SMSIndex);
        MessageBox(strNoticeText);
}
说明:
    1、参数1为短信序号(在发送短信函数中设定的)。
    2、参数2为短信发送情况,1为成功送达运营商短信中心,其余值为发送失败。


2.3.6彩信发送完毕事件
void SendMMSStatus(long MMSIndex, long MMSStatus)
{
    CString strNoticeText;
    if(MMSStatus==1)
        strNoticeText.Format("发送消息号为%d的彩信已经成功发送!",MMSIndex);
    else
        strNoticeText.Format("发送消息号为%d的彩信发送失败!",MMSIndex);
    MessageBox(strNoticeText);
}
说明:
    1、参数1为彩信序号(在发送彩信函数中设定的)。
    2、参数2为彩信发送情况,1为成功送达运营商彩信中心,其余值为发送失败。


2.3.7短信已送达对方事件
void SMSRecvReport(LPCTSTR PhoneNumber, long SMSStatus)
{
    if(SMSStatus ==1)
    {
        CString strNoticeText;
        strNoticeText.Format("短信送达报告!给%s手机发送的短信,手机已经收到该短信!", PhoneNumber);
        MessageBox(strNoticeText);
    }
}
说明:
    1、参数1为接收方手机号码。
    2、参数2为短信送达状态,1为成功送达,其余值为送达失败。
    注:由于受运营商系统影响的原因,此状态事件不稳定,部分时间收不到此事件。


2.3.8彩信已送达对方事件
void MMSRecvReport(long MMSIndex, long MMSStatus)
{
    CString strNoticeText;
    if(MMSStatus==1)
        strNoticeText.Format("彩信送达报告!\r\n发送编号为%d的彩信,手机已经收到!",MMSIndex);
    else
        strNoticeText.Format("彩信送达报告!\r\n发送编号为%d的彩信,被接收方拒收!",MMSIndex);
    MessageBox(strNoticeText);
}
说明:
    1、参数1为接收方手机号码。
    2、参数2为彩信送达状态,1为成功送达,其余值为送达失败。
    注:由于受运营商系统影响的原因,此状态事件不稳定,部分时间收不到此事件。


2.3.8设备振铃事件
void FireRing(LPCTSTR PhoneNumber)
{
    CString strNoticeText;
    strNoticeText.Format("有人打电话到彩信猫内的卡上,源号码为%s!",PhoneNumber);
    MessageBox(strNoticeText);
}
说明:
    1、参数1为拨打电话的源号码。


2.4状态信息查询


2.4.1查询彩信设备的信号强弱
int nSignal="m"_ctrlMMSOcx. GetSignalStrength();
说明:
    信号强度值的范围是0到100,值越大表示信号越强;如果返回值小于0,表示控件尚未连接到彩信设备。


2.4.2查询彩信设备连接状态
int nModemStatus="m"_ctrlMMSOcx.GetModemStatus();
if(nModemStatus==1)
    MessageBox ("连接状态");
else if(nModemStatus==-1)
    MessageBox ("断开状态");
else
    MessageBox ("连接中");
说明:
    此函数用于查询当前彩信设备的连接状态,0为查找中,1为已找到,-1为未找到。


2.4.3查询彩信设备运行信息
CString strRunInfo="m"_ctrlMMSOcx.GetRunInfo();
    MessageBox (strRunInfo );
说明:
    设备连接过程、彩信收发过程和进度、状态消息等均可以从此函数中获得。此函数可用于显示当前彩信设备的状态和做某项操作的进度信息。


2.4.4查询彩信控件中待发送彩信数目
int nWaittoSendMMSCount="m"_ctrlMMSOcx. GetSendMMSTaskCount();


2.4.5查询彩信控件中待发送短信数目
int nWaittoSendSMSCount="m"_ctrlMMSOcx. GetSendSMSTaskCount();


2.4.6查询彩信控件中待接收彩信数目
int nWaittoRecvMMSCount="m"_ctrlMMSOcx. GetRecvMMSTaskCount();


2.5断开彩信设备连接


2.5.1断开连接彩信设备函数
m_ctrlMMSOcx.DisConnectModem();
    MessageBox("已经断开彩信设备连接。");
说明:
    不需要参数,要断开彩信设备时调用一下此函数即可。



爱特生彩信开发控件(OCX) ——资料下载


 

详细说明请查看: 《爱特生短信彩信开发控件开发说明书》
下载爱特生彩信控件完整开发包: EtesnMMSOcx.rar
下载爱特生彩信控件VC示例代码: MMSVCDemo.rar
下载爱特生彩信控件VB示例代码: MMSVBDemo.rar
下载爱特生彩信控件VB.net示例代码: MMSVBnetDemo.rar

文章评论0条评论)

登录后参与讨论
我要评论
0
1
关闭 站长推荐上一条 /2 下一条