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 ...
随机推荐
- C++学习笔记之作用域为类的常量和作用域内的枚举
一.作用域为类的常量 有些情况下,使符号常量的作用域为类很有用.如,类声明(不是定义)可能使用字面值30来指定数组长度,由于该常量对于所有对象来说都是相同的,因此创建一个由所有对象共享的常量是个不错的 ...
- hdu 5268 ZYB loves Score 水题
ZYB loves Score Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?p ...
- 【JavaScript】JavaScript中的Timer是怎么工作的( setTimeout,setInterval)
原文(http://www.yeeyan.org/articles/view/luosheng/24380) 作为入门者来说,了解JavaScript中timer的工作方式是很重要的.通常它们的表现行 ...
- Android 动画机制与使用技巧
动画效果一直是人机交互中非常重要的部分,与死板.突兀的显示效果不同,动画效果的加入,让交互变得更加友好,特别是在提示.引导类的场景中,合理地使用动画能让用户获得更加愉悦的使用体验 一.Android ...
- NSNotificationCenter通知中心
概述 NSNotificationCenter通知中心,通常用于一对一或者一对多的消息传递,即当一个地方改变时,要求改变其他的一些地方,例如当网络请求回来了新的数据,需要刷新本地信息和本地内存里面的界 ...
- js判断加载大小页面
大页面里的js: <script> function jmp(){ var w = document.body.clientWidth; if( w > window.screen. ...
- 一款基于jQuery饼状图比例分布数据报表
今天给大家带来一款基于jQuery饼状图比例分布数据报表.这款报表插件适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览 ...
- 基于CSS3图片可倾斜摆放的动画相册
今天我们又要来分享一个CSS3动画相册.之前我们分享过一个很酷的放满女神的HTML5/CSS3相册,相册是全屏展示的.今天这款相册的特点是图片可以任意角度的倾斜摆放,就像随意放在桌面上一样.另外,当鼠 ...
- CentOS 7 ibus 导入第三方词库
CentOS 7 自带的输入法是ibus默认有带拼音输入法“Intelligent Pinyin 1.6.91“,但是在使用过程中发现很多词汇没有.所以就想捣鼓一下,怎么把像搜狗或者其他输入法的数据库 ...
- Xcode 8:在 Active Compilation Conditions 中自定义环境变量
来源:没故事的卓同学 链接:http://www.jianshu.com/p/96b36360bb2d 在Xcode 7我们在 OTHER_SWIFT_FLAGS中配置环境变量.但是有一个不爽的地方就 ...