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 ...
随机推荐
- nginx 配置虚拟主机(支持php)
配置步骤: 1.在nginx安装目录下,找到nginx.conf所在文件夹,新建vhost文件夹 2.在nginx.conf http{} 末端加入 include vhost/*.conf; 3.进 ...
- Segger RTT : Real Time Terminal SRAM 调试解决方法
http://segger.com/jlink-real-time-terminal.html Real Time Terminal SEGGER's Real Time Terminal (RTT) ...
- Java常见排序算法之冒泡排序
在学习算法的过程中,我们难免会接触很多和排序相关的算法.总而言之,对于任何编程人员来说,基本的排序算法是必须要掌握的. 从今天开始,我们将要进行基本的排序算法的讲解.Are you ready?Let ...
- Codeforces Round #180 (Div. 2) A. Snow Footprints 贪心
A. Snow Footprints 题目连接: http://www.codeforces.com/contest/298/problem/A Description There is a stra ...
- 4K加速普及,8K近在咫尺,下一个是?
从铺天盖地的厂商宣传到亲戚朋友家的客厅.不可否认4K时代已全面到来------业内人士估计2015年是4K电视的一个突破年.知名市场调查机构StrategyAnalytics对4K电视进行了调 ...
- c语言全局变量和局部变量问题汇总
.局部变量是否能和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,须要使用"::" 局部变量能够与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变 ...
- Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8
在使用Eclipse 直接编译NDK,有时候会报类似以下错误 Android NDK: WARNING: APP_PLATFORM android-14 is larger than android: ...
- SSD(固态硬盘)简介
http://www.jinbuguo.com/storage/ssd_intro.html
- [原创]-IIS7.5优化,支持同时10万个请求
背景: IIS7.5是微软推出的最新平台IIS,性能也较以前有很大的提升,但是默认的设置配不适合很大的请求.但是我们可以根据实际的需要进行IIS调整,使其性能更佳,支持同时10万个请求. ...
- 表ADT
表一般不用简单数组来实现,通常将其实现为链表.在链表中要不要使用表头则属于个人兴趣问题.在下面的例程中我们都使用表头. 按照C的约定,作为类型的List(表)和Position(位置)以及函数的原型都 ...