版本说明:
3.73版-修改了纯西文接收时,有时末尾出现@符号的问题。
3.72版-修改了信息状态报告返回的错误。
3.71版-修改了特殊字符的支持、增强了稳定性、修改了信息状态报告返回的错误。
3.70版-添加新函数,增加线程发送模式. fnSetThreadMode
3.69版-修正了fnSetDelayTime函数的调用错误
3.68版-支持最大256个端口,修正了fnWapPushCvt函数的返回错误
3.66版-支持到达报告功能,支持带电换卡功能,修改对某些信息长度判断错误的问题。
3.65版-修改了有些电脑检测不到短信猫的问题
3.63版-添加了两个函数fnSetDelayTime 和 fnWapPushCvt
3.62版-支持64个发送端口
3.61版-支持工业级短信猫,需要将类型设置成单口
3.58版-修改了对8口猫的支持错误, 支持纯西文发送到160个字节.
3.56版-加强了发送信息的稳定性.
3.55版-增加发送PUSH短信的功能,在fnSendMsg函数中添加了发送类型参数,读取返回信息函数也作了响应的修改。
一、 概述
梦网短信猫DLL接口提供API级的函数调用接口,接口完全底层调用,没有任何界面,适合于广大自主品牌的开发用户。函数接口简单,尽需几个简单的函数调用,就可以实现信息的发送和接收功能。调用结构图如下:
用户程序
VC,VB,Delphi,PB,
CBuilder等
DLL接口
MonDem.DLL
梦网短信猫
2口、4口、8口
目前MonDem.DLL只支持Windows平台。
短信猫通过串行口(COM)和计算机相连,或者通过USB虚拟的串行口和计算机相连,我们这里编程都是对串行口进行的,有关串行口的信息可以在计算机系统属性中的设备列表中了解。
本文适合MonDem.DLL 版本3.55。
二、 编程说明
用户使用MonDem.DLL编程的基本流程如下:
a) 加载MonDem.DLL并定位函数,方法要视具体的编程语言而定。
b) 调用fnSetModemType函数,设置相应的短信猫类型
c) 执行初始化函数fnInitModem,可以指定打开某个端口,或者指定端口编号为-1,表示打开所有可能打开的端口。
d) 调用fnSendMsg函数进行信息提交,同样可以指定用某个端口发送,或者-1表示用所有可能的端口进行发送。
e) 以查询方式调用fnReadMsgEx接收信息(可在定时器里调用),本函数也可以指定单独端口或所有端口。本函数可以接收SIM卡接收到的信息,也可以接收由fnSendMsg发送信息的发送结果。具体请看函数说明部分。
f) 退出程序前调用fnCloseModem关闭端口。
注:在发送之前可先用fnGetStatus函数得到端口状态,状态编号大于等于8,表示该端口设备连接正常,可以发送。
三、 函数列表
1. 通讯部分
l 短信猫类型设置
long fnSetModemType(long ComNo,int modemType)
参数: nComNo 0~255 代表COM编号,
modemType 短信猫类型
0 - 1口短信猫,
1 - 2口短信猫,
2 - 4口短信猫,
3 - 8短信猫口
返回: 0 - 成功, -1类型错
XXX -错误代码,参见代码表
l 获取当前短信猫类型设置
long fnGetModemType(long ComNo)
参数: nComNo 0~255 代表COM编号。
返回 :短信猫类型
0 - 1口短信猫,
1 - 2口短信猫,
2 - 4口短信猫,
3 - 8短信猫口
XXX -错误代码,参见代码表
l 初始化函数
long fnInitModem (long nPortNo)
参数: nPortNo 0~255 代表端口号码, -1 表示所有端口
返回: 0 - 成功
XXX -错误代码,参见代码表
l 提交发送函数
long fnSendMsg (long nPortNo, char * szHeader, char * szMsg)
参数: nPortNo 0~255 代表端口号码,-1表示所有可能端口
szHeader 目标手机号码+序列号+已发送次数+发送者ID+发送类型+报告类型 (共六项)
例如: 138123456789,1,0,1388888888,0,1
其中目标手机号码是毕添项目,其他可添可不添
其中手机号码和序列号之间用逗号隔开,序列号由用户自己定义,用于唯一标识这条短信,当MonDem.DLL返回状态时,同时返回该序列号,这样便于用户区分是哪一条短信的返回状态。参见fnReadMsgEx。另外:序列号只是为了用户便于识别返回状态使用的,它不影响发送过程。已发次数代表该条短信已经发送的次数,在返回函数里,该次数将被累加1并返回。
序列号为字符型,最长支持20位。
发送者ID是一个11位的字符串,方便用户记录发送者帐号信息
发送类型:0-普通信息,1-PUSH信息
报告类型: 0-无信息达到报告,1-有信息达到报告
szMsg 发送信息内容(当信息类型是PUSH信息时,填写16进制的字符串,如:C5B894231AE6F8,该字符串的格式内容由用户自己定义。)
(应该在70个字符以内,包含标点符号,1个汉字算1个字符)
例如: 恭喜发财,测试成功! 长度为10
返回: 0~255 –提交成功,返回发送端口号,当用-1发送时返回为0
-1 - 发送缓冲区满
XXX -错误代码,参见代码表
说明:提交成功并不代表发送成功,发送结果信息用fnReadMsgEx来读取
发送缓冲区中最多容纳500条记录,超过500提交失败,函数返回-1
l 查询接收函数
long fnReadMsgEx (long nPortNo,char * szHeader,char * szReadMsg)
参数: nPortNo 0~255 代表端口号码, -1 表示所有端口
szHeader 包含: 信息类型,端口号,接收时间,手机号码,序列号,已发次数,提交端口,发送者ID,发送类型,发送序号十部分
例如:
0,5,2004-05-28 12:30:52,1382523xxxx,001,1,0, 1382523xxxx,0,105
信息类别的说明:
0- 接收信息,
1- 发送成功信息
2- 发送失败
3- 发送超时1
4- 发送超时2
5- 取消发送
6- 信息到达报告
端口号码 5 代表第5个端口
接收时间 2004-05-28 12:30:52
手机号码: 1382523xxxx
序列号:发送结果与提交信息时的序列号相同,接收信息为0
已发次数:提交时传递的已发次数+1
提交端口:仅在非接收信息中有效,代表用户调用fnSendMsg函数时指定的端口号码
发送者ID:与fnSendMsg中的发送者ID对应,方便用户记录管理,当接收信息时,此项与手机号码相同。
发送类型:与fnSendMsg中的发送类型对应
发送序号: 对于发送成功的返回和信息报告有效,1~255
信息报告与发送成功的信息相对应。
比如:发送成功返回 60,那么信息报告也返回60
通过手机号,时间和发送序号来确定发送记录与信
息报告的关系。
szReadMsg 接收信息内容
返回: 0 - 接收成功
-1 - 无信息
XXX -错误代码,参见代码表
注意:接收缓冲区中最多保留500条记录,多余部分将被丢弃,所以请您编程时一定要注意及时读取,以免信息丢失
l 关闭函数
long fnCloseModem (long nPortNo)
参数: nPortNo 0~255 代表端口号码, -1 表示所有端口
返回: 0 - 成功
XXX -错误代码,参见代码表
l 得到软件最大支持端口号
long fnGetPortMax()
返回: 最大支持端口数目(0,1,2,3,4,8 等)
l 取端口状态函数
long fnGetStatus (long nPortNo)
参数: nPortNo 0~255 代表端口号码, -1 表示所有端口
返回: 端口状态,大于等于8表示设备连接正常,可以接收和发送。
状态小于8,表示测试状态。小于等于1,可能连线没有接好或者电源
没有打开,注意复位短信猫。
-1 端口号指定错误或者是端口未打开
l 取发送缓冲区条数
long fnGetSndCount (long nPortNo)
参数: nPortNo 0~255 代表端口号码, -1 表示所有端口
返回:发送缓冲区信息条数。
-1 端口号指定错误
l 取接收缓冲区条数
long fnGetRecCount (long nPortNo)
参数: nPortNo 0~255 代表端口号码, -1 表示所有端口
返回:发送缓冲区信息条数。
-1 端口号指定错误
l 清除发送缓冲区
long fnClrSndBuf (long nPortNo)
参数: nPortNo 0~255 代表端口号码, -1 表示所有端口
返回: 0-成功。
-1 端口号指定错误
l 清除接收缓冲区
long fnClrRecBuf (long nPortNo)
参数: nPortNo 0~255 代表端口号码, -1 表示所有端口
返回: 0-成功。
-1 端口号指定错误
l 设置接收功能
long fnSetReceive (long nType)
参数: nType, 0-关闭接收信息功能,1-开启接收信息功能
返回: 0-成功。
-1错误
注意: 缺省情况下,接收功能是开启的(但是需要软件狗的支持)
另外,关闭接收功能,如果短信卡中存储了太多的短信,而不读取,
可能会影响到信息的发送。所以建立不要使用此关闭功能。
l 取消发送功能
long fnCancelSend (long nCount)
对用fnSendMsg函数提交到发送队列还没有发送出去的信息,可以选择取消发送,取消的信息会保存到接收队列,可以用fnReadMsgEx函数得到,被取消后得到的信息类别为5。
参数: nCount, 想要取消发送的信息条数,取消的顺序是先进先出,但是正在发送的信息不能取消,0-表示取消所有发送队列。
返回: 0-成功。
-1错误
l 设置发送延时功能
long fnSetDelayTime(long PortNo,long DelayTime)
fnSetDelayTime函数用来设置每个端口发送延时, 当某个端口发送完一条信息后,将按照设置的 DelayTime 进行延时,单位是毫秒。
参数:PortNo 端口号码,DelayTime 延时毫秒数。
返回: 0-成功。
-1错误
l 得到WapPush编码
long fnWapPushCvt(char * szTitle,char *szUrl,char * szOutStr)
对指定标题和URL进行编码,生成16进制编码字符串。改结果可以直接被fnSendMsg函数使用作为WapPush信息发送
参数: szTitle 标题信息,szUrl wap网址,
szOutStr 用来接收编码信息 ,调用前请确认为szOutStr准备足够的空间用来接收数据,建议使用500字节以上。
返回: 0-成功。
l 设置启用线程模式
long fnSetThreadMode(long nMode)
fnSetThreadMode函数用来设置DLL启用线程模式执行,不受消息限制的执行,可以适合以服务方式执行的程序的调用。
参数: nMode – 1 开启线程模式
注意:一定在所有的fnInitModem函数调用之前调用这个才有效,否则可能造成程序混乱。
返回: 0-成功。
四、 错误代码表
100: 授权错误(检测软件狗)
101: 授权类型错误(检测软件狗类型)
102: 未初始化,请先初始化
103: DLL文件错误
200: 端口号码错
201: 不支持的端口
202: 信息超长
203: 不能发送空信息
204: 手机号码错
205: 设备错
206: 检测中心错
207: 网络登录错
208: 设置格式错
209: 系统忙
210: 发送超时
5xx: xx号端口不存在或被其他程序占用,
五、 例子程序
我们为该接口提供了VC、VB、PB和Delphi,JAVA的例子,其他程序可参考这些例子自行编制。
作为做短信猫的专业公司:广州梦网公司的短信猫郑重承诺:
1 短信猫的选材是原装进口的模块 (硬件一年包修,三月包换)
2 短信猫硬件设备完全自主开发,公司有自己的研发力量,保证产品的稳定性
3 短信猫开发包,开发技术和软件,开发例子免费提供,让您先做接口,再做接入
4 短信猫产品价格全国最具竞争力,性价比最高
5 提供开发的全程技术支持和售后服务
6 遍及全国销售和服务网络
广州梦网科技有限公司产品简介
短信防伪 SP端口号(移动联通小灵通同一个号码)
短信猫 集团短信网关(短信通道)
低价短信广告 集团短信群发软件
短信群发软件 家校产品
免费提供短信猫VC、C++、VB、DELPHI、PB开、JAVA、ASP,COM组件等二次开发接口说明书有具体的开发例子
广州梦网科技有限公司短信部:
联系人:任卫平 经理
电 话:020-88149720 13794425319
传 真:020-87602099
Q Q:426262473
地 址:广州市环市东路498号广发花园柏丽商务中心12C(动物园南门站)
邮 编:510075