我曾经开发的某项目需要使用短信猫模块,要求使用C#编程操作。能独立使用的动态链接库之一就是网上流传的sms.dll,但它的功能较少,不能满足需求,鉴于一时找不到合适的完整代码,我深入研究了短信协议,借鉴了很多代码,开发了“C#短信猫操作类”,使用AT指令操作短信猫,达到完全自主可控、灵活使用的目的。代码已在多个生产环境使用,工作稳定高效。现将短信猫开发使用经验略作总结,供大家交流借鉴。

一、硬件选择

1、市场上的短信猫有GSM短信猫、CDMA短信猫等。用户可根据当地运营商情况选择信号较好,通信较稳定的一种。我研究的是GSM短信猫,没有研究过CDMA短信猫(我的一位朋友使用VB开发了CDMA短信猫程序,也用在了生产环境,工作稳定)。

2、GSM短信猫的生产厂家众多,产品质量参差不齐,产品价格从一百多到好几百都有。

3、GSM短信猫核心模块一般采用德国西门子和法国WAVECOM芯片居多,也有黑模块(可能导致通信不稳定)。在短信猫读取出来的机器码有:Cinterion, SIEMENS, WAVECOM等。

注:本人购买的某款短信猫,机器码为“wavec0m”,注意其中是数字“0”,而不是字母“o”,不知是不是黑模块哈。其中机器码为“Cinterion”的是西门子GSM/GPRS双模模块(MC35i),本人最后使用的就是这个,工作稳定。

4、短信猫工作稳定与否,收发短信成功率高不高,不仅取决于使用的是否是正品模块,还取决于短信猫外围电路的设计是否精良,如采用单片机控制,有看门狗电 路,外壳设计防电磁干扰等。一般来说100多元的产品质量较差,质量好的至少要在300元以上,当然也有更贵的,取决于用户需求。

5、短信猫有串口和USB口之分,其中USB口也是虚拟成串口使用。理论上串口短信猫工作更稳定,但需外接电源,而USB口可直接供电。

6、短信猫池。每个短信猫模块对应一个虚拟串口,与单口短信猫操作完全一样。

二、软件开发

我在网上搜索了很多关于C#操作短信猫的文章、代码,都不能较完整地解决我的需求。于是我购买了3种短信猫进行测试,潜心学习短信协议,花费不少短信费进 行调试,最终确定了一款工作稳定的短信猫,并开发出了稳定版本的C#短信猫软件,已在某项目中稳定运行了一年多,并已在几位网友的不同项目中正常使用。

三、参考资料

1、由王新全整理翻译的 《 SMS with the SMS PDU-mode》

2、豆丁网上的《PDU格式短信》,链接地址:http://www.docin.com/p-101990311.html

3、《WAVECOM 产品常用操作和AT 指令》

4、《PDU编码协议简单说明》

5、博客园“给我一杯酒”的博客《短信猫软件的实现(C#)》

PS:

要做好一个稳定的软件模块很不容易,尤其是操作硬件的软件,需要了解很多串口通信方面的知识。

当图便宜买到不稳定的短信猫或短信猫软件时,就明白了:一分钱一分货,也要防价格虚高。

C# 短信猫(SMS cat) 操作源码开发经验的更多相关文章

  1. wavecom短信猫常用AT命令

    wavecom短信猫常用AT命令 一.一般命令 1. AT+CGMI 给出模块厂商的标识. 2. AT+CGMM 获得模块标识.这个命令用来得到支持的频带 (GSM 900,DCS 1800 或PCS ...

  2. zabbix使用短信猫实现报警

    因为公司运维的对象是政府单位,所以在实际的监控过程中无法连接到外网,所以最后报警选择的媒介是短信猫,下边就是具体的实施过程. 一.面临的问题 因为手头上的设备是串口的短信猫,但是zabbix serv ...

  3. 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案

    方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...

  4. 基于Socket客户端局域网或广域网内共享同一短信猫收发短信的开发解决方案

    可使同一网络(局域网或广域网)内众多客户端,共享一个短信猫设备短信服务器进行短信收发,短信服务器具备对客户端的管理功能. 下面是某市建设银行采用本短信二次开发平台时实施的系统方案图: 在该方案中,考虑 ...

  5. 短信猫 TIdTCPServer TIdTCPClient

    短信猫 服务端: IdTCPServer1: TIdTCPServer; IdAntiFreeze1: TIdAntiFreeze; unit UnitSever; interface uses Wi ...

  6. Java应用短信猫

    首先确定短信猫正常连接到主机,并安装SIM卡.先用超级终端测试短息猫能不能用.安装minicom:#sudo apt-get install minicom安装完成后,执行#sudo minicom ...

  7. centos6.5 短信猫部署发短信

    本文为在centos下部署短信猫发短信使用,以下为具体环境和步骤说明,欢迎留言! 一.环境说明 服务器:centos6.5 x64 依赖包:lockdev-1.0.1-18.el6.x86_64.rp ...

  8. CDMA电信短信猫支持189等电信号码可二次开发

    CDMA电信短信猫支持189等电信号码可二次开发 这款短信猫采用法国wavecom Q2358C模块,支持短信猫二次开发,可提供短信猫二次开发包下载测试.提供相关资料文档. 此款CDMA电信短信猫有串 ...

  9. VB短信猫开发包,支持超长短信

    一.短信猫开发包(长短信/异步调用)说明:   短信猫开发包以OCX控件的形式提供,支持Windows平台下常用的开发工具:如VB.VB.net.VC++.Power Builder.C#.DELPH ...

随机推荐

  1. Generate the Jobs script from msdb Database

    前两周,由于数据库简繁体的转换,大量的数据库需要转到新的服务器. 在转其中的一台的时候,原先导出来的JOBS脚本不翼而飞(原因至今未明),而恰巧这一台服务器有90多个JOB(看下图恢复后的,注意滚动条 ...

  2. Slony-I的限制

    限制如下: http://slony.info/documentation/limitations.html Slony-I does not automatically replicate •Cha ...

  3. Windows Server Backup备份Exchange2010

    在Windows Server 2008 R2 SP1上Exchange2010 DAG备份测试成功: 1.分别在DAG成员服务器上安装WSB,不可以安装其命令行工具,因为其需要早期的PowerShe ...

  4. C++学习笔记之模板(1)——从函数重载到函数模板

    一.函数重载 因为函数重载比较容易理解,并且非常有助于我们理解函数模板的意义,所以这里我们先来用一个经典的例子展示为什么要使用函数重载,这比读文字定义有效的多. 现在我们编写一个交换两个int变量值得 ...

  5. 【S16】了解如何把vector和string数据传给旧的API

    1.尽量使用vector和string替换数组,但是老的代码还是使用数组.如果老的接口期望是数组,怎么办? 需要把vector和string,暴露出数组接口,也就是第一个元素的地址. 2.考虑方法Do ...

  6. 【M10】在构造方法内阻止资源泄漏

    1.类中没有指针,如果对象构造过程中出现异常,C++保证已经构造好的那一部分自动销毁.注意:这里不是调用析构方法,而是编译器在你的构造方法中插入了一些代码,保证对已经构造好的对象析构. 2.类中有指针 ...

  7. Codeforces Gym 100015G Guessing Game 差分约束

    Guessing Game 题目连接: http://codeforces.com/gym/100015/attachments Description Jaehyun has two lists o ...

  8. accept函数

    accept()函数 系统调用 accept() 会有点古怪的地方的! 你能够想象发生 这种事情:有人从非常远的地方通过一个你在侦听 (listen()) 的port连接 (connect()) 到你 ...

  9. Android自己主动化測试解决方式

    如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolect ...

  10. [Angular 2] Order Dynamic Components Inside an Angular 2 ViewContainer

    By default, when you generate components, they will simply be added to the page in order, one after ...