我曾經(jīng)開(kāi)發(fā)的某項(xiàng)目需要使用短信貓模塊,要求使用C#編程操作。能獨(dú)立使用的動(dòng)態(tài)鏈接庫(kù)之一就是網(wǎng)上流傳的sms.dll,但它的功能較少,不能滿足需求,鑒于一時(shí)找不到合適的完整代碼,我深入研究了短信協(xié)議,借鑒了很多代碼,開(kāi)發(fā)了“C#短信貓操作類”,使用AT指令操作短信貓,達(dá)到完全自主可控、靈活使用的目的。代碼已在多個(gè)生產(chǎn)環(huán)境使用,工作穩(wěn)定高效。現(xiàn)將短信貓開(kāi)發(fā)使用經(jīng)驗(yàn)略作總結(jié),供大家交流借鑒。
一、硬件選擇
1、市場(chǎng)上的短信貓有GSM短信貓、CDMA短信貓等。用戶可根據(jù)當(dāng)?shù)剡\(yùn)營(yíng)商情況選擇信號(hào)較好,通信較穩(wěn)定的一種。我研究的是GSM短信貓,沒(méi)有研究過(guò)CDMA短信貓(我的一位朋友使用VB開(kāi)發(fā)了CDMA短信貓程序,也用在了生產(chǎn)環(huán)境,工作穩(wěn)定)。
2、GSM短信貓的生產(chǎn)廠家眾多,產(chǎn)品質(zhì)量參差不齊,產(chǎn)品價(jià)格從一百多到好幾百都有。
3、GSM短信貓核心模塊一般采用德國(guó)西門子和法國(guó)WAVECOM芯片居多,也有黑模塊(可能導(dǎo)致通信不穩(wěn)定)。在短信貓讀取出來(lái)的機(jī)器碼有:Cinterion, SIEMENS, WAVECOM等。
注:本人購(gòu)買的某款短信貓,機(jī)器碼為“wavec0m”,注意其中是數(shù)字“0”,而不是字母“o”,不知是不是黑模塊哈。其中機(jī)器碼為“Cinterion”的是西門子GSM/GPRS雙模模塊(MC35i),本人最后使用的就是這個(gè),工作穩(wěn)定。
4、短信貓工作穩(wěn)定與否,收發(fā)短信成功率高不高,不僅取決于使用的是否是正品模塊,還取決于短信貓外圍電路的設(shè)計(jì)是否精良,如采用單片機(jī)控制,有看門狗電 路,外殼設(shè)計(jì)防電磁干擾等。一般來(lái)說(shuō)100多元的產(chǎn)品質(zhì)量較差,質(zhì)量好的至少要在300元以上,當(dāng)然也有更貴的,取決于用戶需求。
5、短信貓有串口和USB口之分,其中USB口也是虛擬成串口使用。理論上串口短信貓工作更穩(wěn)定,但需外接電源,而USB口可直接供電。
6、短信貓池。每個(gè)短信貓模塊對(duì)應(yīng)一個(gè)虛擬串口,與單口短信貓操作完全一樣。
二、軟件開(kāi)發(fā)
我在網(wǎng)上搜索了很多關(guān)于C#操作短信貓的文章、代碼,都不能較完整地解決我的需求。于是我購(gòu)買了3種短信貓進(jìn)行測(cè)試,潛心學(xué)習(xí)短信協(xié)議,花費(fèi)不少短信費(fèi)進(jìn) 行調(diào)試,最終確定了一款工作穩(wěn)定的短信貓,并開(kāi)發(fā)出了穩(wěn)定版本的C#短信貓軟件,已在某項(xiàng)目中穩(wěn)定運(yùn)行了一年多,并已在幾位網(wǎng)友的不同項(xiàng)目中正常使用。
三、參考資料
1、由王新全整理翻譯的 《 SMS with the SMS PDU-mode》
2、豆丁網(wǎng)上的《PDU格式短信》,鏈接地址:http://www.docin.com/p-101990311.html
3、《WAVECOM 產(chǎn)品常用操作和AT 指令》
4、《PDU編碼協(xié)議簡(jiǎn)單說(shuō)明》
5、博客園“給我一杯酒”的博客《短信貓軟件的實(shí)現(xiàn)(C#)》