C# 短信猫(SMS cat) 操作源码开发经验
我曾经开发的某项目需要使用短信猫模块,要求使用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) 操作源码开发经验的更多相关文章
- wavecom短信猫常用AT命令
wavecom短信猫常用AT命令 一.一般命令 1. AT+CGMI 给出模块厂商的标识. 2. AT+CGMM 获得模块标识.这个命令用来得到支持的频带 (GSM 900,DCS 1800 或PCS ...
- zabbix使用短信猫实现报警
因为公司运维的对象是政府单位,所以在实际的监控过程中无法连接到外网,所以最后报警选择的媒介是短信猫,下边就是具体的实施过程. 一.面临的问题 因为手头上的设备是串口的短信猫,但是zabbix serv ...
- 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案
方案特点: 在网页程序或Java程序中调用接口实现短信猫收发短信的解决方案,简化软件开发流程,减少各应用系统相同模块的重复开发工作,提高系统稳定性和可靠性. 基于HTTP协议的开发接口 使用特点在网页 ...
- 基于Socket客户端局域网或广域网内共享同一短信猫收发短信的开发解决方案
可使同一网络(局域网或广域网)内众多客户端,共享一个短信猫设备短信服务器进行短信收发,短信服务器具备对客户端的管理功能. 下面是某市建设银行采用本短信二次开发平台时实施的系统方案图: 在该方案中,考虑 ...
- 短信猫 TIdTCPServer TIdTCPClient
短信猫 服务端: IdTCPServer1: TIdTCPServer; IdAntiFreeze1: TIdAntiFreeze; unit UnitSever; interface uses Wi ...
- Java应用短信猫
首先确定短信猫正常连接到主机,并安装SIM卡.先用超级终端测试短息猫能不能用.安装minicom:#sudo apt-get install minicom安装完成后,执行#sudo minicom ...
- centos6.5 短信猫部署发短信
本文为在centos下部署短信猫发短信使用,以下为具体环境和步骤说明,欢迎留言! 一.环境说明 服务器:centos6.5 x64 依赖包:lockdev-1.0.1-18.el6.x86_64.rp ...
- CDMA电信短信猫支持189等电信号码可二次开发
CDMA电信短信猫支持189等电信号码可二次开发 这款短信猫采用法国wavecom Q2358C模块,支持短信猫二次开发,可提供短信猫二次开发包下载测试.提供相关资料文档. 此款CDMA电信短信猫有串 ...
- VB短信猫开发包,支持超长短信
一.短信猫开发包(长短信/异步调用)说明: 短信猫开发包以OCX控件的形式提供,支持Windows平台下常用的开发工具:如VB.VB.net.VC++.Power Builder.C#.DELPH ...
随机推荐
- EXTJS中的grid显示实际行号
添加一个新的功能 Ext.grid.PageRowNumberer = Ext.extend(Ext.grid.RowNumberer, { width : 40, renderer:function ...
- sc7731 Android 5.1 LCD驱动简明笔记之三
此篇笔记基于sc7731 - android 5.1,对lcd的gralloc库做一个简明笔记. 第一部分 调用gralloc.sc8830.so所谓的Gralloc模块,它就是一个模块,一个操作ke ...
- Binary Search
Binary Search [原文见:http://www.topcoder.com/tc?module=Static&d1=tuto ...
- 手游产品经理初探(六)粗糙的logo会给产品致命一击
假设你的游戏产品从logo的设计開始就不注重细节的话,那么你的产品将不会走多远! 我们把图片放大看: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1 ...
- Windows Server 2003下ASP.NET无法识别IE11的解决方法
由于IE11对User-Agent字符串进行了比较大的改动,所以导致很多通过User-Agent来识别浏览器的程序,都相应的出现了无法识别IE11的情况.(普通用户端则可以通过这个方法来进行设置.) ...
- (高精度运算4.7.27)UVA 10494 If We Were a Child Again(大数除法&&大数取余)
package com.njupt.acm; import java.math.BigInteger; import java.util.Scanner; public class UVA_10494 ...
- 分享 Java微信开发SDK
分享 Java微信开发SDK •发布于 4周前 •作者 朋也 •432 次浏览 •最后一次编辑是 2周前 •来自 分享 给大家分享两个java开发微信公众号的sdk jfinal-weixin ...
- JS的setTimeout函数第一个参数问题
setTimeout的第一个参数只能放一个无参的函数,更像放了一个函数指针在那里,如果要放带参数的话,就要拿个匿名函数包裹一下
- AndroidManifest.xml 详解 (四) 之uses-permission
The <uses-permission> Element 我们现在告别<application>元素,回到<manifest>中定义的子元素,<uses-p ...
- 深入学习PHP内核
http://www.php-internals.com/ 深入学习PHP内核 http://www.php-internals.com/book/ http://www.kancloud.cn/@ ...