版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第15章VC發(fā)送短信在這個(gè)信息化快速開(kāi)展的社會(huì)環(huán)境下,商業(yè)競(jìng)爭(zhēng)變得越來(lái)越劇烈,越來(lái)越多的企業(yè)在開(kāi)發(fā)自己的短信平臺(tái),以求得到更快捷的信息或效勞。一般情況下,開(kāi)發(fā)者會(huì)選擇使用VC平臺(tái)與短信貓進(jìn)行短信平臺(tái)的開(kāi)發(fā)。因此,在本章中,將向讀者介紹短信貓相關(guān)的根本知識(shí)及其二次開(kāi)發(fā)接口等相關(guān)內(nèi)容。15.1短信貓介紹讀者在VC平臺(tái)下開(kāi)發(fā)短信平臺(tái)時(shí),短信貓是必不可少的硬件設(shè)施。所以,讀者必須了解短信貓是什么及其種類(lèi)。當(dāng)然在開(kāi)發(fā)時(shí),作為程序員而言,最關(guān)心的問(wèn)題還是短信貓的生產(chǎn)商所提供的二次開(kāi)發(fā)接口。因此,在本節(jié)中,將向讀者介紹短信貓的種類(lèi)以及二次開(kāi)發(fā)接口等相關(guān)知識(shí)。15.1.1短信貓簡(jiǎn)介短信貓〔GSMMODEM〕是一種支持GSM無(wú)線通信的工業(yè)級(jí)調(diào)制解調(diào)器,其功能與讀者日常所用的MODEM〔調(diào)制解調(diào)器〕的功能根本一致。一般情況下,短信貓的核心局部是基于德國(guó)西門(mén)子的GSM模塊的。讀者只需插入國(guó)內(nèi)移動(dòng)通信運(yùn)營(yíng)商的SIM卡后,即可接入運(yùn)營(yíng)商的GSM網(wǎng)絡(luò)中。這樣,讀者便可以通過(guò)短信貓,實(shí)現(xiàn)無(wú)線GSM通話、收發(fā)短信、傳輸數(shù)據(jù)等功能。如果將短信貓與相比較,短信貓的核心模塊與的核心模塊一樣。當(dāng)短信貓接通電源以后,其內(nèi)置軟件便開(kāi)始運(yùn)行工作。如果讀者將某個(gè)移動(dòng)運(yùn)營(yíng)商的SIM卡插入到短信貓中。那么,短信貓便完全和一樣,被接入到移動(dòng)通信網(wǎng)絡(luò)中進(jìn)行工作。計(jì)算機(jī)可以通過(guò)串口或USB接口通過(guò)專(zhuān)用的連接線連接短信貓,通過(guò)一系列的指令,實(shí)現(xiàn)與短信貓的數(shù)據(jù)通信。例如,收發(fā)短信、撥打以及收發(fā)等。只是在本章實(shí)例中,僅需要使用其發(fā)短信的功能即可。所以,讀者假設(shè)想使用其他功能只要學(xué)會(huì)相關(guān)指令即可。短信貓與最大的區(qū)別,在于有自帶的屏幕、鍵盤(pán)和應(yīng)用軟件。而短信貓那么需要讀者根據(jù)其二次開(kāi)發(fā)接口對(duì)其進(jìn)行相關(guān)的驅(qū)動(dòng)和控制。當(dāng)前,讀者在實(shí)際開(kāi)發(fā)中所使用的短信貓,其外型結(jié)構(gòu)有很多種,但是其核心技術(shù)都是一樣的,如圖15.1所示。圖15.1常用短信貓外型結(jié)構(gòu)
注意:圖15.1中所示外型結(jié)構(gòu)的短信貓是基于USB接口的一款短信貓。關(guān)于短信貓接口方面的知識(shí)將在節(jié)中介紹。15.1.2短信貓分類(lèi)雖然短信貓的核心技術(shù)根本相同,但是根據(jù)短信貓使用的接口和短信貓中接口模塊的不同,短信貓也可以分為不同的種類(lèi)。如果按照短信貓使用的接口來(lái)分類(lèi),短信貓可以分為串口短信貓、USB接口短信貓等。如果按照短信貓中接口模塊多少來(lái)分類(lèi),短信貓可分為單口短信貓和短信貓池兩種。因此,在本節(jié)中將向讀者簡(jiǎn)單介紹這幾種短信貓。1.串口短信貓串口短信貓是指該類(lèi)短信貓與計(jì)算機(jī)之間的數(shù)據(jù)通信是通過(guò)串口進(jìn)行傳輸?shù)?。其接口外型如圖15.2所示。圖15.2串口短信貓外型結(jié)構(gòu)當(dāng)讀者使用串口短信貓與計(jì)算機(jī)相結(jié)合,開(kāi)發(fā)短消息平臺(tái)時(shí),開(kāi)發(fā)人員可以通過(guò)計(jì)算機(jī)串口向短信貓發(fā)送AT指令完成數(shù)據(jù)通信等操作。2.USB接口短信貓USB接口短信貓是指該類(lèi)短信貓與計(jì)算機(jī)之間的數(shù)據(jù)通信是通過(guò)USB接口進(jìn)行傳輸?shù)?。其接口外型如圖15.1所示。由于USB接口屬于即插即用的計(jì)算機(jī)接口。所以,使用USB接口的短信貓時(shí),其操作步驟非常簡(jiǎn)單。讀者僅需要將短信貓插入計(jì)算機(jī)的USB接口即可實(shí)現(xiàn)數(shù)據(jù)通信。從價(jià)格上講,USB短信貓的市場(chǎng)價(jià)格也比較廉價(jià)。在這里,建議讀者在開(kāi)發(fā)時(shí)選擇USB接口的短信貓。3.單口短信貓單口短信貓是指在短信貓中,讀者只能插入一張SIM卡,進(jìn)行單個(gè)通道的數(shù)據(jù)通信,如圖15.3所示。如果讀者希望通過(guò)不同的通道發(fā)送和接收多個(gè)數(shù)據(jù),那么應(yīng)該采用多口的短信貓進(jìn)行開(kāi)發(fā)。圖15.3單口短信貓外型結(jié)構(gòu)4.短信貓池短信貓池是指該類(lèi)短信貓具有多個(gè)通道,可以插入多張SIM卡,并且能夠同時(shí)發(fā)送和接收多個(gè)數(shù)據(jù),如圖15.4所示。圖15.4短信貓池外型結(jié)構(gòu)如圖15.4所示,短信貓池具有多個(gè)數(shù)據(jù)傳輸通道,可以插入多張SIM卡,并且每個(gè)通道都具有各自的數(shù)據(jù)傳輸天線。如果讀者開(kāi)發(fā)的短消息平臺(tái)需要以不同的號(hào)碼群發(fā)短消息,那么應(yīng)該使用該類(lèi)型的短信貓進(jìn)行平臺(tái)開(kāi)發(fā)。在本節(jié)中,主要向讀者介紹了短信貓的幾種類(lèi)型以及外型結(jié)構(gòu)。通過(guò)本節(jié)知識(shí)的學(xué)習(xí),讀者對(duì)短信貓的種類(lèi)以及類(lèi)型應(yīng)該有一個(gè)大致的了解。15.1.3短信貓開(kāi)發(fā)接口短信貓開(kāi)發(fā)接口〔GSMMODEMSDK〕是指程序員編程與短信貓進(jìn)行數(shù)據(jù)通信時(shí),短信貓的生產(chǎn)商為程序員提供的一系列函數(shù)或者控件等。一般情況下,短信貓的生產(chǎn)商為程序員提供了4種開(kāi)發(fā)接口模式。這4種開(kāi)發(fā)接口模式分別為使用AT指令、短信貓二次開(kāi)發(fā)包、短信貓通信中間件以及第三方提供的短信網(wǎng)關(guān)。在本節(jié)中,將向讀者分別介紹這4種開(kāi)發(fā)接口模式。1.使用AT指令A(yù)T指令是指一種基于調(diào)制解調(diào)器的命令語(yǔ)言。一般情況下,該指令是從一個(gè)終端設(shè)備或者是數(shù)據(jù)終端設(shè)備向終端適配器、數(shù)據(jù)電路終端設(shè)備發(fā)送的指令。計(jì)算機(jī)通過(guò)向終端設(shè)備發(fā)送AT指令可以實(shí)現(xiàn)控制其功能的作用。例如,當(dāng)讀者需要獲取插入短信貓中的SIM的相關(guān)信息時(shí),便可以使用AT指令實(shí)現(xiàn)。其指令代碼如下:AT+CCID //獲取短信貓中的SIM卡相關(guān)信息在AT指令中,均以字符AT作為指令開(kāi)始。上面的指令A(yù)T+CCID表示讀者將使用該指令獲取短信貓中插入的SIM卡的標(biāo)識(shí),而這個(gè)命令將使短信貓中相應(yīng)的模塊讀取SIM卡上的EF-CCID標(biāo)識(shí)文件。注意:在這里僅僅是為了向讀者介紹AT指令的作用以及根本格式。關(guān)于該指令的詳細(xì)講解將在15.3節(jié)中向讀者進(jìn)行講解。2.短信貓二次開(kāi)發(fā)包短信貓二次開(kāi)發(fā)包,就是短信貓的生產(chǎn)商提供給上層開(kāi)發(fā)人員的API函數(shù)。這些API函數(shù)封裝了AT指令。當(dāng)讀者需要使用短信貓中相應(yīng)的功能時(shí),只需要調(diào)用生產(chǎn)商所提供的短信貓二次開(kāi)發(fā)包中的相關(guān)API函數(shù)等即可。雖然短信貓的生產(chǎn)商為二次開(kāi)發(fā)封裝了底層的AT指令,但是讀者如果對(duì)AT指令非常了解,也可以實(shí)現(xiàn)自行封裝AT指令而構(gòu)造短信貓的二次開(kāi)發(fā)包。例如,讀者將獲取短信貓中插入的SIM卡的相關(guān)信息的AT指令封裝為一個(gè)函數(shù)。代碼如下:01 voidGetSIM() //封裝的AT指令函數(shù)02 {03 ... //省略局部代碼04 chardata[]={"AT+CCID"}; //定義AT指令字符數(shù)組05 DWORDdata; //定義變量保存實(shí)際寫(xiě)入的指令大小06 BOOListrue; //確定指令發(fā)送是否成功07 istrue=WriteFile(handle,&data,sizeof(data),NULL); 08 //將AT指令字符通過(guò)串口進(jìn)行發(fā)送09 if(istrue) //判斷AT指令是否發(fā)送成功10 {11 MessageBox("獲取SIM卡信息成功!");//提示讀者發(fā)送結(jié)果12 }13 else14 {15 MessageBox("獲取SIM卡信息失??!");16 }17 }在上面的代碼中,讀者可以看到像短信貓發(fā)送AT命令是通過(guò)串口進(jìn)行傳輸?shù)?,函?shù)WriteFile()的第一個(gè)參數(shù)handle表示串口的句柄。但是,該種發(fā)送AT指令的方法僅適合于串口型的短信貓。如果讀者使用的短信貓為USB接口類(lèi)型,那么需要RS-232串口轉(zhuǎn)USB接口的轉(zhuǎn)換器實(shí)現(xiàn)通過(guò)串口發(fā)送AT指令。3.短信貓通信中間件短信貓通信中間件是指一套專(zhuān)門(mén)的針對(duì)數(shù)據(jù)庫(kù)接口的短信貓通信軟件。讀者使用該類(lèi)型的通信中間件,僅需提交短信隊(duì)列到數(shù)據(jù)庫(kù)即可進(jìn)行短信收發(fā)。因此,無(wú)論讀者所使用的是哪一種開(kāi)發(fā)語(yǔ)言進(jìn)行短信貓的二次開(kāi)發(fā),只需要對(duì)其數(shù)據(jù)庫(kù)進(jìn)行讀寫(xiě)即可。這種開(kāi)發(fā)簡(jiǎn)單快速,節(jié)約開(kāi)發(fā)本錢(qián),是目前最為快捷的一種短信應(yīng)用開(kāi)發(fā)模式。4.使用短信網(wǎng)關(guān)短信網(wǎng)關(guān)是指由第三方開(kāi)發(fā)的應(yīng)用程序或提供的程序開(kāi)發(fā)接口。一般情況下,這類(lèi)短信網(wǎng)關(guān)都是基于網(wǎng)頁(yè)提供給讀者使用的。通常,第三方首先將短信操作平臺(tái)的相關(guān)功能集成到網(wǎng)頁(yè)中。然后,讀者便可以使用其提供的網(wǎng)頁(yè)地址,將相關(guān)的數(shù)據(jù)轉(zhuǎn)換為變量通過(guò)該網(wǎng)頁(yè)地址傳送到網(wǎng)頁(yè)中的相關(guān)參數(shù)中。例如,讀者假設(shè)一個(gè)第三方所提供的網(wǎng)頁(yè)地址為“〞,而讀者將發(fā)送的短信相關(guān)數(shù)據(jù)等以參數(shù)的形式通過(guò)該網(wǎng)址進(jìn)行傳遞,那么最終構(gòu)造的網(wǎng)址如下:短信內(nèi)容讀者在實(shí)際編程時(shí),只需要按照參數(shù)的一定順序構(gòu)造好該網(wǎng)址以后,便可以將其翻開(kāi)實(shí)現(xiàn)短消息的發(fā)送。在構(gòu)造的網(wǎng)址中,其參數(shù)及意義如下:參數(shù)mob表示讀者在第三方處注冊(cè)的號(hào)碼。該號(hào)碼是讀者為了使用第三方所提供的短信網(wǎng)關(guān)而注冊(cè)的,相當(dāng)于讀者名。注意:當(dāng)讀者構(gòu)造該網(wǎng)址時(shí),必須將各個(gè)參數(shù)及其參數(shù)值之間使用符合“&〞進(jìn)行連接。如果讀者使用第三方所提供的短信網(wǎng)關(guān)。那么,讀者在開(kāi)發(fā)短信平臺(tái)時(shí),不需要再使用短信貓等相關(guān)的硬件設(shè)備了。而僅僅需要將短消息的相關(guān)內(nèi)容進(jìn)行組織以后,構(gòu)造成第三方所規(guī)定的網(wǎng)址后,將其翻開(kāi)即可。這種方法使用簡(jiǎn)單,易于實(shí)現(xiàn)。但是,其局限性非常大,讀者會(huì)受到第三方的一些約束等。15.2實(shí)現(xiàn)與短信貓的硬件連接讀者使用短信貓時(shí),應(yīng)該首先確保PC與短信貓之間的硬件連接無(wú)誤,方可進(jìn)行相關(guān)的操作。所以,在本節(jié)中,將向讀者介紹短信貓相關(guān)的硬件設(shè)備以及實(shí)現(xiàn)PC與短信貓的硬件連接方法。15.2.1短信貓的硬件設(shè)備一般情況下,短信貓的硬件設(shè)備較為簡(jiǎn)單,主要由3局部組成。在本節(jié)中,將向讀者介紹這些硬件設(shè)備的外型結(jié)構(gòu)以及作用等。1.短信貓主機(jī)首先,讀者應(yīng)該獲得短信貓的主機(jī),這是硬件中最重要的一局部。由于短信貓有兩種接口模式。所以,讀者可以根據(jù)需要選擇適宜的短信貓主機(jī)。例如,讀者選擇USB接口的短信貓作為短信貓主機(jī),如圖15.5所示。圖15.5USB接口短信貓?jiān)趫D15.5中,所示的短信貓是USB接口模式的。如果讀者需要使用串口模式的短信貓,那么其外型結(jié)構(gòu)如圖15.2所示。一般情況下,讀者選擇USB接口的短信貓可以節(jié)約本錢(qián),縮短開(kāi)發(fā)周期等。2.電源線與數(shù)據(jù)傳輸線在短信貓與計(jì)算機(jī)之間需要一根數(shù)據(jù)線連接,才能實(shí)現(xiàn)數(shù)據(jù)通信。例如,讀者使用的短信貓是USB接口,那么數(shù)據(jù)線應(yīng)該選擇一根USB接口線。如果讀者使用的短信貓是串口接口,那么數(shù)據(jù)線選擇一根串口線即可。通常,USB接口的短信貓可以通過(guò)USB口由計(jì)算機(jī)供電進(jìn)行工作。所以,讀者使用USB接口的短信貓時(shí),是不需要另外使用單獨(dú)的電源線為其供電的。但是,串口模式的短信貓需要讀者單獨(dú)配上相應(yīng)的電源才能工作。3.天線由于短信貓工作時(shí),是無(wú)線傳輸數(shù)據(jù)信號(hào)的。所以,讀者使用短信貓時(shí),還需要為其配置相應(yīng)的天線,如圖15.6所示。注意:短信貓的天線可以用來(lái)接收或者發(fā)送讀者需要的數(shù)據(jù)等。當(dāng)然,圖15.6中所示的天線為一般插接式天線。該天線最大的缺點(diǎn)是安裝過(guò)程較繁雜。圖15.6短信貓?zhí)炀€實(shí)際上,短信貓的天線還有一種吸盤(pán)式的天線。安裝這種天線比較方便并且快速。當(dāng)讀者使用時(shí),將其吸盤(pán)放置在短信貓上即可。其大致外型結(jié)構(gòu)如圖15.7所示。圖15.7短信貓吸盤(pán)天線外型結(jié)構(gòu)上面所講的硬件設(shè)備根本上就是短信貓的所有設(shè)備了。但是,讀者進(jìn)行二次開(kāi)發(fā)還需要短信貓生產(chǎn)商所提供的短信貓二次開(kāi)發(fā)包。在本節(jié)中,主要向讀者介紹了短信貓的硬件設(shè)備及其外型結(jié)構(gòu)和根本作用等。15.2.2PC連接短信貓以USB接口短信貓為例,首先安裝短信貓的驅(qū)動(dòng)程序,如圖15.8、15.9所示。圖15.8安裝驅(qū)動(dòng)程序1圖15.9安裝驅(qū)動(dòng)程序2該驅(qū)動(dòng)是將短信貓上的USB虛擬轉(zhuǎn)換成了串口,安裝好驅(qū)動(dòng)后再接入U(xiǎn)SB連接的短信貓?jiān)O(shè)備,此時(shí)Windows7系統(tǒng)會(huì)自動(dòng)檢測(cè)并嘗試為設(shè)備安裝驅(qū)動(dòng),如圖15.10所示。圖15.10系統(tǒng)嘗試安裝驅(qū)動(dòng)系統(tǒng)的這種嘗試多半會(huì)失敗,因?yàn)橄到y(tǒng)優(yōu)先嘗試聯(lián)網(wǎng)安裝驅(qū)動(dòng),實(shí)際上驅(qū)動(dòng)已經(jīng)被安裝在電腦上了,所以需要干預(yù)一下,即單擊“跳過(guò)從WindowsUpdate獲得驅(qū)動(dòng)程序軟件〞鏈接,然后系統(tǒng)會(huì)從電腦上尋找驅(qū)動(dòng),如圖15.11、15.12所示。圖15.11跳過(guò)從WindowsUpdate獲取驅(qū)動(dòng)操作圖15.12驅(qū)動(dòng)成功安裝由圖可知驅(qū)動(dòng)為USB虛擬的串口號(hào)為COM5,翻開(kāi)系統(tǒng)的設(shè)備管理器,如圖15.13,可以到串口COM5,說(shuō)明PC和短信貓連接成功。圖15.13設(shè)備管理器注意:不同的系統(tǒng)需要選擇不同的驅(qū)動(dòng)程序,目前知道WindowsXP和Windows7所需的驅(qū)動(dòng)是不一樣的,倒是WindowsVista和Windows7驅(qū)動(dòng)相同。15.3相關(guān)AT指令介紹本章在前面的小節(jié)中,已經(jīng)向讀者講解了短信貓的相關(guān)硬件以及這些硬件的連接等。讀者真正操作短信貓,還需要向其發(fā)送相應(yīng)的指令,這些指令稱為“AT指令〞。在本節(jié)中,將向讀者講解短信貓中相應(yīng)功能的AT指令代碼。15.3.1AT指令介紹AT指令是指計(jì)算機(jī)向其附加的硬件設(shè)備發(fā)送的相關(guān)功能命令,或者是計(jì)算機(jī)所帶的硬件。例如,硬盤(pán)讀寫(xiě)操作命令等。通常情況下,讀者可以通過(guò)選擇“開(kāi)始〞|“運(yùn)行〞命令,翻開(kāi)計(jì)算機(jī)中的“運(yùn)行〞對(duì)話框,并在文本框中輸入cmd,單擊“確定〞按鈕,翻開(kāi)命令運(yùn)行對(duì)話框,如圖15.14所示。圖15.14命令運(yùn)行對(duì)話框讀者在該窗口的光標(biāo)處輸入“AT+空格+R〞,即可閱讀AT指令的相關(guān)幫助信息,如圖15.15所示。圖15.15
AT指令的相關(guān)幫助信息
注意:AT指令幾乎被所有的計(jì)算機(jī)及其輔助硬件所支持,并且通過(guò)AT指令可以利用計(jì)算機(jī)向任何一種硬件發(fā)送相應(yīng)的AT指令以實(shí)現(xiàn)相應(yīng)的功能。15.3.2AT指令在前面一節(jié)中,向讀者大致介紹了AT指令的定義、作用及其發(fā)送方式等。為了使讀者加深對(duì)AT指令的理解以及使用,在本節(jié)中將以表格的方式向讀者介紹常用的AT指令及其功能含義,可以查看附錄一。一般情況下,讀者可以方便地使用這些AT指令直接操作計(jì)算機(jī)輔助硬件設(shè)備等。例如所講例如,讀者向短信貓發(fā)送AT指令,以獲取SIM卡的序列號(hào),當(dāng)短信貓接收到該指令以后,會(huì)將SIM卡的序列號(hào)返回。這樣,讀者程序便可以從串口等數(shù)據(jù)緩沖區(qū)中讀取這一數(shù)據(jù)并顯示即可。注意:讀者實(shí)際使用AT指令時(shí),需要結(jié)合實(shí)際硬件生產(chǎn)商的相關(guān)說(shuō)明文檔進(jìn)行指令的格式化。這是因?yàn)椴煌挠布a(chǎn)商可能會(huì)有不同的AT指令格式。但是,這些AT指令格式大體上是一樣的。15.4短信發(fā)送規(guī)那么短信貓有三種方式發(fā)送和接收SMS信息:BlockMode,TextMode和PDUMode。其中PDUMode被所有支持,可以使用任何字符集,這也是默認(rèn)的編碼方式。
Text模式使用Text模式收發(fā)短信的代碼很簡(jiǎn)單,實(shí)現(xiàn)起來(lái)也十分容易,這種模式即支持英文也支持中文短信的發(fā)送。
PDU模式PDU(ProtocolDataUnit,協(xié)議數(shù)據(jù)單元)模式,支持中文短信,也能發(fā)送英文短信。PDU模式收發(fā)短信可以使用3種編碼:7-bit、8-bit和UCS2編碼。7-bit編碼用于發(fā)送普通的ASCII字符;8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,比方圖片和鈴聲等;UCS2編碼用于發(fā)送Unicode字符。在這三種編碼方式下,PDU串的用戶信息段最大容量分別是160、140和70。這里,將一個(gè)英文字母、一個(gè)漢字和一個(gè)數(shù)據(jù)字節(jié)都視為一個(gè)字符??傊疃喾?40個(gè)字節(jié),7-bit編碼占不到一個(gè)字節(jié),所以放的信息多些,UCS2編碼占用2個(gè)字節(jié),所以放的信息減少一半。1.7-bit編碼編碼過(guò)程如圖15.16所示。圖15.16
7-bit編碼過(guò)程ASCII碼的最高位都是0,去掉后就剩7位,依次將后面字節(jié)的后幾位補(bǔ)在前面的字節(jié)上,重新構(gòu)成8位的數(shù)據(jù),即7-bit編碼。2.UCS2編碼Unicode目前普遍采用的是UCS2,它用兩個(gè)字節(jié)來(lái)編碼一個(gè)字符,比方漢字“你〞的編碼是0x7F60〔注意字符編碼一般用十六進(jìn)制來(lái)表示,為了與十進(jìn)制區(qū)分,十六進(jìn)制以0x開(kāi)頭〕。UCS2用兩個(gè)字節(jié)來(lái)編碼字符,兩個(gè)字節(jié)就是16位二進(jìn)制,2的16次方等于65536,所以UCS-2最多能編碼65536個(gè)字符。編碼從0到127的字符與ASCII編碼的字符一樣,比方字母“a〞的Unicode編碼是0x0061,十進(jìn)制是97,而“a〞的ASCII編碼是0x61,十進(jìn)制也是97,對(duì)于漢字的編碼,事實(shí)上Unicode對(duì)漢字支持不怎么好,這也是沒(méi)方法的,簡(jiǎn)體和繁體總共有六七萬(wàn)個(gè)漢字,而UCS2最多能表示65536個(gè),才六萬(wàn)多個(gè),所以Unicode只能排除一些幾乎不用的漢字,好在常用的簡(jiǎn)體漢字也不過(guò)七千多個(gè)。為了能表示所有漢字,Unicode也有UCS-4標(biāo)準(zhǔn),就是用4個(gè)字節(jié)來(lái)編碼字符,不過(guò)現(xiàn)在普遍采用的還是UCS2。15.5超級(jí)終端演示信息發(fā)送我們可以通過(guò)超級(jí)終端來(lái)連接短信貓,再用AT指令與短信貓交互,實(shí)現(xiàn)短信的發(fā)送,而本章后面要講解到的例如程序?qū)嶋H上就是模擬了這個(gè)過(guò)程,使得軟件的使用者不必使用AT指令,只要單擊按鈕就能發(fā)送短信了。提示:超級(jí)終端是WindowsXP系統(tǒng)默認(rèn)提供給我們的工具軟件,但是在Windows7下默認(rèn)不再提供,假設(shè)有讀者如筆者般喜愛(ài)那個(gè)工具的話,想在Windows7下使用也不是不可能的。如圖15.17是超級(jí)終端在WindowsXP下的位置,依次單擊“所有程序〞|“附件〞|“通訊〞|“超級(jí)終端〞。只要找到超級(jí)終端這個(gè)工具軟件所在的位置,然后把它整個(gè)拷貝下來(lái),再?gòu)?fù)制到Windows7的任意文件夾下就可以使用了,如圖15.18所示。圖15.17
WindowsXP下超級(jí)終端的位置圖15.18超級(jí)終端所在的位置15.5.1連接短信貓雙擊翻開(kāi)超級(jí)終端,如圖15.19所示,輸入任意名稱,出現(xiàn)圖15.20“連接到〞對(duì)話框,選擇與短信貓連接的串口,這里是COM5。圖15.19連接描述圖15.20連接串口選擇然后會(huì)彈出圖15.21所示的“COM5屬性〞對(duì)話框,單擊“復(fù)原為默認(rèn)設(shè)置〞即可,單擊“確定〞進(jìn)入到超級(jí)終端主界面,如圖15.22所示。圖15.21“COM5屬性〞對(duì)話框圖15.22超級(jí)終端主界面輸入AT指令,返回OK,那么外表連接短信貓成功。15.5.2Text模式演示〔1〕首先發(fā)送英文短信,如圖15.23所示。圖15.23發(fā)送英文短信AT指令不區(qū)分大小寫(xiě),大小寫(xiě)的指令的含義是一樣的。AT+CSMP用來(lái)在文本模式下設(shè)置短信文本參數(shù)。AT+CSMP=<fo>,<vp/scts>,<pid>,<dcs>參數(shù)含義如下:<fo>:參數(shù)的各個(gè)位如圖15.24所示。圖15.24<fo>參數(shù)的各個(gè)位編號(hào)1、0的兩位組合為0、1時(shí)外表發(fā)送方向是到消息中心,還有三種取值這里不做介紹。<vp/scts>:保存時(shí)間的設(shè)置。0–143:對(duì)應(yīng)的保存時(shí)間為:(vp+1)*5分鐘,最大為12小時(shí)。<pid>:默認(rèn)為0。AT+CMGF用來(lái)設(shè)置文本的發(fā)送模式,設(shè)為1表示為T(mén)ext模式,為0標(biāo)識(shí)PDU模式。AT+CMGS后緊跟接收信息的號(hào)碼,在‘>’后輸入要發(fā)送的英文,再按Ctrl+Z組合鍵即可發(fā)送短信,CMGS:119標(biāo)識(shí)已發(fā)送短信的條數(shù)?!?〕再來(lái)發(fā)送中文短信,如圖15.25所示。圖15.25發(fā)送中文短信大局部參數(shù)都介紹過(guò)了,其中“6B228FCE51494E34〞是中文“歡送光臨〞Unicode編碼的16進(jìn)制表示,即每4個(gè)16進(jìn)制位表示一個(gè)漢字。“6B22〞表示“歡〞。15.5.3PDU模式演示選擇UCS2編碼可以同時(shí)發(fā)送中文和英文短信,如圖15.26所示,發(fā)送的短信內(nèi)容是:你好ABC。圖15.26發(fā)送中英文短信AT+CMGS=25表示從“11000〞開(kāi)始到“0043〞字符字節(jié)數(shù)的一半,即一共有42個(gè)字符,那個(gè)非常長(zhǎng)的串包含了很多的信息,下面來(lái)解析下那串字符,如圖15.27所示。圖15.27解析發(fā)送的字符串提示:SIM卡短信中心號(hào)碼可以通過(guò)AT指令A(yù)T+CSCA?獲取,如圖15.28所示。其中返回的字串“〞就是短信中心號(hào)碼了。圖15.28獲取短信中心號(hào)碼按編號(hào)解析要發(fā)送的字符串,如下:“08〞表示編號(hào)為2所指串的長(zhǎng)度,用16進(jìn)制表示?!?1〞是短信中心號(hào)碼類(lèi)型,即國(guó)際化?!?83110701005F0〞是經(jīng)過(guò)處理的短信中心號(hào)碼,首先在號(hào)碼后加字符‘F’,湊成偶數(shù)個(gè)字符,即“〞,然后交換奇、偶字符的位置即可?!?1〞同樣是國(guó)際化的意思?!?82143651732F4〞是經(jīng)過(guò)處理的收信號(hào)碼,同樣要在號(hào)碼后加字符‘F’,湊成偶數(shù)個(gè)字符,即“〞,然后交換奇、偶字符的位置即可?!?0〞是協(xié)議標(biāo)識(shí),點(diǎn)到點(diǎn)方式發(fā)送短信?!?8〞是數(shù)據(jù)編碼方案,即UCS2編碼,還可以是:“00〞,即7-bit編碼;“04〞,即8-bit編碼。最后的“00〞是有效期?!?F60597D004100420043〞是具體的用戶信息,即“4F60597D〞是“你好〞,“004100420043〞是“ABC〞。其實(shí)發(fā)送的字符串也可以不包括編號(hào)為1和2的串,但串的前面需要加上“00〞,如圖15.29所示,同樣短信成功發(fā)送了。圖15.29發(fā)送短信的另一種方式15.6VC短信發(fā)送例如這節(jié)將會(huì)以一個(gè)例如的開(kāi)發(fā)為主,將前面所講到的知識(shí)應(yīng)用到程序中,最終我們會(huì)獲得一個(gè)可以通過(guò)短信貓發(fā)送短信的對(duì)話框程序。15.6.1例如展示例如是基于對(duì)話框的應(yīng)用程序,被命名為test,主對(duì)話框設(shè)計(jì)如圖15.30所示。圖15.30主對(duì)話框界面設(shè)計(jì)例如程序的操作過(guò)程:填寫(xiě)對(duì)話框左半局部的“參數(shù)配置〞信息,再單擊“連接串口〞按鈕,操作成功的話會(huì)彈出2個(gè)提示框,如圖15.31所示。然后再填寫(xiě)對(duì)話框右半局部的號(hào)和短信內(nèi)容,根據(jù)內(nèi)容和模式選擇發(fā)送的按鈕,就OK了。圖15.31信息提示框15.6.2封裝串口操作將串口操作的聲明和實(shí)現(xiàn)單獨(dú)的放在兩個(gè)文件中,分別命名comm.h和comm.cpp。封裝可以使程序的代碼更加的簡(jiǎn)潔,使用起來(lái)也更加方便。1.翻開(kāi)串口在頭文件comm.h中聲明用于翻開(kāi)串口的函數(shù)OpenComm(),在定義文件comm.cpp中實(shí)現(xiàn)如下:串口通信的函數(shù)如CreateFile()、GetCommState()等,我們?cè)诘?2和13章中詳解講解過(guò),所以代碼中就只是添加了注釋。變量hComm是全局的,類(lèi)型為HANDLE,用來(lái)保存串口設(shè)備句柄。函數(shù)OpenComm()需要的參數(shù)包括:pPort:串口號(hào)。函數(shù)成功翻開(kāi)串口會(huì)返回TRUE。2.寫(xiě)入串口聲明和定義串口寫(xiě)入函數(shù)WriteComm(),實(shí)現(xiàn)如下:函數(shù)WriteComm()的參數(shù)包括:pData:要寫(xiě)入串口的數(shù)據(jù)。函數(shù)返回實(shí)際寫(xiě)入串口的字節(jié)數(shù)。3.讀取串口聲明和定義串口讀取函數(shù)ReadComm(),實(shí)現(xiàn)如下:參數(shù)含義和返回值同串口寫(xiě)入函數(shù)WriteComm()。4.關(guān)閉串口聲明和定義串口關(guān)閉函數(shù)CloseComm(),實(shí)現(xiàn)如下:函數(shù)簡(jiǎn)單的關(guān)閉了串口設(shè)備句柄。最后來(lái)看一下串口操作頭文件comm.h里各個(gè)函數(shù)的聲明,如下:15.6.3連接串口“參數(shù)配置〞中各個(gè)控件的ID如圖15.32所示。圖15.32參數(shù)配置中控件ID為4個(gè)組合框添加關(guān)聯(lián)變量,類(lèi)型和變量名如圖15.33所示。圖15.33關(guān)聯(lián)變量類(lèi)型和變量名設(shè)計(jì)時(shí)為所有組合框?qū)傩缘腄ata選項(xiàng)卡中添入相關(guān)的數(shù)據(jù),如圖15.34所示。圖15.34組合框?qū)傩訢ata設(shè)置添加按鈕“連接串口〞的單擊響應(yīng)函數(shù)OnConcomm(),編寫(xiě)代碼如下:響應(yīng)函數(shù)OnConcomm()為了翻開(kāi)串口,需要獲取用戶輸入的串口號(hào)、波特率等信息,然后使用封裝好的函數(shù)OpenComm()翻開(kāi)串口。翻開(kāi)成功后還要通過(guò)函數(shù)WriteComm()寫(xiě)入AT指令,驗(yàn)證與短信貓的聯(lián)通情況,返回OK時(shí)說(shuō)明連接正常。15.6.4PDU模式短信“短信發(fā)送〞局部,各個(gè)控件ID如圖15.35所示。圖15.35短信發(fā)送局部控件ID給ID為IDC_PHONENUM和IDC_CONTEXT的兩個(gè)文本框添加關(guān)聯(lián)變量m_phonenum和m_context,類(lèi)型為CString。1.發(fā)送方式1為按鈕“發(fā)送方式1〞添加單擊響應(yīng)函數(shù)OnSendpdumsg(),代碼編寫(xiě)如下:乍看之下代碼是比較長(zhǎng)的,實(shí)際上主要完成4個(gè)工作:設(shè)置發(fā)信模式、獲取短信中心號(hào)碼、發(fā)送“AT+CMGS〞命令、發(fā)送
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度大型酒店水電設(shè)施升級(jí)改造合同范本3篇
- 2024年公司企業(yè)管理制度
- 2024集成電路設(shè)計(jì)與制造許可合同
- 2024運(yùn)輸合同海上貨物運(yùn)輸合同
- 2024年4月全國(guó)自考《管理信息系統(tǒng)》試題
- 2024環(huán)??萍脊九c政府廢棄物處理項(xiàng)目合同
- 群體學(xué)習(xí)理論視角下的教研群體認(rèn)知發(fā)展的研究與實(shí)踐
- 2024款自行車(chē)買(mǎi)賣(mài)標(biāo)準(zhǔn)協(xié)議范本下載版
- 動(dòng)物藥理知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋遼寧農(nóng)業(yè)職業(yè)技術(shù)學(xué)院
- 公安保密知識(shí)培訓(xùn)課件
- 《經(jīng)濟(jì)學(xué)方法論》課件
- 人教版五年級(jí)上冊(cè)數(shù)學(xué)教學(xué)總結(jié)
- XX行業(yè)發(fā)展趨勢(shì)分析報(bào)告未來(lái)五年的機(jī)遇與挑戰(zhàn)ppt模板
- 110kv各類(lèi)型變壓器的計(jì)算單
- 小升初語(yǔ)文文言文閱讀歷年真題50題(含答案解析)
- 自動(dòng)化設(shè)備設(shè)計(jì)規(guī)范
- 辦公室干部學(xué)習(xí)對(duì)新時(shí)代辦公廳工作重要指示心得體會(huì)
- 中小學(xué)人工智能課程指南及教材介紹
- 內(nèi)分泌專(zhuān)業(yè)臨床路徑大全
- 做一個(gè)遵紀(jì)守法的好學(xué)生主題班會(huì)-課件
- 加油站反恐專(zhuān)項(xiàng)經(jīng)費(fèi)保障制度
評(píng)論
0/150
提交評(píng)論