當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:移動通信中的短消息是人們無線溝通的重要方式,更以其方便、可靠性得到廣泛應(yīng)用。針對嵌入式無線路由的迅速普及,為實現(xiàn)良好人機交互,提出將短消息功能植入可使用上網(wǎng)卡的無線路由的動態(tài)Web中。用C語言進行CG

摘要:移動通信中的短消息是人們無線溝通的重要方式,更以其方便、可靠性得到廣泛應(yīng)用。針對嵌入式無線路由的迅速普及,為實現(xiàn)良好人機交互,提出將短消息功能植入可使用上網(wǎng)卡的無線路由的動態(tài)Web中。用C語言進行CGI程序設(shè)計,采用PDU短信模式,實現(xiàn)無線路由設(shè)備中短信的收發(fā)。實驗結(jié)果也證實了此方案的正確性、實用性和可擴展性。
關(guān)鍵詞:無線路由;動態(tài)Web;CGI;短信;PDU

    為實現(xiàn)良好的人機交互及遠程控制功能,如今大部分嵌入式Linux設(shè)備均引入Web服務(wù)器技術(shù),無線路由的迅速普及更體現(xiàn)了這一點。Goa head是一款主要面向嵌入式系統(tǒng)的Web服務(wù)器,因其支持asp、cgi且兼容性良好備受無線路由等嵌入式設(shè)備的青睞。而通用網(wǎng)關(guān)接口(CGI)則是Web服務(wù)器與為添加功能編寫的外部程序之間的一個接口。市面普及的無線路由器,管理界面鮮有收發(fā)短信的功能,這樣用戶可用功能受到限制。通過這個CGI接口實現(xiàn)從Web端編輯短信并發(fā)送,及上網(wǎng)卡接收短信并顯示與Web端等功能,實現(xiàn)了無線路由更智能的一面。

1 嵌入式無線路由中的CGI技術(shù)
1.1 CGI工作原理
   
通用網(wǎng)關(guān)接口是Web服務(wù)器和外部擴展程序之間的一個接口。CGI可以使編寫的程序處理WWW上客戶端送來的表單和數(shù)據(jù)并對此做出相應(yīng)反應(yīng)。而且基于CGI的網(wǎng)頁應(yīng)用程序可工作于不同的瀏覽器平臺,兼容性良好。
    CGI程序的工作一般分為以下幾個步驟:
    1)客戶端發(fā)出請求;
    2)Web服務(wù)器激活相應(yīng)的CGI程序;
    3)CGI程序?qū)蛻舳说恼埱笞龀龇磻?yīng);
    4)Web服務(wù)器將CGI程序的處理結(jié)果傳送給客戶端;
    5)Web服務(wù)器中斷和客戶端瀏覽器的連接;
    6)Web服務(wù)器將CGI程序的輸出顯示在瀏覽器的窗體上。
1.2 CGIC函數(shù)庫
    CGIC是用來生成基于CGI的WWW應(yīng)用程序的C語言函數(shù)庫,C語言編程是一項復(fù)雜且容易出錯的工作,選擇合適的庫CGIC成為必要。一般的Linux系統(tǒng)都支持ANSIC,增加相應(yīng)的庫函數(shù)和相應(yīng)的h文件就可以實現(xiàn)CGI;而CGIC是一個完全符合ANSIC標(biāo)準(zhǔn)的程序庫,在任何支持ANSIC標(biāo)準(zhǔn)的系統(tǒng)平臺上都可以使用。
    它有以下功能:
    1)對數(shù)據(jù)進行語法分析;
    2)接收以GET和POST兩種方式發(fā)送的數(shù)據(jù);
    3)把FORM中的不同域連接成連續(xù)的串;
    4)為檢索FORM數(shù)據(jù)而提供字符串,整數(shù),浮點以及單項和多項選擇功能;
    5)為數(shù)字字段提供邊界檢測;
    6)把CGI環(huán)境變量加載到非空的C串中;
    7)為調(diào)試而捕捉CGI狀態(tài);
    8)提供相對安全的系統(tǒng)調(diào)用功能。
    CGIC本身提供了一個main()函數(shù),CGIC的用戶編寫的程序代碼應(yīng)該放在函數(shù)cgiMain()中。CGIC的main()函數(shù)主要用來完成CGI程序的初始化工作、獲取客戶端用戶的輸入以及相應(yīng)的解碼工作,最后main()函數(shù)會調(diào)用cgiMain()以執(zhí)行用戶編寫的程序代碼。

2 短信功能設(shè)計
   
短信息服務(wù)作為目前最方便快捷的交流方式,工作原理也變得越來越標(biāo)準(zhǔn)化。通常對短消息的控制有3種實現(xiàn)途徑:Block模式,基于AT命令的Text模式和基于AT命令的PDU模式。使用Text模式收發(fā)短信代碼簡單,但最大的缺點是不能收發(fā)中文短信;而PDU模式不僅支持中文短信,也能發(fā)送英文短信。本文主要使用的是在Linux下用C語言來實現(xiàn)PDU模式的SMS收發(fā)。
2.1 PDU模式下短信發(fā)送原理
   
一個完整的SMS消息所包含的所有報頭信息被以二進制字符串格式傳送。這個二進制由十六進制格式的IA5字符組合而成。一般的PDU碼由13項組成:1)短信息中心地址長度,2位十六進制數(shù)(1字節(jié));2)短信息中心號碼類型,2位十六進制數(shù);3)短信息中心號碼,2)和3)的長度由1)中數(shù)據(jù)決定;4)文件頭字節(jié),2位十六進制數(shù);5)信息類型,2位十六進制數(shù);6)被叫號碼長度,2位十六進制數(shù);7)被叫號碼類型,2位十六進制數(shù),取值同短信息中心號碼類型;8)被叫號碼,長度由被叫號碼長度中的數(shù)據(jù)決定;9)協(xié)議標(biāo)識,2位十六進制數(shù);10)數(shù)據(jù)編碼方案,2位十六進制數(shù);11)有效期,2位十六進制數(shù);12)用戶數(shù)據(jù)長度,2位十六進制數(shù)。13)用戶數(shù)據(jù),其長度由用戶數(shù)據(jù)長度中的數(shù)據(jù)決定。數(shù)據(jù)編碼方案中設(shè)定采用UCS2編碼,這里是中英文的Unicode字符。
    常用AT命令如下表所示:


2.2 PDU模式編碼
   
用PDU模式收發(fā)短消息可以使用3種編碼:7-bit編碼、8-bit編碼和USC2編碼。7-bit編碼用于發(fā)送普通的ASCII字符;8-bit編碼通常用于發(fā)送數(shù)據(jù)消息,如圖片或鈴聲等;USC2編碼用于發(fā)送Unicode字符。由于短信需實現(xiàn)中文短信的發(fā)送,所以選擇用UCS2編碼,即中文Unico de碼。這些編碼均有標(biāo)準(zhǔn)算法。

3 軟件設(shè)計
3.1 串口通信
   
嵌入式無線路由是通過串口發(fā)送一系列AT命令實現(xiàn)與無線路由的各種通信,短消息的收發(fā)也是通過這種方式。串口通信是計算機與其他設(shè)備通信的常用方法,本系統(tǒng)采用libcsms這個基于Linux的串行通信函數(shù)庫,來實現(xiàn)串行接口的異步事件驅(qū)動并發(fā)。采用該方法,只需要在cgi中編寫數(shù)據(jù)處理函數(shù),大大提高了工作效率。
3.2 短信發(fā)送頁面設(shè)計
   
Html代碼發(fā)送短信部分,為簡化cgi程序工作,在web端通過腳本函數(shù)ucs2_code()將短信內(nèi)容先做處理。ucs2_code()函數(shù)具體功能為:讀取短信內(nèi)容,循環(huán)獲取短信的每一位并通過charCodeAt()和toString()方法結(jié)合轉(zhuǎn)換為單獨的Unicode碼,再根據(jù)長度補齊;如此得到整個短信內(nèi)容的Unicode碼及此編碼的長度。
    再通過form提交表單,提交內(nèi)容有:手機號碼,手機內(nèi)存寫入狀態(tài),處理后的短信Unicode碼和長度。部分代碼如下:

3.3 CGI發(fā)送短消息
    Cgi發(fā)送短信主函數(shù)處理消息部分通過環(huán)境變量,讀取form表單提交的值;先讀取手機號碼,若成功則處理手機號碼后繼續(xù)讀取短信內(nèi)容的Unicode碼,若成功則讀取短信長度,若成功則將短消息參數(shù)結(jié)構(gòu)中的SMSC地址的變量賦相應(yīng)值。再讀取短信是發(fā)送還是保存的狀態(tài)。如此完成整個web頁面短消息的處理過程。
    發(fā)送短信主函數(shù)部分代碼如下所示:

   
    發(fā)送短消息在gsmSendMessage中實現(xiàn),先根據(jù)PDU參數(shù),編碼PDU串;再通過PDU串和其中SMSC信息的長度,生成發(fā)送命令。向串口輸入命令,根據(jù)返回值ans判斷模塊是否準(zhǔn)備就緒,是則繼續(xù)輸入PDU串,返回TRUE,則發(fā)送成功;否則返回FALSE。
    發(fā)送短信流程圖如圖1所示。



4 結(jié)束語
   
設(shè)計的創(chuàng)新之處在于提供了基于CGI的嵌入式無線路由中上網(wǎng)卡模塊的短信收發(fā)功能的設(shè)計方法。短信收發(fā)采用PDU模式處理中文、英文短信;功能是通過用C語言編寫的CGI實現(xiàn)。在web端與iavascript結(jié)合,實現(xiàn)動態(tài)web的高效運行。對于基于Linux的無線路由設(shè)備已慢慢滲透人們?nèi)沼玫母鱾€角落成為必需品,如果將短信收發(fā)功能添加其中,更能增加此設(shè)備智能的功能,為用戶提供更便利的服務(wù)。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉