|
首页 >
软件产品 > 无线Modem短信控件
无线Modem短信控件
无线Modem短信控件,采用事件驱动,简便易用,是开发短信应用的好帮手。
技术特性:
1、 异步操作方式:设备连接和短信收发均采用异步方式,即容器程序调用连接函数或发送函数等后立即返回。由控件自行完成其余过程,当操作完成后,将执行结果以事件的形式通知容器程序。
2、 短消息直接收发:短消息不通过GSM MODEM或手机的存储卡,使得本控件收发短消息的效率极高。
3、 自动导出存储卡内短消息:连接成功时,将自行检测存储卡内是否有未接受的短消息,有则先行读取卡内信息。
4、 混和字符串:支持发送接受中英文混和方式的字符串。
5、 多线程方式:短消息发送在容器程序的线程空间控制运行,与进程相比占用较少资源;同时由于异步操作+多线程方式使得底层COM I/O通讯在相对独立的线程空间内运行,使得本控件可以更加高效的实现短信收发功能,同时本控件自行检测并监控硬件设备的运行状态。
6、 可靠的故障自动监测恢复机制:当GSM Modem遇到掉电等不可预知的突发事件,或者连接丢失时,控件将自动尝试恢复Modem工作连接状态,这在某种程度上保证设备长时间持续工作。当遇到无法处理的特殊故障时,所有短消息恢复为SIM卡接收保存状态。此功能可以避免因未知原因引起的通讯挂起而中断接受新短消息的问题。
ACTIVEX接口说明:
接口方法:
接口方法一:
| 函数名 |
long ConnectModem(LPCTSTR strComName, long nComRate, long
nFlag); |
| 函数描述 |
连接短信设备。 |
| 参数描述 |
strComName |
串口标识。如:“COM1”、“COM2”等。 |
| nComRate |
连接速率设置,如9600, 115200。 |
| nFlag |
GSM MODEM指示符,用于多MODEM同时工作。本版本不使用,可为任意值。 |
| 返回值 |
-1为打开失败(如,串口被占用或无此串口);1为工作正常。 |
接口方法二:
| 函数名 |
long DisconnectModem(); |
| 函数描述 |
断开与设备的连接。 |
| 参数描述 |
无 |
无。 |
接口方法三:
| 函数名 |
long SendSms(LPCTSTR strPhoneNumber, LPCTSTR strSmsContent, long nlang); |
| 函数描述 |
发送短消息。 |
| 参数描述 |
strPhoneNumber |
短信接收号码 |
| strSmsContent |
短消息内容 |
| nlang |
语言标示,0为英文短消息;1为中文短消息;大于1控件自动判断,可以作为smsIndex指示标志,用于区分短不同消息。 |
| 返回值 |
返回值暂时未用。 |
接口方法四:
| 函数名 |
BOOL IsConnected(); |
| 函数描述 |
取得设备的当前连接状态。 |
| 参数描述 |
无 |
无 |
| 返回值 |
TRUE为连接状态,FALSE为断开状态。 |
接口方法五:
| 函数名 |
void SetSmsServerNumber(BSTR strNumber); |
| 函数描述 |
设置服务中心号码 |
| 参数描述 |
strNumber |
要设置的短信中心号码(并不需要每次启动程序都设置,对新买SIM卡设置一次就行了)。 |
| 返回值 |
无 |
接口方法六:
| 函数名 |
long poweron(); |
| 函数描述 |
打开GSM MODEM设备。 |
| 参数描述 |
无 |
无 |
| 返回值 |
无 |
接口方法七:
| 函数名 |
long poweroff(); |
| 函数描述 |
关闭GSM MODEM设备 |
| 参数描述 |
无 |
无 |
| 返回值 |
无 |
接口方法八:
| 函数名 |
BOOL SetRegSN(LPCTSTR sn) |
| 函数描述 |
设置注册信息。 |
| 参数描述 |
sn |
用户注册码 |
| 返回值 |
TRUE为注册成功,FALSE为失败。用户没有注册将无法使用短消息发送功能。 |
事件:
事件一:
| 事件名 |
ConnectStatus(short nStatus) |
| 事件描述 |
连接手机的返回结果(对应ConnectPhone函数)。 |
| 参数描述 |
nStatus |
1表示连接成功;-1表示连接失败,具体错误察看log纪录。 |
事件二:
| 事件名 |
Recvsms(LPCTSTR strPhoneNumber, LPCTSTR strSmsContent, short nYear, short nMonth, short nDay, short nHour, short nMinute, short
nSecond); |
| 事件描述 |
收到短消息的提示事件。 |
| 参数描述 |
strPhoneNumber |
发送者手机号码。 |
| strSmsContent |
短信内容。 |
| nYear |
短信发送时间----年。 |
| nMonth |
短信发送时间----月。 |
| nDay |
短信发送时间----日。 |
| nHour |
短信发送时间----时。 |
| nMinute |
短信发送时间----分。 |
| nSecond |
短信发送时间----秒。 |
事件三:
| 事件名 |
SendSmsResult(short nResult, long nIndex, LPCTSTR strPhoneNumber, LPCTSTR strSmsContent); |
| 事件描述 |
短信发送的结果(对应SendSms函数)。 |
| 参数描述 |
nResult |
nResult=1表示发送成功,否则失败。 |
| nIndex |
短消息标识号(用户在SendSms函数中设置的nlang)。 |
| strPhoneNumber |
短信的接收号码。 |
| strSmsContent |
短信的内容。 |
事件四:
| 事件名 |
LostConnection(LPCTSTR strError); |
| 事件描述 |
与GSM Modem通讯已经中断,响应DisconnectModem()调用或异常提示。 |
| 参数描述 |
strError |
返回具体错误信息。 |
工作记录:
在应用程序相应目录下,有一个LOG文件,名为“tcpipsms.log”,成功或收发失败的短消息与控件的工作状态均可以在记录内部找到,比如log片段如下:
…
======================================
title: GOT MSG
log time:Wed Jun 30 14:37:05 2004
from:8613800200500
msg:您好,2004/06/30充值成功,余额为120.00元,赠送话费20.00元。
server time:06/30/04 14:32:21 (+0000)
======================================
title: INFO
log time:Wed Jun 30 14:37:56 2004
Connecting modem, Status=1
======================================
…
|