一種模擬串口測試方法和裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種模擬串口測試方法和裝置,其中方法包括:接收客戶端發(fā)送的調(diào)制解調(diào)器命令語言AT指令;讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令;確認(rèn)所述測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述客戶端,若否,則確認(rèn)所述AT指令是否包含在所述測試數(shù)據(jù)文件中的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端,否則發(fā)送表示未匹配成功的信息給所述客戶端。以上方案采用客戶端的開發(fā)與調(diào)試可以在開發(fā)過程中及時得到調(diào)試,從而提高整體開發(fā)進(jìn)度。
【專利說明】一種模擬串口測試方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,特別涉及一種模擬串口測試方法和裝置。
【背景技術(shù)】
[0002]無線網(wǎng)卡的使用,需要客戶端來支持,見圖1,它包括無線網(wǎng)卡設(shè)備和客戶端。它們之間信息交互采用通用通信接口 ATTENTION指令(調(diào)制解調(diào)器命令語言,簡稱AT指令)來進(jìn)行通信,其通信連接方式在現(xiàn)有技術(shù)中采用USB (Universal Serial BUS,通用串行總線)/RS232 (美國電子工業(yè)協(xié)會 EIA 推薦標(biāo)準(zhǔn) 232, Electronic Industry Association,)等物理端口來控制。
[0003]無線網(wǎng)卡與客戶端之間的AT指令包括三大類,第一種是客戶端發(fā)送到無線網(wǎng)卡的AT指令(Request,請求);第二種是無線網(wǎng)卡發(fā)送到客戶端的AT指令處理結(jié)果(Response,響應(yīng));第三種是無線網(wǎng)卡發(fā)送到客戶端的自動上報的指令(Indication,指示;本申請文件使用URC, Unsolicited result code,主動上報的結(jié)果編碼信息來表示)。舉例說明以上AT指令種類,如:客戶端下發(fā)開機請求“AT+CFUN=1 ”,無線網(wǎng)卡響應(yīng)“0K”,那么表示開機成功。
[0004]客戶端在控制無線網(wǎng)卡時,需要按照網(wǎng)卡的AT流程規(guī)范的特定要求和順序,采用正確的回復(fù)才能繼續(xù)后繼的正常流程(如開機流程中要求關(guān)閉回顯)。但也有些AT指令的請求與響應(yīng)不會影響流程,如開啟分組域網(wǎng)絡(luò)注冊狀態(tài)自動上報,它可以使用定時輪詢的方式來實現(xiàn)相同的功能。
[0005]在軟/硬件的實際開發(fā)中,客戶端軟件系統(tǒng)、無線網(wǎng)卡硬件以及基帶軟件一般同時開發(fā),由于開發(fā)進(jìn)度的原因,可能出現(xiàn)沒有硬件或基帶軟件來支持客戶端的同步調(diào)試,因此客戶端的開發(fā)與調(diào)試無法在開發(fā)過程中及時得到調(diào)試影響整體開發(fā)進(jìn)度。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例提供了一種模擬串口測試方法和裝置,用于客戶端的測試,使客戶端的開發(fā)調(diào)試工作能夠隨時得到支持,提升整體開發(fā)進(jìn)度。
[0007]一種模擬串口測試方法,包括:
[0008]接收客戶端發(fā)送的調(diào)制解調(diào)器命令語言AT指令;
[0009]讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令;
[0010]確認(rèn)所述測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述客戶端,若否,則確認(rèn)所述AT指令是否包含在所述測試數(shù)據(jù)文件中的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端,否則發(fā)送表示未匹配成功的信息給所述客戶端。
[0011 ] 可選地,所述讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令;確認(rèn)所述測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述客戶端,若否,則確認(rèn)所述AT指令是否包含在所述測試數(shù)據(jù)文件中的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端,否則發(fā)送表示未匹配成功的信息給所述客戶端包括:
[0012]依次讀取預(yù)存的各測試數(shù)據(jù)文件,并解析得到測試數(shù)據(jù)文件中的測試指令,將所述測試指令逐條作為當(dāng)前節(jié)點;確認(rèn)當(dāng)前節(jié)點是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述客戶端,若否,則將所述AT指令與當(dāng)前節(jié)點進(jìn)行匹配;若匹配失敗,則發(fā)送表示未匹配成功的信息給所述客戶端,若匹配成功,則將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述客戶端;或者,
[0013]讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令,然后存儲所述測試指令;確認(rèn)當(dāng)前存儲點的測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述客戶端,若否,則確認(rèn)所述AT指令是否包含在所述當(dāng)前存儲點的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端,否則發(fā)送表示未匹配成功的信息給所述客戶端。
[0014]優(yōu)選地,在執(zhí)行:將所述URC指令發(fā)送給所述客戶端、將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述客戶端、將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端中的任意一項之前還包括:
[0015]依據(jù)配置的當(dāng)前節(jié)點的延遲要求設(shè)置并啟動定時器,在定時器溢出后將所述URC指令發(fā)送給所述客戶端,或者,在定時器溢出后將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述客戶端,或者,在定時器溢出后將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端。
[0016]優(yōu)選地,在定時器啟動后定時器溢出前,若接收到來自客戶端的中斷請求,還包括:
[0017]停止定時器計時,并使用中斷成功消息代替所述與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容或者代替所述與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端。
[0018]優(yōu)選地,所述測試數(shù)據(jù)文件為可擴展標(biāo)記語言XML文件;所述方法還包括:
[0019]接受文本編輯器對XML文件的修改;或者,接收與AT指令封裝格式不同的XML文件更新信息,并依據(jù)所述XML文件更新信息更新其指定的預(yù)置XML文件。
[0020]優(yōu)選地,所述方法,還包括:
[0021]創(chuàng)建兩個或者兩個以上的監(jiān)聽對象,在客戶端啟動后以輪詢方式查找可連接的客戶端,并建立監(jiān)聽對象與可連接的客戶端之間的對應(yīng)關(guān)系;
[0022]所述將所述URC指令發(fā)送給所述客戶端包括:將所述URC指令采用廣播方式發(fā)送給各客戶端,由客戶端篩選與其對應(yīng)的URC指令;
[0023]所述表示未匹配成功的信息、所述與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容、所述與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容以及中斷成功消息,按照所述對應(yīng)關(guān)系發(fā)送給對應(yīng)的客戶端。
[0024]一種模擬串口測試裝置,包括:
[0025]通信控制器、流程控制器、文件解析器、存儲器、
[0026]通信控制器,用于接收客戶端發(fā)送的調(diào)制解調(diào)器命令語言AT指令并發(fā)送給流程控制器;將接收到的來自流程控制器的信息發(fā)送給客戶端;[0027]存儲器,用于存儲測試數(shù)據(jù)文件;
[0028]文件解析器,用于讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令;
[0029]流程控制器,用于確認(rèn)所述測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述通信控制器,若否,則確認(rèn)所述AT指令是否包含在所述測試數(shù)據(jù)文件中的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器,否則發(fā)送表示未匹配成功的信息給所述通信控制器。
[0030]可選地,所述文件解析器,具體用于依次讀取預(yù)存的各測試數(shù)據(jù)文件,并解析得到測試數(shù)據(jù)文件中的測試指令,將所述測試指令逐條作為當(dāng)前節(jié)點;
[0031]所述流程控制器,具體用于確認(rèn)當(dāng)前節(jié)點是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述通信控制器,若否,則將所述AT指令與當(dāng)前節(jié)點進(jìn)行匹配;若匹配失敗,則發(fā)送表示未匹配成功的信息給所述通信控制器,若匹配成功,則將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述通信控制器;
[0032]或者,所述文件解析器,具體用于讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令,然后存儲所述測試指令;
[0033]所述流程控制器,具體用于確認(rèn)當(dāng)前存儲點的測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述通信控制器,若否,則確認(rèn)所述AT指令是否包含在所述當(dāng)前存儲點的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器,否則發(fā)送表示未匹配成功的信息給所述通信控制器。
[0034]優(yōu)選地,所述流程控制器,還用于在執(zhí)行:將所述URC指令發(fā)送給所述通信控制器、將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述通信控制器、將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器中的任意一項之前,依據(jù)配置的當(dāng)前節(jié)點的延遲要求設(shè)置并啟動定時器,在定時器溢出后將所述URC指令發(fā)送給所述通信控制器,或者,在定時器溢出后將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述通信控制器,或者,在定時器溢出后將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器;
[0035]所述模擬串口測試裝置還包括:定時器,用于按照流程控制器的指示進(jìn)行計時。
[0036]優(yōu)選地,所述通信控制器,還用于接收來自客戶端的中斷請求,并將中斷請求發(fā)送給流程控制器;
[0037]流程控制器,還用于若中斷請求在定時器啟動后定時器溢出前收到,則停止定時器計時,并使用中斷成功消息代替所述與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容或者代替所述與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器。
[0038]優(yōu)選地,所述測試數(shù)據(jù)文件為可擴展標(biāo)記語言XML文件;
[0039]所述模擬串口測試裝置還包括:文本編輯器,用于對存儲器中的XML文件進(jìn)行修改;或者,
[0040]所述模擬串口測試裝置的通信控制器,還用于接收來自客戶端的與AT指令封裝格式不同的XML文件更新信息,并將XML文件更新信息發(fā)送給流程控制器;
[0041]流程控制器,還用于依據(jù)所述XML文件更新信息更新其指定的預(yù)置XML文件。
[0042]優(yōu)選地,所述通信控制器包括:廣播器、指令轉(zhuǎn)發(fā)器、應(yīng)答發(fā)送器;[0043]指令轉(zhuǎn)發(fā)器,用于創(chuàng)建兩個或者兩個以上的監(jiān)聽對象,在客戶端啟動后以輪詢方式查找可連接的客戶端,將來自客戶端的信息發(fā)送給流程控制器,所述來自客戶端的信息包括:AT指令、中斷請求、XML文件更新信息中的至少一項;
[0044]流程控制器,具體用于將URC指令發(fā)送給廣播器,將URC以外的消息發(fā)送給應(yīng)答發(fā)送器,所述URC以外的消息包括:表示未匹配成功的信息、與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容、所述與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容、中斷成功消息中的至少一項;
[0045]應(yīng)答發(fā)送器,用于建立監(jiān)聽對象與可連接的客戶端之間的對應(yīng)關(guān)系,并按照所述對應(yīng)關(guān)系將接收到的所述URC以外的消息發(fā)送給對應(yīng)的客戶端;
[0046]所述廣播器,用于將接收到的URC指令采用廣播方式發(fā)送給各客戶端,由客戶端篩選與其對應(yīng)的URC指令。
[0047]從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點:采用模擬無線網(wǎng)卡的方式對客戶端進(jìn)行測試,可以不必等待硬件或基帶軟件開發(fā)完畢也不必依賴其支持,因此客戶端的開發(fā)與調(diào)試可以在開發(fā)過程中及時得到調(diào)試,從而提高整體開發(fā)進(jìn)度。
【專利附圖】
【附圖說明】
[0048]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0049]圖1為現(xiàn)有技術(shù)無線網(wǎng)卡的測試系統(tǒng)結(jié)構(gòu)示意圖;
[0050]圖2為本發(fā)明實施例方法流程示意圖;
[0051]圖3為本發(fā)明實施例模擬串口測試系統(tǒng)結(jié)構(gòu)示意圖;
[0052]圖4為本發(fā)明實施例模擬串口測試裝置結(jié)構(gòu)示意圖;
[0053]圖5為本發(fā)明實施例模擬串口測試裝置結(jié)構(gòu)示意圖;
[0054]圖6為本發(fā)明實施例模擬串口測試裝置結(jié)構(gòu)示意圖;
[0055]圖7為本發(fā)明實施例模擬串口測試裝置結(jié)構(gòu)示意圖;
[0056]圖8為本發(fā)明實施例模擬串口測試裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0057]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護(hù)的范圍。
[0058]本發(fā)明實施例提供了一種模擬串口測試方法,如圖2和圖3所示,本發(fā)明實施例的執(zhí)行主體是模擬串口測試裝置(模擬器),包括:
[0059]201:接收客戶端發(fā)送的調(diào)制解調(diào)器命令語言AT指令;
[0060]可以理解的是在執(zhí)行201之前,需要按照與客戶端約定的通信方式與客戶端建立通信連接;以上通信方式可選方案很多,本發(fā)明實施例優(yōu)選使用軟總線響應(yīng)程序(D-BusMethod Reply)模擬無線網(wǎng)卡與客戶端進(jìn)行通信。
[0061]D-Bus 是一種 IPC (Inter-Process Communication,進(jìn)程間通信)機制。
[0062]D-BUS支持一對一和多對多的對等通訊。在一對一的直接通訊時,兩個應(yīng)用程序連接在一起。在多對多的通訊時,這就需要一個叫D-BUS daemon (后臺)的角色去分轉(zhuǎn);在一個應(yīng)用程序發(fā)消息給另外一個應(yīng)用程序時,消息先到達(dá)后臺,再由后臺將信息發(fā)送到目的應(yīng)用程序。D-BUS后臺充當(dāng)路由器的角色。D-Bus具有避免來回傳遞信息并且允許異步操作的特性。因此雖然在應(yīng)用程序(Application)和Daemon之間是通過套接字(socket)實現(xiàn)通信的,但是去掉了 socket的循環(huán)等待,保證了操作的實時高效。D-Bus還提供了已封裝底層特效的API (Application Programming Interface,應(yīng)用程序編程接口函數(shù))供模擬通信使用。
[0063]202:讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令;
[0064]可選地,上述202具體可以是:依次讀取預(yù)存的各測試數(shù)據(jù)文件,并解析得到測試數(shù)據(jù)文件中的測試指令,將上述測試指令逐條作為當(dāng)前節(jié)點;也可以是讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令,然后存儲上述測試指令;至于存儲的方式可以采用鏈表、數(shù)組等各種形式,本發(fā)明實施例對此不予限定。
[0065]測試數(shù)據(jù)文件是存儲測試數(shù)據(jù)的文件,在本發(fā)明實施例中會以XML (extensiblemarkup language,,可擴展標(biāo)記語言)文件為例進(jìn)行說明。存儲測試數(shù)據(jù)的文件具體格式可以有很多,例如可以是TXT文件(Text File,文本文件)、數(shù)據(jù)庫文件等,本發(fā)明實施例對此不作限制。
[0066]需要說明的是,上述201和202相互之間并沒有邏輯先后次序,因此以上步驟的編號不應(yīng)理解為在時間和/或邏輯上存在執(zhí)行的先后次序。
[0067]203:確認(rèn)上述測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將上述URC指令發(fā)送給上述客戶端,若否,則確認(rèn)上述AT指令是否包含在上述測試數(shù)據(jù)文件中的測試指令中,若包含,則將與上述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給上述客戶端,否則發(fā)送表示未匹配成功的信息給上述客戶端。
[0068]上述203的具體實現(xiàn)方案至少有如下兩種,分別為:
[0069]依次讀取預(yù)存的各測試數(shù)據(jù)文件,并解析得到測試數(shù)據(jù)文件中的測試指令,將上述測試指令逐條作為當(dāng)前節(jié)點;確認(rèn)當(dāng)前節(jié)點是否為主動上報的結(jié)果編碼信息URC指令,若是,則將上述URC指令發(fā)送給上述客戶端,若否,則將上述AT指令與當(dāng)前節(jié)點進(jìn)行匹配;若匹配失敗,則發(fā)送表示未匹配成功的信息給上述客戶端,若匹配成功,則將與上述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給上述客戶端;
[0070]或者,讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令,然后存儲上述測試指令;確認(rèn)當(dāng)前存儲點的測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將上述URC指令發(fā)送給上述客戶端,若否,則確認(rèn)上述AT指令是否包含在上述當(dāng)前存儲點的測試指令中,若包含,則將與上述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給上述客戶端,否則發(fā)送表示未匹配成功的信息給上述客戶端。
[0071]本發(fā)明實施例采用模擬無線網(wǎng)卡的方式對客戶端進(jìn)行測試,可以不必等待硬件或基帶軟件開發(fā)完畢也不必依賴其支持,因此客戶端的開發(fā)與調(diào)試可以在開發(fā)過程中及時得到調(diào)試,從而提高整體開發(fā)進(jìn)度。[0072]進(jìn)一步地,本發(fā)明實施例還提供了 AT指令的響應(yīng)與超時處理的實現(xiàn)方案,具體如下:在執(zhí)行:將上述URC指令發(fā)送給上述客戶端、將與上述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給上述客戶端、將與上述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給上述客戶端中的任意一項之前還包括:
[0073]依據(jù)配置的當(dāng)前節(jié)點的延遲要求設(shè)置并啟動定時器,在定時器溢出后將上述URC指令發(fā)送給上述客戶端,或者,在定時器溢出后將與上述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給上述客戶端,或者,在定時器溢出后將與上述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給上述客戶端。
[0074]進(jìn)一步地,本發(fā)明實施例還提供了 AT指令的響應(yīng)與Abort (中斷)處理的實現(xiàn)方案,具體如下:在定時器啟動后定時器溢出前,若接收到來自客戶端的中斷請求,還包括:
[0075]停止定時器計時,并使用中斷成功消息代替上述與上述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容或者代替上述與上述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給上述客戶端。
[0076]基于以上實施例的介紹,AT的流程控制文件可以基于XML格式的文件,它包含的主要關(guān)鍵字可以有很多,以下給出了幾個舉例:
[0077]unknow:在XML文件的測試?yán)墓?jié)點中(也即XML文件的測試指令中)沒有與接收到的AT指令相匹配的AT響應(yīng)時,響應(yīng)該AT指令(unknow)。采用上述關(guān)鍵字的優(yōu)點:因客戶端可能會下發(fā)很多AT請求,而作為測試與開發(fā)時,僅僅需要關(guān)心當(dāng)前操作的功能,是可以忽略其它不關(guān)心的AT請求的,而unknown就是為此而設(shè)計。
[0078]timeout:若沒有定義AT處理溢出時間(秒),則立即返回。在實際使用中協(xié)議??赡芤蚰撤N原因會造成AT響應(yīng)超時,本發(fā)明實施例中的timeout項的值則可以用來啟動定時器,在定時器溢出后,才將reCV_heX的內(nèi)容(后面介紹)發(fā)送到客戶端,從而來模擬AT響應(yīng)超時的功能。
[0079]type:AT 指令類型。
[0080]repeat:AT指令重復(fù)執(zhí)行次數(shù),優(yōu)點:可以用于壓力測試。
[0081]send_hex:來自客戶端的AT指令內(nèi)容,可以采用十六進(jìn)制表示方式,用于匹配客戶端AT指令。
[0082]recv_hex:AT響應(yīng)指令或URC的內(nèi)容(采用十六進(jìn)制表示方式),由type值決定(O =URC指令,非O:非URC指令)。
[0083]進(jìn)一步地,本發(fā)明實施例還提供了 XML文件更新的實現(xiàn)方式,具體如下:上述測試數(shù)據(jù)文件為可擴展標(biāo)記語言XML文件;上述方法還包括:
[0084]接受文本編輯器對XML文件的修改;或者,接收與AT指令封裝格式不同的XML文件更新信息,并依據(jù)上述XML文件更新信息更新其指定的預(yù)置XML文件。
[0085]更具體地,本發(fā)明實施例還給出了 XML文件更新時XML的具體格式及其實現(xiàn)方案,在使用過程中XML文件需要修改、升級XML配置文件時,可使用文本編輯器直接修改XML文件;本發(fā)明也支持客戶端遠(yuǎn)程升級XML配置文件,為了設(shè)計成與USB虛擬I串口、軟總線無關(guān)(與AT指令使用相同的解析單元),把需升級的內(nèi)容采用自定義AT指令的封裝格式傳遞給模擬器,模擬器AT接收單元把解析出的內(nèi)傳遞給XML升級單元對指定編號的配置文件進(jìn)行重寫。對多個XML文件及更新方式由“N0.”字段來識別。[0086]XML內(nèi)容的AT指令的封裝格式,如下表1所示:
[0087]表1
[0088]
【權(quán)利要求】
1.一種模擬串口測試方法,其特征在于,包括: 接收客戶端發(fā)送的調(diào)制解調(diào)器命令語言AT指令; 讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令; 確認(rèn)所述測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述客戶端,若否,則確認(rèn)所述AT指令是否包含在所述測試數(shù)據(jù)文件中的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端,否則發(fā)送表示未匹配成功的信息給所述客戶端。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述確認(rèn)所述測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述客戶端,若否,則確認(rèn)所述AT指令是否包含在所述測試數(shù)據(jù)文件中的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端,否則發(fā)送表示未匹配成功的信息給所述客戶端包括: 依次讀取預(yù)存的各測試數(shù)據(jù)文件,并解析得到測試數(shù)據(jù)文件中的測試指令,將所述測試指令逐條作為當(dāng)前節(jié)點;確認(rèn)當(dāng)前節(jié)點是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述客戶端,若否,則將所述AT指令與當(dāng)前節(jié)點進(jìn)行匹配;若匹配失敗,則發(fā)送表示未匹配成功的信息給所述客戶端,若匹配成功,則將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述客戶端;或者, 讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令,然后存儲所述測試指令;確認(rèn)當(dāng)前存儲點的測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述客戶端,若否,則確認(rèn)所述AT指令是否包含在所述當(dāng)前存儲點的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端,否則發(fā)送表示未匹配成功的信息給所述客戶端。
3.根據(jù)權(quán)利要求2所述方法,其特征在于,在執(zhí)行:將所述URC指令發(fā)送給所述客戶端、將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述客戶端、將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端中的任意一項之前還包括: 依據(jù)配置的當(dāng)前節(jié)點的延遲要求設(shè)置并啟動定時器,在定時器溢出后將所述URC指令發(fā)送給所述客戶端,或者,在定時器溢出后將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述客戶端,或者,將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端。
4.根據(jù)權(quán)利要求3所述方法,其特征在于,在定時器啟動后定時器溢出前,若接收到來自客戶端的中斷請求,還包括: 停止定時器計時,并使用中斷成功消息代替所述與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容或者代替所述與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述客戶端。
5.根據(jù)權(quán)利要求1至4任意一項所述方法,其特征在于,所述測試數(shù)據(jù)文件為可擴展標(biāo)記語言XML文件;所述方法還包括: 接受文本編輯器對XML文件的修改;或者,接收與AT指令封裝格式不同的XML文件更新信息,并依據(jù)所述XML文件更新信息更新其指定的預(yù)置XML文件。
6.根據(jù)權(quán)利要求1至4任意一項所述方法,其特征在于,還包括: 創(chuàng)建兩個或者兩個以上的監(jiān)聽對象,在客戶端啟動后以輪詢方式查找可連接的客戶端,并建立監(jiān)聽對象與可連接的客戶端之間的對應(yīng)關(guān)系; 所述將所述URC指令發(fā)送給所述客戶端包括:將所述URC指令采用廣播方式發(fā)送給各客戶端,由客戶端篩選與其對應(yīng)的URC指令; 所述表示未匹配成功的信息、所述與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容、所述與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容以及中斷成功消息,按照所述對應(yīng)關(guān)系發(fā)送給對應(yīng)的客戶端。
7.一種模擬串口測試裝置,其特征在于,包括: 通信控制器、流程控制器、文件解析器、存儲器; 通信控制器,用于接收客戶端發(fā)送的調(diào)制解調(diào)器命令語言AT指令并發(fā)送給流程控制器;將接收到的來自流程控制器的信息發(fā)送給客戶端; 存儲器,用于存儲測試數(shù)據(jù)文件; 文件解析器,用于讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令; 流程控制器,用于確認(rèn)所述測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述通信控制器,若否,則確認(rèn)所述AT指令是否包含在所述測試數(shù)據(jù)文件中的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器,否則發(fā)送表示未匹配成功的信息給所述通信控制器。
8.根據(jù)權(quán)利要求7所述模擬串口測試裝置,其特征在于, 所述文件解析器,具體用于依次讀取預(yù)存的各測試數(shù)據(jù)文件,并解析得到測試數(shù)據(jù)文件中的測試指令,將所述測試指令逐條作為當(dāng)前節(jié)點; 所述流程控制器,具體用于確認(rèn)當(dāng)前節(jié)點是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述通信控制器,若否,則將所述AT指令與當(dāng)前節(jié)點進(jìn)行匹配;若匹配失敗,則發(fā)送表示未匹配成功的信息給所述通信控制器,若匹配成功,則將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述通信控制器; 或者,所述文件解析器,具體用于讀取并解析預(yù)存的各測試數(shù)據(jù)文件,得到測試數(shù)據(jù)文件中的測試指令,然后存儲所述測試指令; 所述流程控制器,具體用于確認(rèn)當(dāng)前存儲點的測試指令是否為主動上報的結(jié)果編碼信息URC指令,若是,則將所述URC指令發(fā)送給所述通信控制器,若否,則確認(rèn)所述AT指令是否包含在所述當(dāng)前存儲點的測試指令中,若包含,則將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器,否則發(fā)送表示未匹配成功的信息給所述通信控制器。
9.根據(jù)權(quán)利要求8所述模擬串口測試裝置,其特征在于, 所述流程控制器,還用于在執(zhí)行:將所述URC指令發(fā)送給所述通信控制器、將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述通信控制器、將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器中的任意一項之前,依據(jù)配置的當(dāng)前節(jié)點的延遲要求設(shè)置并啟動定時器,在定時器溢出后將所述URC指令發(fā)送給所述通信控制器,或者,在定時器溢出后將與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容發(fā)送給所述通信控制器,或者,在定時器溢出后將與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器; 所述模擬串口測試裝置還包括:定時器,用于按照流程控制器的指示進(jìn)行計時。
10.根據(jù)權(quán)利要求9所述模擬串口測試裝置,其特征在于, 所述通信控制器,還用于接收來自客戶端的中斷請求,并將中斷請求發(fā)送給流程控制器; 流程控制器,還用于若中斷請求在定時器啟動后定時器溢出前收到,則停止定時器計時,并使用中斷成功消息代替所述與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容或者代替所述與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容發(fā)送給所述通信控制器。
11.根據(jù)權(quán)利要求8所述模擬串口測試裝置,其特征在于,所述測試數(shù)據(jù)文件為可擴展標(biāo)記語目XML文件; 所述模擬串口測試裝置還包括:文本編輯器,用于對存儲器中的XML文件進(jìn)行修改;或者, 所述模擬串口測試裝置的通信控制器,還用于接收來自客戶端的與AT指令封裝格式不同的XML文件更新信息,并將XML文件更新信息發(fā)送給流程控制器; 流程控制器,還用于依據(jù)所述XML文件更新信息更新其指定的預(yù)置XML文件。
12.根據(jù)權(quán)利要求7至11任意一項所述模擬串口測試裝置,其特征在于, 所述通信控制器包括:廣播器、指令轉(zhuǎn)發(fā)器、應(yīng)答發(fā)送器; 指令轉(zhuǎn)發(fā)器,用于創(chuàng)建兩個或者兩個以上的監(jiān)聽對象,在客戶端啟動后以輪詢方式查找可連接的客戶端,將來自客戶端的信息發(fā)送給流程控制器,所述來自客戶端的信息包括:AT指令、中斷請求、XML文件更新信息中的至少一項; 流程控制器,具體用于將URC指`令發(fā)送給廣播器,將URC以外的消息發(fā)送給應(yīng)答發(fā)送器,所述URC以外的消息包括:表示未匹配成功的信息、與所述AT指令匹配成功的當(dāng)前節(jié)點的響應(yīng)內(nèi)容、所述與所述AT指令對應(yīng)的測試指令的響應(yīng)內(nèi)容、中斷成功消息中的至少一項; 應(yīng)答發(fā)送器,用于建立監(jiān)聽對象與可連接的客戶端之間的對應(yīng)關(guān)系,并按照所述對應(yīng)關(guān)系將接收到的所述URC以外的消息發(fā)送給對應(yīng)的客戶端; 所述廣播器,用于將接收到的URC指令采用廣播方式發(fā)送給各客戶端,由客戶端篩選與其對應(yīng)的URC指令。
【文檔編號】H04L12/26GK103580942SQ201210273320
【公開日】2014年2月12日 申請日期:2012年8月2日 優(yōu)先權(quán)日:2012年8月2日
【發(fā)明者】劉橋 申請人:重慶重郵信科通信技術(shù)有限公司