欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

分布式遠(yuǎn)程測試系統(tǒng)、方法、以及服務(wù)器的制作方法

文檔序號:7723396閱讀:151來源:國知局
專利名稱:分布式遠(yuǎn)程測試系統(tǒng)、方法、以及服務(wù)器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種分布式遠(yuǎn)程測試系統(tǒng)、方法、以及服務(wù)器。
背景技術(shù)
目前,全球數(shù)字移動用戶已經(jīng)達(dá)到13億,用戶對移動終端的需求量也在急劇增漲,移動終端市場的競爭也越來越激烈。通訊技術(shù)從當(dāng)前較普遍的基于第二代(secondgeneration,簡稱為2G)通訊技術(shù)的全球移動通信系統(tǒng)(GlobalSystem for MobileCommunications,簡稱為GSM)、碼分多址(Code-DivisionMultiple Access,簡稱為CDMA)制式,逐步過渡以第三代(3rd-generation,簡稱為3G)通訊技術(shù)為基礎(chǔ)的寬帶分碼多工存取(Wideband Code-DivisionMultiple Access,簡稱為WCDMA)系統(tǒng)、時分同步的石馬分多址(TimeDivision-Synchronous Code Division Multiple Access,簡禾爾為TD-SCDMA)系統(tǒng),再到更新一代的微波存取全球互通(Worldwide Interoperability for
MicrowaveAccess,簡稱為WiMAX)系統(tǒng)、長期演進(jìn)(Long Term Evolution,簡稱為LTE)系統(tǒng)等。 在面向國際市場的大背景下,移動終端制造商對于各代終端產(chǎn)品的生產(chǎn)測試系統(tǒng)、方案平臺均有所差異。在現(xiàn)有技術(shù)中,生產(chǎn)測試大多采用的是使用單控制器架構(gòu)的基于美國電氣及電子工禾呈師學(xué)會(Institute of Electrical andElectronics Engineers,簡稱為IEEE)-488的通用接口總線(General Purposelnterface Bus,簡稱為GPIB)標(biāo)準(zhǔn)的機(jī)架式測試系統(tǒng)。圖1為現(xiàn)有技術(shù)中基于單控制器架構(gòu)的測試系統(tǒng)的示意圖,如圖1所示,儀表通過GPIB與計(jì)算機(jī)相連接,不同的儀表之家可以相互觸發(fā),待測設(shè)備與儀表相連接。
從圖1可以看出,由于儀表通過GPIB與計(jì)算機(jī)相連接,基于單控制器架構(gòu)的測試系統(tǒng)過于集中,需要系統(tǒng)開發(fā)人員親自到應(yīng)用環(huán)境中通過計(jì)算機(jī)對系統(tǒng)進(jìn)行維護(hù)、使用、故障分析、以及定位等,增加了時間成本以及實(shí)際的出差費(fèi)用成本,同時也可能會造成產(chǎn)線停線無法及時恢復(fù)的制造成本。

發(fā)明內(nèi)容
本發(fā)明要解決的問題是提供一種分布式遠(yuǎn)程測試系統(tǒng)、方法、以及服務(wù)器,以克服
現(xiàn)有技術(shù)中基于單控制器架構(gòu)的測試系統(tǒng)過于集中而導(dǎo)致成本增加的缺陷。
根據(jù)本發(fā)明的一個方面,提供了一種分布式遠(yuǎn)程測試系統(tǒng),包括 服務(wù)器數(shù)據(jù)封裝拆解包模塊,用于將指令流按照預(yù)定格式進(jìn)行封裝,得到通信數(shù)
據(jù)包; 服務(wù)器數(shù)據(jù)封包收發(fā)模塊,用于發(fā)送或接收通信數(shù)據(jù)包;
客戶端數(shù)據(jù)封包收發(fā)模塊,用于接收或發(fā)送通信數(shù)據(jù)包; 客戶端數(shù)據(jù)封裝拆解包模塊,用于根據(jù)預(yù)定格式對通信數(shù)據(jù)包進(jìn)行解析,獲取指令流;
4
業(yè)務(wù)實(shí)現(xiàn)模塊,用于根據(jù)指令流控制儀表和被測設(shè)備,獲取測試結(jié)果。
優(yōu)選地,上述分布式遠(yuǎn)程測試系統(tǒng)還包括 服務(wù)器邏輯總控制模塊,用于對服務(wù)器數(shù)據(jù)封裝拆解包模塊和服務(wù)器數(shù)據(jù)封包收發(fā)模塊進(jìn)行邏輯控制; 客戶端邏輯總控制模塊,用于對客戶端數(shù)據(jù)封包收發(fā)模塊和客戶端數(shù)據(jù)封裝拆解包模塊進(jìn)行邏輯控制。 優(yōu)選地,上述預(yù)定格式包括通信數(shù)據(jù)包頭部、以及一個或多個指令數(shù)據(jù)包,其中,通信數(shù)據(jù)包頭部包括通信數(shù)據(jù)包標(biāo)識、通信數(shù)據(jù)包長度、以及指令數(shù)據(jù)包個數(shù),指令數(shù)據(jù)包包括開始標(biāo)識、指令數(shù)據(jù)包長度、指令類型、操作對象、具體操作、標(biāo)志信息、傳輸數(shù)據(jù)、校驗(yàn)和、以及結(jié)束標(biāo)識。
優(yōu)選地,服務(wù)器數(shù)據(jù)封裝拆解包模塊具體包括 封裝模塊,用于將指令流封裝為指令數(shù)據(jù)包,并將指令數(shù)據(jù)包添加到通信數(shù)據(jù)包中; 檢查模塊,用于檢查指令數(shù)據(jù)包中是否存在與指令數(shù)據(jù)包的包頭、包尾、以及逃逸字節(jié)相同的相同字節(jié); 插入模塊,用于在檢查模塊確定存在相同字節(jié)的情況下,在相同字節(jié)前面插入逃逸字節(jié); 運(yùn)算模塊,用于將相同字節(jié)與插入的逃逸字節(jié)進(jìn)行異或運(yùn)算,并將異或運(yùn)算的運(yùn)算結(jié)果替換相同字節(jié)。 優(yōu)選地,客戶端數(shù)據(jù)封裝拆解包模塊具體包括 檢驗(yàn)?zāi)K,用于根據(jù)通信數(shù)據(jù)包頭部中的通信數(shù)據(jù)包標(biāo)識、通信數(shù)據(jù)包長度、以及指令數(shù)據(jù)包個數(shù)對通信數(shù)據(jù)包的正確性進(jìn)行檢驗(yàn); 查找模塊,用于在檢驗(yàn)?zāi)K確定通信數(shù)據(jù)包是正確的情況下,查找指令數(shù)據(jù)包中的逃逸字節(jié); 刪除模塊,用于將逃逸字節(jié)刪除; 恢復(fù)模塊,用于將逃逸字節(jié)后面的字節(jié)與逃逸字節(jié)進(jìn)行異或運(yùn)算獲取恢復(fù)值,并用恢復(fù)值替換逃逸字節(jié)后面的字節(jié); 校驗(yàn)?zāi)K,用于根據(jù)指令數(shù)據(jù)包中的校驗(yàn)和、以及指令數(shù)據(jù)包長度對指令數(shù)據(jù)包的正確定進(jìn)行校驗(yàn)。 優(yōu)選地,業(yè)務(wù)實(shí)現(xiàn)模塊具體用于 根據(jù)指令流通過以太網(wǎng)或通用接口總線控制儀表;以及
根據(jù)指令流通過以太網(wǎng)或通用串行總線控制被測設(shè)備。
根據(jù)本發(fā)明的另一個方面,提供了一種服務(wù)器,包括 服務(wù)器數(shù)據(jù)封裝拆解包模塊,用于將指令流按照預(yù)定格式進(jìn)行封裝,得到通信數(shù)據(jù)包; 服務(wù)器數(shù)據(jù)封包收發(fā)模塊,用于發(fā)送或接收通信數(shù)據(jù)包,以使客戶端根據(jù)通信數(shù)據(jù)包控制儀表和被測設(shè)備進(jìn)行測試操作。
根據(jù)本發(fā)明的另一個方面,提供了一種分布式遠(yuǎn)程測試方法,包括 接收通信數(shù)據(jù)包,其中,通信數(shù)據(jù)包是由服務(wù)器將指令流按照預(yù)定格式進(jìn)行封裝后發(fā)送的; 根據(jù)預(yù)定格式對通信數(shù)據(jù)包進(jìn)行解析,獲取指令流;
根據(jù)指令流控制儀表和被測設(shè)備,獲取測試結(jié)果。 優(yōu)選地,上述預(yù)定格式包括通信數(shù)據(jù)包頭部、以及一個或多個指令數(shù)據(jù)包,其中,通信數(shù)據(jù)包頭部包括通信數(shù)據(jù)包標(biāo)識、通信數(shù)據(jù)包長度、以及指令數(shù)據(jù)包個數(shù),指令數(shù)據(jù)包包括開始標(biāo)識、指令數(shù)據(jù)包長度、指令類型、操作對象、具體操作、標(biāo)志信息、傳輸數(shù)據(jù)、校驗(yàn)和、以及結(jié)束標(biāo)識。
優(yōu)選地,根據(jù)預(yù)定格式對通信數(shù)據(jù)包進(jìn)行解析包括 根據(jù)通信數(shù)據(jù)包頭部中的通信數(shù)據(jù)包標(biāo)識、通信數(shù)據(jù)包長度、以及指令數(shù)據(jù)包個數(shù)對通信數(shù)據(jù)包的正確性進(jìn)行檢驗(yàn); 在確定通信數(shù)據(jù)包是正確的情況下,查找指令數(shù)據(jù)包中的逃逸字節(jié),并將逃逸字節(jié)刪除; 將逃逸字節(jié)后面的字節(jié)與逃逸字節(jié)進(jìn)行異或運(yùn)算獲取恢復(fù)值,并用恢復(fù)值替換逃逸字節(jié)后面的字節(jié); 根據(jù)指令數(shù)據(jù)包中的校驗(yàn)和、以及指令數(shù)據(jù)包長度對指令數(shù)據(jù)包的正確定進(jìn)行校驗(yàn); 根據(jù)指令流控制儀表和被測設(shè)備包括
根據(jù)指令流通過以太網(wǎng)或通用接口總線控制儀表;以及
根據(jù)指令流通過以太網(wǎng)或通用串行總線控制被測設(shè)備。
本發(fā)明有益效果如下 本發(fā)明實(shí)施例通過遠(yuǎn)程控制儀表和被測設(shè)備進(jìn)行測試操作,對測試系統(tǒng)進(jìn)行遠(yuǎn)程管理,克服了現(xiàn)有技術(shù)中基于單控制器架構(gòu)的測試系統(tǒng)過于集中而導(dǎo)致成本增加的缺陷,能夠提高系統(tǒng)故障的響應(yīng)速度,有效利用時間,壓縮故障解決周期,避免停線,同時減少出差費(fèi)用,有效提高整個系統(tǒng)的運(yùn)作效率。


圖1為現(xiàn)有技術(shù)中基于單控制器架構(gòu)的測試系統(tǒng)的示意 圖2為本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)的結(jié)構(gòu)示意 圖3為本發(fā)明實(shí)施例的通信數(shù)據(jù)包格式的示意 圖4為本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)的連接示意 圖5為本發(fā)明實(shí)施例的儀表連接的示意圖; 圖6為本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)的優(yōu)選結(jié)構(gòu)示意圖; 圖7為本發(fā)明實(shí)施例的服務(wù)器的結(jié)構(gòu)示意圖; 圖8為本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試方法的流程圖; 圖9為本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)對被測設(shè)備進(jìn)行測試的信令流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例,對本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
6
系統(tǒng)實(shí)施例 根據(jù)本發(fā)明的實(shí)施例,提供了一種分布式遠(yuǎn)程測試系統(tǒng),圖2為本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)的結(jié)構(gòu)示意圖,分布式遠(yuǎn)程測試系統(tǒng)提供多個獨(dú)立的模塊,可以應(yīng)用于不同制式的被測試設(shè)備,實(shí)現(xiàn)不同制式不同平臺統(tǒng)一的指令轉(zhuǎn)譯、傳輸、復(fù)現(xiàn)、邏輯控制及業(yè)務(wù)實(shí)現(xiàn)等處理。如圖2所示,根據(jù)本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)包括服務(wù)器數(shù)據(jù)封裝拆解包模塊20、服務(wù)器數(shù)據(jù)封包收發(fā)模塊22、客戶端數(shù)據(jù)封包收發(fā)模塊24、客戶端數(shù)據(jù)封裝拆解包模塊26、業(yè)務(wù)實(shí)現(xiàn)模塊28。 具體地,服務(wù)器數(shù)據(jù)封裝拆解包模塊20用于將指令流按照預(yù)定格式進(jìn)行封裝,得
到通信數(shù)據(jù)包;也就是說,服務(wù)器數(shù)據(jù)封裝拆解包模塊20需要對各種制式下的指令流進(jìn)行
加殼打包,打包成統(tǒng)一的TCP/IP通信數(shù)據(jù)包進(jìn)行傳輸,例如,對于英飛凌平臺可以通過AT
指令向被測設(shè)備發(fā)送相應(yīng)的控制指令;對于高通平臺的被測設(shè)備可以發(fā)送相應(yīng)的DIAG控
制指令,對于BECEEM平臺的WIMAX終端可以利用相應(yīng)的API指令進(jìn)行被測設(shè)備的控制。 圖3為本發(fā)明實(shí)施例的通信數(shù)據(jù)包格式的示意圖,如圖3所示,上述預(yù)定格式包
括通信數(shù)據(jù)包頭部(Comm Packet Header)、以及一個或多個指令數(shù)據(jù)包(Instruction
Packet 1至Instruction Packet N),其中,指令數(shù)據(jù)包之間用其頭尾特殊標(biāo)志來加以區(qū)
分,在通信數(shù)據(jù)包頭部中包含了整個通信數(shù)據(jù)包的長度信息,在每個指令數(shù)據(jù)包中也包含
了各自指令數(shù)據(jù)包的長度信息,每條指令數(shù)據(jù)包的長度可以不相同,在實(shí)際應(yīng)用中,可以根
據(jù)長度信息來確定通信數(shù)據(jù)包以及指令數(shù)據(jù)包的長度,能夠減少冗余信息。 優(yōu)選地,在本發(fā)明實(shí)施例中,通信數(shù)據(jù)包頭部包括通信數(shù)據(jù)包標(biāo)識、通信數(shù)據(jù)包
長度、以及指令數(shù)據(jù)包個數(shù);指令數(shù)據(jù)包中定義了九個字段,用來描述指令流的內(nèi)容以及傳
遞的參數(shù),包括開始標(biāo)識、指令數(shù)據(jù)包長度、指令類型、操作對象、具體操作、標(biāo)志信息、傳
輸數(shù)據(jù)、校驗(yàn)和、以及結(jié)束標(biāo)識。
下面,對本發(fā)明實(shí)施例中的通信數(shù)據(jù)包頭部和指令數(shù)據(jù)包的格式進(jìn)行具體說明。
1、通信數(shù)據(jù)包頭部可以包括三個部分的內(nèi)容,第一部分包括一個固定的標(biāo)志,在客戶端接收到通信數(shù)據(jù)包時,可以先對該字段進(jìn)行判斷,防止誤收其他數(shù)據(jù)包;第二部分為整個通信數(shù)據(jù)包的長度,包括頭部,用于通知客戶端所發(fā)送的通信數(shù)據(jù)包的長度,以使客戶端判斷接收到的數(shù)據(jù)和服務(wù)器端發(fā)送的數(shù)據(jù)是否一致;第三部分為通信數(shù)據(jù)包頭部后面連接的指令數(shù)據(jù)包的個數(shù)(NumOflnsPacket)。在本發(fā)明實(shí)施例中,通信數(shù)據(jù)包頭部可采用如下的數(shù)據(jù)結(jié)構(gòu)定義
typedef struct
{char cHead[16];
unsigned short usN咖0fInsPacket ;}Comm_PacketHeader_Type 5整個通信數(shù)據(jù)包頭部的格式可以定義如下typedef struct
unsigned int uiPacketLength ^
Comm_PacketHeader_Type CommHeader ;
BYTE buf [恵—PKT—SIZE];
}Comm_Packet_Type ; 2、指令數(shù)據(jù)包包含了 9個字段,定義了一條指令所包含的操作對象、操作類型、操作參數(shù)等,以下對指令數(shù)據(jù)包中各個字段的意義以及定義進(jìn)行詳細(xì)說明
(1)開始標(biāo)識(Head):用于標(biāo)識該指令數(shù)據(jù)包的開始,可以用一個特定的字符表示,例如0x7F。 (2)指令數(shù)據(jù)包長度(PacketLength):用于從開始標(biāo)識(Head)到結(jié)束標(biāo)識(END)記錄整個指令數(shù)據(jù)包的長度。 (3)指令類型(Cmd):用于表示指令的類型,在本發(fā)明實(shí)施例中,優(yōu)選地,可以包括以下指令類型 CMD_HELLO :服務(wù)器端和客戶端連接剛建立時的握手命令,連接建立時由服務(wù)器端發(fā)向客戶端發(fā)送; CMD_HELLO_CONFIRM :與CMD_HELLO指令匹配,客戶端收到CMD_HELLO之后回復(fù)該指令給服務(wù)器端; CMD_LEAVE :所有的操作完成之后服務(wù)器端向客戶端發(fā)送的斷開連接的請求;
CMD_LEAVE_CONFIRM :與CMD_LEAVE指令匹配,客戶端收到CMD_LEAVE指令后回復(fù)該指令給服務(wù)器端; CMD—REQUEST:由服務(wù)器端發(fā)向客戶端,配合操作對象、具體操作、標(biāo)志信息三個字段,給客戶端發(fā)出一條具體操作的指令; CMD_ANSWER :由客戶端發(fā)向服務(wù)器端,同樣配合操作對象、具體操作、標(biāo)志信息三個字段,表示對操作執(zhí)行情況的一個答復(fù); 需要說明的是,指令類型(Cmd)可以定義為unsigned short usCmd,其中前四個指令(CMD_HELL0指令、CMD_HELL0_C0NFIRM指令、CMD_LEAVE指令、以及CMD_LEAVE_CONFIRM指令)可以忽略ParaData字段。 (4)操作對象(0perate0bject):表示指令要操作的對象,目前主要包括三個
OPERATEOBJEC乙DUT:表示由具體操作、標(biāo)志信息字段所表示的指令是對被測設(shè)備的操作; OPERATEOBJEC乙PC:表示由具體操作、標(biāo)志信息兩個字段所表示的指令是對計(jì)算機(jī)的操作; OPERATEOBJECT_INSTRUMENT :表示由具體操作、標(biāo)志信息兩個字段所表示的指令是對儀表的操作; 需要說明的是,操作對象(OperateObject)字段可以定義為unsignedshortusOperateObject ;此外,只有指令類型(Cmd)字段是CMD_REQUEST或者CMD_ANSWER時,操作對象(OperateObject)字段才有意義。 (5)具體操作(Operation):表示具體的操作,要按照操作對象(OperateObject)字段的操作對象來分別進(jìn)行定義 對于被測設(shè)備,具體操作(Operation)中主要包括了控制被測設(shè)備所需要的所有的操作指令,例如,在BeceemCalAPI3. 0版本中總共是65個API函數(shù),對其分別定義。
對于計(jì)算機(jī),具體操作(Operation)中包括需要獲取的一些資源,例如,可以從PC處得到儀表的IP地址。 對于儀表,具體操作(Operation)中包括了所有的對儀表的操作。在本發(fā)明實(shí)施例中,主要使用LAN 口直接遠(yuǎn)程控制儀表的,該部分主要是為了以后擴(kuò)展遠(yuǎn)程儀表代理時考慮。 需要說明的是,具體操作(Operation)字段也可以定義為unsigned
shortusOperation,跟上操作對象(0perate0bject)字段的定義密切相連。 (6)標(biāo)志信息(Instruction Flag):用于保存指令的一些標(biāo)志信息,包括四個信
息IndexOfPacket表示了該指令數(shù)據(jù)包在整個通訊數(shù)據(jù)包中的位置,與前面通信數(shù)據(jù)包
頭部中的參數(shù)NumOflnsPacket相呼應(yīng);NumberOfParas表示了這條指令數(shù)據(jù)包所包含的參
數(shù)的個數(shù);OperationFlag表示了指令數(shù)據(jù)包的操作方向,S卩,是需要執(zhí)行的操作還是需要
返回的結(jié)果,以及執(zhí)行是成功還是失敗的信息。在本發(fā)明實(shí)施例中,標(biāo)志信息(Instruction
Flag)定義如下 typedef struct { }Instruction—Flag ; 其中,ResultFlag按位來處理 bit[2-0] :000表示操作執(zhí)行失敗,001表示操作執(zhí)行成功,OIO表示接收到的指令錯誤,長度不符或者校驗(yàn)和不正確,Oll表示接收到的參數(shù)個數(shù)不符,lOO表示接收到的參數(shù)校驗(yàn)和錯誤,bit [2-0]主要針對寫EEPROM的操作;
bit[3] :0表示需要執(zhí)行的操作,1表示返回的結(jié)果; 需要說明的是,只有bit[3]為1時,bit[2-0]才有意義,其余bit[4-7]暫時預(yù)留。
(7)傳輸數(shù)據(jù)(ParaData):該字段是要傳遞的數(shù)據(jù),主要是包括了 Operation字段中,各種操作所要傳遞的參數(shù),以及操作執(zhí)行之后的返回值。 在本發(fā)明實(shí)施例中,可以使用一個聯(lián)合體對其定義,聯(lián)合體的成員就是要執(zhí)行的各個操作所包含的參數(shù)??梢园凑杖缦碌姆绞蕉x
typedef struct
{UINT32u32DUTMode ; 〃要設(shè)置的模式
UINT32u32ModulationType ;〃調(diào)制類型
} Dut—SetDeviceMode—Request—Paras ;
typedef struct
{UINT32u32CenterFreqKHz ;〃頻率
UINT32u32BandwidthKHz ; 〃帶寬
}Dut_SetBandConfig_Request_Paras ;
typedef struct
:0101]:0102]:oio3]
unsigned char uclndex0fPacket 5unsigned char ucN咖OfParas ;unsigned char ucResultFlag ;
{ UINT32u32Debug ; UINT32u32PostCmdWaitMS ; UINT32u32PollIntMS ; UINT32u32MaxPollCountMS ; UINT32u32E印romReadDelayMS ; UINT32u32E印romVerifyDelayMS ; UINT32u32FragmentSizeBytes ; UINT32u32E印romSizeMatchBytes ; }Dut_SetDeviceOption_Request_Paras ; typedef union { Dut_SetDeviceMode_Request_Paras SSetDeviceModeParas ; Dut_SetBandConfig_Request_Paras SSetBandconfigParas ; Dut_SetDeviceOption_Request_Paras SSetDeviceOptionParas ; }Operation_Paras_Request_Type ; typedef union { Dut_SetDeviceMode_Answer_Paras SSetDeviceModeParas ; Dut_SetBandConfig_Answer_Paras SSetBandconfigParas ; Dut_SetDeviceOption_Answer_Paras SSetDeviceOptionParas ; }Operation_Paras_Answer_Type ; Typedef union { Operation_Paras_Request_Type URequestOperationParas ; Operation_Paras_Answer_Type UAnswerOperationParas ; } Operation_Paras_Type ; 從上述描述可以看出,首先定義出各種要執(zhí)行的指令的參數(shù)結(jié)構(gòu)體,然后用這些結(jié)構(gòu)體充當(dāng)聯(lián)合體中的變量,來定義Instruction—Paras結(jié)構(gòu),這樣指令數(shù)據(jù)包的長度就是可變的,比較容易讀取。 (8)校驗(yàn)和(Checksum):整個指令數(shù)據(jù)包的一個校驗(yàn)和,防止指令數(shù)據(jù)包出錯,該校驗(yàn)和不包括指令數(shù)據(jù)包頭和指令數(shù)據(jù)包尾。 (9)結(jié)束標(biāo)識END:表示一個指令數(shù)據(jù)包的結(jié)束,可以使用一個特殊的字符來表示,例如OxEF。 綜上所述,整個指令數(shù)據(jù)包的結(jié)構(gòu)可定義如下 typedef struct { unsigned char const ucHEAD = 0x7F ; unsigned int uiPacketLength ;
10
unsigned short usCmd ;unsigned short us0perate0bject ;unsigned short usOperation ;Instruction_Flag SInstructionFlag ;Operation_Paras_Type UOperationParas ;unsigned short usCheckSum ;unsigned char const ucEND = 0xEF ; } Instruction—Type。 基于上述通信數(shù)據(jù)包結(jié)構(gòu),服務(wù)器數(shù)據(jù)封裝拆解包模塊20在封裝通信數(shù)據(jù)報(bào)時,可以具體包括以下模塊封裝模塊、檢查模塊、插入模塊、運(yùn)算模塊。其中,封裝模塊用于將指令流封裝為指令數(shù)據(jù)包,并將指令數(shù)據(jù)包添加到通信數(shù)據(jù)包中;檢查模塊用于檢查指令數(shù)據(jù)包中是否存在與指令數(shù)據(jù)包的包頭、包尾、以及逃逸字節(jié)相同的相同字節(jié);插入模塊用于在檢查模塊確定存在相同字節(jié)的情況下,在相同字節(jié)前面插入逃逸字節(jié);運(yùn)算模塊用于將相同字節(jié)與插入的逃逸字節(jié)進(jìn)行異或運(yùn)算,并將異或運(yùn)算的運(yùn)算結(jié)果替換相同字節(jié)。
也就是說,服務(wù)器數(shù)據(jù)封裝拆解包模塊20首先完成指令數(shù)據(jù)包的內(nèi)容封裝,封裝完成之后將指令數(shù)據(jù)包添加到Comm—Packet。這時首先要確保每個指令數(shù)據(jù)包中包頭和包尾的唯一性。需要逐個字節(jié)檢查看是否存在與包頭0x7F、包尾0xEF以及逃逸字節(jié)OxCC相同的字節(jié),如果有碰到相同的字節(jié),就在該字節(jié)之前插入另外一個字節(jié),即逃逸字節(jié)OxCC,然后將指令數(shù)據(jù)包中原來的字符和另外一個字符0x30進(jìn)行異或運(yùn)算,讓它變成另外一個字符,把它保護(hù)起來,這樣的處理直到包尾,整個指令數(shù)據(jù)包當(dāng)中就只有一個包頭和一個包尾。 經(jīng)過上述處理之后,服務(wù)器數(shù)據(jù)封包收發(fā)模塊22發(fā)送或接收該通信數(shù)據(jù)包;優(yōu)選
地,務(wù)器數(shù)據(jù)封包收發(fā)模塊22可以通過以太網(wǎng)發(fā)送或接收該通信數(shù)據(jù)包。 客戶端數(shù)據(jù)封包收發(fā)模塊24用于接收或發(fā)送該通信數(shù)據(jù)包; 優(yōu)選地,客戶端數(shù)據(jù)封包收發(fā)模塊24還可以發(fā)送測試輸出結(jié)果。在應(yīng)用于不同的
測試手機(jī)時,客戶端數(shù)據(jù)封包收發(fā)模塊24可以采用不同的方式來獲取手機(jī)的測試輸出結(jié)
果。通過統(tǒng)一的調(diào)用接口,利用成熟的TCP/IP傳輸協(xié)議進(jìn)行通信數(shù)據(jù)包的可控傳輸、以及
利用現(xiàn)有的成熟的以太網(wǎng)絡(luò),能夠完成對指令流的遠(yuǎn)程傳遞,達(dá)到遠(yuǎn)程控制的目的。 客戶端數(shù)據(jù)封裝拆解包模塊26根據(jù)上述預(yù)定格式對通信數(shù)據(jù)包進(jìn)行解析,獲取
指令流;也就是說,客戶端數(shù)據(jù)封裝拆解包模塊26需要對遠(yuǎn)程傳輸過來的通信數(shù)據(jù)包進(jìn)行
去殼拆包解析處理。 具體地,客戶端數(shù)據(jù)封裝拆解包模塊26可以具體包括檢驗(yàn)?zāi)K、查找模塊、刪除模塊、恢復(fù)模塊、以及校驗(yàn)?zāi)K,其中,檢驗(yàn)?zāi)K用于根據(jù)通信數(shù)據(jù)包頭部中的通信數(shù)據(jù)包標(biāo)識、通信數(shù)據(jù)包長度、以及指令數(shù)據(jù)包個數(shù)對通信數(shù)據(jù)包的正確性進(jìn)行檢驗(yàn);在檢驗(yàn)?zāi)K確定通信數(shù)據(jù)包是正確的情況下,查找模塊查找指令數(shù)據(jù)包中的逃逸字節(jié);刪除模塊將所述逃逸字節(jié)刪除;恢復(fù)模塊將逃逸字節(jié)后面的字節(jié)與逃逸字節(jié)進(jìn)行異或運(yùn)算獲取恢復(fù)值,并用恢復(fù)值替換逃逸字節(jié)后面的字節(jié);最后,校驗(yàn)?zāi)K根據(jù)指令數(shù)據(jù)包中的校驗(yàn)和、以及指令數(shù)據(jù)包長度對指令數(shù)據(jù)包的正確定進(jìn)行校驗(yàn)。 客戶端數(shù)據(jù)封包收發(fā)模塊24接收到的通信數(shù)據(jù)包由通信數(shù)據(jù)包頭部和N個指令數(shù)據(jù)包所組成,在接收到通信數(shù)據(jù)包以后,客戶端數(shù)據(jù)封裝拆解包模塊26需要對通信數(shù)據(jù) 包進(jìn)行以下判斷 首先,解析出Comm—PacketHeader,對其中的cHead進(jìn)行判斷,確定是否為上述定 義的包頭,如果不是則丟棄此包;如果是,再讀取其中的長度信息,判斷和收到的通信數(shù)據(jù) 包的長度是否相符,如果不符則丟棄;如果相符,繼續(xù)進(jìn)行指令數(shù)據(jù)包個數(shù)的判斷,根據(jù)包 的頭尾標(biāo)志位來判斷通信數(shù)據(jù)包所包含的指令數(shù)據(jù)包的個數(shù)是否和通信數(shù)據(jù)包頭部中所 定義的個數(shù)一致,如果不一致則丟棄,一致則確定接收到的通信數(shù)據(jù)包是正確的,可以進(jìn)行 指令的解析。 在指令解析時,因?yàn)橹耙呀?jīng)通過頭尾標(biāo)志獲取了各個指令數(shù)據(jù)包,第一步需要 將打包時所插入的逃逸字節(jié)去掉。遍歷整個包,查找逃逸字符OxCC,每找到一個就將其去 掉,然后將其后面的字節(jié)和0x30進(jìn)行異或運(yùn)算,恢復(fù)出原來的值,直到把每個逃逸字符都 去掉為止。至此,一個指令數(shù)據(jù)包就可以完整的傳遞到客戶端。最后,還需要判斷指令數(shù)據(jù) 包的長度、校驗(yàn)和等,保證指令數(shù)據(jù)包的正確性。 如果上述條件均滿足,業(yè)務(wù)實(shí)現(xiàn)模塊28就可以執(zhí)行指令數(shù)據(jù)包所描述的內(nèi)容了, 其中,業(yè)務(wù)實(shí)現(xiàn)模塊28實(shí)現(xiàn)具體的指令操作,也就是說,業(yè)務(wù)實(shí)現(xiàn)模塊28可以根據(jù)上述指 令流控制儀表和被測設(shè)備,獲取測試輸出結(jié)果。 優(yōu)選地,業(yè)務(wù)實(shí)現(xiàn)模塊28具體用于根據(jù)指令流通過以太網(wǎng)或通用接口總線控制 儀表;以及根據(jù)指令流通過以太網(wǎng)或通用串行總線控制被測設(shè)備。圖4為本發(fā)明實(shí)施例的 分布式遠(yuǎn)程測試系統(tǒng)的連接示意圖,如圖4所示,儀表通過GPIB或LAN與客戶端計(jì)算機(jī)設(shè) 備連接,被測設(shè)備通過USB或LAN與客戶端計(jì)算機(jī)設(shè)備連接,儀表與被測設(shè)備通過射頻線纜 連接,儀表和客戶端計(jì)算機(jī)設(shè)備通過LAN與服務(wù)器端計(jì)算機(jī)連接。 圖5為本發(fā)明實(shí)施例的儀表連接的示意圖,如圖5所示,直接應(yīng)用成熟的局域網(wǎng)擴(kuò) 展儀表(LAN extensions for Instrumentation,簡稱為LXI)技術(shù)進(jìn)行儀表的控制?;谀?前LXI的應(yīng)用,LXI從以下幾個方面幫助測試工程師克服常規(guī)測試測量系統(tǒng)架構(gòu)的局限性。 首先,LXI系統(tǒng)利用以太局域網(wǎng)作為設(shè)備的互聯(lián)通路,消除了互聯(lián)設(shè)備數(shù)量上的限制。其次, 幾乎所有的計(jì)算機(jī)上都帶有以太網(wǎng)接口,因此利用已有的以太網(wǎng)基礎(chǔ)架構(gòu)進(jìn)行設(shè)備互聯(lián), 能夠避免增加接口適配卡所帶來的高昂成本。再次,以太網(wǎng)接口還具有良好的擴(kuò)展性,以太 網(wǎng)也能夠輕松支持物理上的分布系統(tǒng)。實(shí)現(xiàn)一個兼容LXI標(biāo)準(zhǔn)的最簡以太網(wǎng)接口的成本很 低,根據(jù)用戶的需要,還可以實(shí)現(xiàn)高性能的以太網(wǎng)接口 ,使得低速設(shè)備和高速設(shè)備能夠?qū)崿F(xiàn) 無縫的系統(tǒng)集成。利用以太網(wǎng)互連技術(shù),不需要將設(shè)備和其控制器緊密放置在一起,從而減 少了大型系統(tǒng)中的控制器數(shù)量,如果采用機(jī)架式系統(tǒng)或基于GPIB/USB/串口的互連結(jié)構(gòu)來 實(shí)現(xiàn),那么必須要將設(shè)備和其控制器緊密放置在一起。 從上述處理可以看出,本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)可以實(shí)現(xiàn)網(wǎng)絡(luò)化 管理,本發(fā)明實(shí)施例利用現(xiàn)有的以太網(wǎng)絡(luò),節(jié)省了系統(tǒng)搭建成本,可以直接利用以太網(wǎng) 1000Mbytes/s的傳輸速率,極大地提高了測試效率。 圖6為本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)的優(yōu)選結(jié)構(gòu)示意圖,如圖6所示,在本 發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)中,除了包括服務(wù)器數(shù)據(jù)封裝拆解包模塊20、服務(wù)器數(shù) 據(jù)封包收發(fā)模塊22、客戶端數(shù)據(jù)封包收發(fā)模塊24、客戶端數(shù)據(jù)封裝拆解包模塊26、業(yè)務(wù)實(shí) 現(xiàn)模塊28以外,還可以包括服務(wù)器邏輯總控制模塊、以及客戶端邏輯總控制模塊,用于實(shí)
12現(xiàn)業(yè)務(wù)邏輯層,各模塊之間有機(jī)協(xié)調(diào)交互,其中,服務(wù)器邏輯總控制模塊用于對服務(wù)器數(shù)據(jù) 封裝拆解包模塊20和所述服務(wù)器數(shù)據(jù)封包收發(fā)模塊22進(jìn)行邏輯控制;客戶端邏輯總控制 模塊用于對所述客戶端數(shù)據(jù)封包收發(fā)模塊24和所述客戶端數(shù)據(jù)封裝拆解包模塊26進(jìn)行邏 輯控制。 本發(fā)明實(shí)施例提供的分布式遠(yuǎn)程測試系統(tǒng)具備穩(wěn)定的指令加殼、傳輸、拆包解析 重現(xiàn)的功能,能夠?qū)崿F(xiàn)指令的遠(yuǎn)程傳遞,達(dá)到遠(yuǎn)程控制的目的。 本發(fā)明實(shí)施例利用成型的以太網(wǎng)絡(luò)實(shí)現(xiàn)測試工具的遠(yuǎn)程調(diào)試及測試系統(tǒng)的遠(yuǎn)程 管理。在不改變本地計(jì)算機(jī)與終端物理連接的前提下,通過網(wǎng)絡(luò)可以實(shí)現(xiàn)兩地的遠(yuǎn)程跟蹤 和調(diào)試。測試系統(tǒng)的軟件系統(tǒng)運(yùn)行在A地,相關(guān)測試工具、線纜、儀表等硬件連接都在B地 的環(huán)境下,通過技術(shù)人員的遠(yuǎn)程控制跟蹤來實(shí)現(xiàn)測試系統(tǒng)的遠(yuǎn)程管理,保證了及時性,節(jié)省 了出差成本。 整個測試系統(tǒng)按照模塊化的方式進(jìn)行設(shè)計(jì),提供統(tǒng)一的操作平臺和接口,各模塊 相互獨(dú)立,通過配置可以支持多種制式的分布式遠(yuǎn)程化測試實(shí)現(xiàn)方式,能夠適用于各種不 同制式移動終端的遠(yuǎn)程測試。
裝置實(shí)施例 根據(jù)本發(fā)明的實(shí)施例,提供了一種服務(wù)器,圖7為本發(fā)明實(shí)施例的服務(wù)器的結(jié)構(gòu)
示意圖,如圖7所示,根據(jù)本發(fā)明實(shí)施例的服務(wù)器包括服務(wù)器數(shù)據(jù)封裝拆解包模塊70、服
務(wù)器數(shù)據(jù)封包收發(fā)模塊72。下面,對本發(fā)明實(shí)施例的服務(wù)器進(jìn)行詳細(xì)說明。 服務(wù)器數(shù)據(jù)封裝拆解包模塊70用于將指令流按照預(yù)定格式進(jìn)行封裝,得到通信
數(shù)據(jù)包;也就是說,服務(wù)器數(shù)據(jù)封裝拆解包模塊70需要對各種制式下的指令流進(jìn)行加殼打
包,打包成統(tǒng)一的TCP/IP通信數(shù)據(jù)包進(jìn)行傳輸,例如,對于英飛凌平臺可以通過AT指令向
被測設(shè)備發(fā)送相應(yīng)的控制指令;對于高通平臺的被測設(shè)備可以發(fā)送相應(yīng)的DIAG控制指令,
對于BECEEM平臺的WIMAX終端可以利用相應(yīng)的API指令進(jìn)行被測設(shè)備的控制。 上述預(yù)定格式包括通信數(shù)據(jù)包頭部(Comm Packet Header)、以及一個或多個指
令數(shù)據(jù)包(Instruction Packet 1至Instruction Packet N),其中,指令數(shù)據(jù)包之間用
其頭尾特殊標(biāo)志來加以區(qū)分,在通信數(shù)據(jù)包頭部中包含了整個通信數(shù)據(jù)包的長度信息,在
每個指令數(shù)據(jù)包中也包含了各自指令數(shù)據(jù)包的長度信息,每條指令數(shù)據(jù)包的長度可以不相
同,在實(shí)際應(yīng)用中,可以根據(jù)長度信息來確定通信數(shù)據(jù)包以及指令數(shù)據(jù)包的長度,能夠減少
冗余信息。 優(yōu)選地,通信數(shù)據(jù)包頭部包括通信數(shù)據(jù)包標(biāo)識、通信數(shù)據(jù)包長度、以及指令數(shù)據(jù) 包個數(shù);指令數(shù)據(jù)包中定義了九個字段,用來描述指令流的內(nèi)容以及傳遞的參數(shù),包括開 始標(biāo)識、指令數(shù)據(jù)包長度、指令類型、操作對象、具體操作、標(biāo)志信息、傳輸數(shù)據(jù)、校驗(yàn)和、以 及結(jié)束標(biāo)識。 需要說明的是,通信數(shù)據(jù)包的格式可以參照圖3以及系統(tǒng)實(shí)施例中的相應(yīng)內(nèi)容進(jìn) 行理解,在此不再贅述。 在本發(fā)明實(shí)施例中,基于如圖3所示的通信數(shù)據(jù)包結(jié)構(gòu),服務(wù)器數(shù)據(jù)封裝拆解包 模塊70在封裝通信數(shù)據(jù)報(bào)時,可以具體包括以下模塊封裝模塊、檢查模塊、插入模塊、運(yùn) 算模塊。其中,封裝模塊用于將指令流封裝為指令數(shù)據(jù)包,并將指令數(shù)據(jù)包添加到通信數(shù)據(jù) 包中;檢查模塊用于檢查指令數(shù)據(jù)包中是否存在與指令數(shù)據(jù)包的包頭、包尾、以及逃逸字節(jié)相同的相同字節(jié);插入模塊用于在檢查模塊確定存在相同字節(jié)的情況下,在相同字節(jié)前面 插入逃逸字節(jié);運(yùn)算模塊用于將相同字節(jié)與插入的逃逸字節(jié)進(jìn)行異或運(yùn)算,并將異或運(yùn)算 的運(yùn)算結(jié)果替換相同字節(jié)。 也就是說,服務(wù)器數(shù)據(jù)封裝拆解包模塊70首先完成指令數(shù)據(jù)包的內(nèi)容封裝,封裝 完成之后將指令數(shù)據(jù)包添加到Comm—Packet。這時首先要確保每個指令數(shù)據(jù)包中包頭和包 尾的唯一性。需要逐個字節(jié)檢查看是否存在與包頭0x7F、包尾OxEF以及逃逸字節(jié)OxCC相 同的字節(jié),如果有碰到相同的字節(jié),就在該字節(jié)之前插入另外一個字節(jié),即逃逸字節(jié)OxCC, 然后將指令數(shù)據(jù)包中原來的字符和另外一個字符0x30進(jìn)行異或運(yùn)算,讓它變成另外一個 字符,把它保護(hù)起來,這樣的處理直到包尾,整個指令數(shù)據(jù)包當(dāng)中就只有一個包頭和一個包 尾。 經(jīng)過上述處理之后,服務(wù)器數(shù)據(jù)封包收發(fā)模塊72將該通信數(shù)據(jù)包發(fā)送到客戶端, 以使客戶端根據(jù)通信數(shù)據(jù)包控制儀表和被測設(shè)備;服務(wù)器數(shù)據(jù)封包收發(fā)模塊72還可以接 收客戶端發(fā)送的通信數(shù)據(jù)包; 本發(fā)明實(shí)施例利用成型的以太網(wǎng)絡(luò)實(shí)現(xiàn)測試工具的遠(yuǎn)程調(diào)試及測試系統(tǒng)的遠(yuǎn)程
管理。在不改變本地計(jì)算機(jī)與終端物理連接的前提下,通過網(wǎng)絡(luò)可以實(shí)現(xiàn)兩地的遠(yuǎn)程跟蹤
和調(diào)試。測試系統(tǒng)的軟件系統(tǒng)運(yùn)行在A地,相關(guān)測試工具、線纜、儀表等硬件連接都在B地
的環(huán)境下。通過技術(shù)人員的遠(yuǎn)程控制跟蹤來實(shí)現(xiàn)測試系統(tǒng)的遠(yuǎn)程管理,保證了及時性,節(jié)省
了出差成本。 方法實(shí)施例 根據(jù)本發(fā)明的實(shí)施例,提供了一種分布式遠(yuǎn)程測試方法,圖8為本發(fā)明實(shí)施例的 分布式遠(yuǎn)程測試方法的流程圖,如圖8所示,根據(jù)本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試方法包 括如下處理 步驟801,接收通信數(shù)據(jù)包,其中,通信數(shù)據(jù)包是由服務(wù)器將指令流按照預(yù)定格式 進(jìn)行封裝后發(fā)送的;其中,預(yù)定格式包括通信數(shù)據(jù)包頭部、以及一個或多個指令數(shù)據(jù)包, 其中,通信數(shù)據(jù)包頭部包括通信數(shù)據(jù)包標(biāo)識、通信數(shù)據(jù)包長度、以及指令數(shù)據(jù)包個數(shù),指令 數(shù)據(jù)包包括開始標(biāo)識、指令數(shù)據(jù)包長度、指令類型、操作對象、具體操作、標(biāo)志信息、傳輸數(shù) 據(jù)、校驗(yàn)和、以及結(jié)束標(biāo)識。 需要說明的是,通信數(shù)據(jù)包的格式可以參照圖3以及系統(tǒng)實(shí)施例中的相應(yīng)內(nèi)容進(jìn) 行理解,在此不再贅述。 具體地,在執(zhí)行步驟801之前,還需要將指令流按照預(yù)定格式進(jìn)行封裝,得到通信 數(shù)據(jù)包;也就是說,服務(wù)器端將不同的指令打包成統(tǒng)一的TCP/IP通信數(shù)據(jù)包用于傳輸,例 如,對于英飛凌平臺可能通過AT指令方式向被測設(shè)備發(fā)送相應(yīng)的控制指令;對于高通平臺 的被測設(shè)備可能發(fā)送相應(yīng)的DIAG控制指令,對于BECEEM平臺的WIMAX終端可能利用相應(yīng) 的API指令進(jìn)行被測設(shè)備的控制。 具體地,服務(wù)器端首先完成指令數(shù)據(jù)包的內(nèi)容封裝,封裝完成之后將指令數(shù)據(jù)包 添加到Comm—Packet。這時首先要確保每個指令數(shù)據(jù)包中包頭和包尾的唯一性。需要逐個 字節(jié)檢查看是否存在與包頭0x7F、包尾0xEF以及逃逸字節(jié)0xCC相同的字節(jié),如果有碰到相 同的字節(jié),就在該字節(jié)之前插入另外一個字節(jié),即逃逸字節(jié)OxCC,然后將指令數(shù)據(jù)包中原來 的字符和另外一個字符0x30進(jìn)行異或運(yùn)算,讓它變成另外一個字符,把它保護(hù)起來,這樣的處理直到包尾,整個指令數(shù)據(jù)包當(dāng)中就只有一個包頭和一個包尾。
步驟802,根據(jù)預(yù)定格式對通信數(shù)據(jù)包進(jìn)行解析,獲取指令流; 具體地,在步驟802中,需要進(jìn)行如下處理首先,根據(jù)通信數(shù)據(jù)包頭部中的通信 數(shù)據(jù)包標(biāo)識、通信數(shù)據(jù)包長度、以及指令數(shù)據(jù)包個數(shù)對通信數(shù)據(jù)包的正確性進(jìn)行檢驗(yàn);在確 定通信數(shù)據(jù)包是正確的情況下,查找指令數(shù)據(jù)包中的逃逸字節(jié),并將逃逸字節(jié)刪除;將逃逸 字節(jié)后面的字節(jié)與逃逸字節(jié)進(jìn)行異或運(yùn)算獲取恢復(fù)值,并用恢復(fù)值替換逃逸字節(jié)后面的字 節(jié);最后,根據(jù)指令數(shù)據(jù)包中的校驗(yàn)和、以及指令數(shù)據(jù)包長度對指令數(shù)據(jù)包的正確定進(jìn)行校 驗(yàn)。 也就是說,客戶端接收到的通信數(shù)據(jù)包由通信數(shù)據(jù)包頭部和N個指令數(shù)據(jù)包所組 成,在接收到通信數(shù)據(jù)包以后,需要對通信數(shù)據(jù)包進(jìn)行以下判斷 首先,解析出Comm—PacketHeader,對其中的cHead進(jìn)行判斷,確定是否為上述定 義的包頭,如果不是則丟棄此包;如果是,再讀取其中的長度信息,判斷和收到的通信數(shù)據(jù) 包的長度是否相符,如果不符則丟棄;如果相符,繼續(xù)進(jìn)行指令數(shù)據(jù)包個數(shù)的判斷,根據(jù)包 的頭尾標(biāo)志位來判斷通信數(shù)據(jù)包所包含的指令數(shù)據(jù)包的個數(shù)是否和通信數(shù)據(jù)包頭部中所 定義的個數(shù)一致,如果不一致則丟棄,一致則確定接收到的通信數(shù)據(jù)包是正確的,可以進(jìn)行 指令的解析。 在指令解析時,因?yàn)橹耙呀?jīng)通過頭尾標(biāo)志獲取了各個指令數(shù)據(jù)包,第一步需要 將打包時所插入的逃逸字節(jié)去掉。遍歷整個包,查找逃逸字符OxCC,每找到一個就將其去 掉,然后將其后面的字節(jié)和0x30進(jìn)行異或運(yùn)算,恢復(fù)出原來的值,直到把每個逃逸字符都 去掉為止。至此,一個指令數(shù)據(jù)包就可以完整的傳遞到客戶端。最后,還需要判斷指令數(shù)據(jù) 包的長度、校驗(yàn)和等,保證指令數(shù)據(jù)包的正確性。 步驟803,根據(jù)指令流控制儀表和被測設(shè)備,獲取測試輸出結(jié)果。 具體地,在步驟803中,優(yōu)選地,根據(jù)指令流通過以太網(wǎng)或通用接口總線控制儀
表;以及,根據(jù)指令流通過以太網(wǎng)或通用串行總線控制被測設(shè)備。 通過上述處理,本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試方法可以實(shí)現(xiàn)網(wǎng)絡(luò)化管理,本發(fā) 明實(shí)施例中利用現(xiàn)有的以太網(wǎng)絡(luò),節(jié)省了系統(tǒng)搭建成本,可以直接利用以太網(wǎng)1000Mbytes/ s的傳輸速率,極大地提高了測試效率。 以下通過附圖對本發(fā)明實(shí)施例中的分布式遠(yuǎn)程測試系統(tǒng)對被測設(shè)備進(jìn)行測試的
處理過程進(jìn)行詳細(xì)說明。圖9為本發(fā)明實(shí)施例的分布式遠(yuǎn)程測試系統(tǒng)對被測設(shè)備進(jìn)行測試
的信令流程圖,如圖9所示,包括以下處理 步驟l,服務(wù)器端計(jì)算機(jī)啟動,等待客戶端連接; 步驟2,客戶端啟動; 步驟3,通過用戶輸入或者從配置文件獲取儀表的IP ; 步驟4,服務(wù)器端計(jì)算機(jī)確定有客戶端連接; 步驟5,服務(wù)器端計(jì)算機(jī)向客戶端計(jì)算機(jī)發(fā)送CMDJELLO指令; 步驟6,客戶端計(jì)算機(jī)向服務(wù)器端計(jì)算機(jī)反饋CMD_HELLO_CONFIRM指令; 步驟7,服務(wù)器端計(jì)算機(jī)向客戶端計(jì)算機(jī)發(fā)送Request Instrument IP指令,請求
獲取儀表IP ; 步驟8,客戶端計(jì)算機(jī)向服務(wù)器端計(jì)算機(jī)反饋Answer Instrument IP指令,反饋儀
15表IP ; 步驟9,服務(wù)器端計(jì)算機(jī)獲取表IP ;
步驟IO,服務(wù)器端計(jì)算機(jī)遠(yuǎn)程控制儀表; 步驟ll,服務(wù)器端計(jì)算機(jī)向客戶端計(jì)算機(jī)發(fā)送Connect DUT指令,連接被測設(shè)備;
步驟12,客戶端計(jì)算機(jī)接收指令,執(zhí)行指令; 步驟13,客戶端計(jì)算機(jī)向服務(wù)器端計(jì)算機(jī)反饋Return Result指令;
步驟14,服務(wù)器端計(jì)算機(jī)開始測試; 步驟15,服務(wù)器端計(jì)算機(jī)向客戶端計(jì)算機(jī)發(fā)送Send test Instruction指令;
步驟16,客戶端計(jì)算機(jī)向服務(wù)器端計(jì)算機(jī)反饋Return Result指令;
步驟17,服務(wù)器端計(jì)算機(jī)確定測試完成; 步驟18,服務(wù)器端計(jì)算機(jī)向客戶端計(jì)算機(jī)發(fā)送CMD_LEAVE指令;
步驟19,客戶端計(jì)算機(jī)向服務(wù)器端計(jì)算機(jī)反饋CMD_LEAVE_CONFIRM指令;
步驟20,客戶端計(jì)算機(jī)釋放連接;
步驟21,服務(wù)器端計(jì)算機(jī)釋放連接。 綜上所述,本發(fā)明實(shí)施例通過遠(yuǎn)程控制儀表和被測設(shè)備進(jìn)行測試操作,對測試系 統(tǒng)進(jìn)行遠(yuǎn)程管理,克服了現(xiàn)有技術(shù)中基于單控制器架構(gòu)的測試系統(tǒng)過于集中而導(dǎo)致成本增 加的缺陷,能夠提高系統(tǒng)故障的響應(yīng)速度,有效利用時間,壓縮故障解決周期,避免停線,同 時減少出差費(fèi)用,有效提高整個系統(tǒng)的運(yùn)作效率。 以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾 也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種分布式遠(yuǎn)程測試系統(tǒng),其特征在于,包括服務(wù)器數(shù)據(jù)封裝拆解包模塊,用于將指令流按照預(yù)定格式進(jìn)行封裝,得到通信數(shù)據(jù)包;服務(wù)器數(shù)據(jù)封包收發(fā)模塊,用于發(fā)送或接收所述通信數(shù)據(jù)包;客戶端數(shù)據(jù)封包收發(fā)模塊,用于接收或發(fā)送所述通信數(shù)據(jù)包;客戶端數(shù)據(jù)封裝拆解包模塊,用于根據(jù)所述預(yù)定格式對所述通信數(shù)據(jù)包進(jìn)行解析,獲取所述指令流;業(yè)務(wù)實(shí)現(xiàn)模塊,用于根據(jù)所述指令流控制儀表和被測設(shè)備,獲取測試輸出結(jié)果。
2. 如權(quán)利要求1所述的分布式遠(yuǎn)程測試系統(tǒng),其特征在于,還包括 服務(wù)器邏輯總控制模塊,用于對所述服務(wù)器數(shù)據(jù)封裝拆解包模塊和所述服務(wù)器數(shù)據(jù)封包收發(fā)模塊進(jìn)行邏輯控制;客戶端邏輯總控制模塊,用于對所述客戶端數(shù)據(jù)封包收發(fā)模塊和所述客戶端數(shù)據(jù)封裝 拆解包模塊進(jìn)行邏輯控制。
3. 如權(quán)利要求2所述的分布式遠(yuǎn)程測試系統(tǒng),其特征在于,所述預(yù)定格式包括通信數(shù) 據(jù)包頭部、以及一個或多個指令數(shù)據(jù)包,其中,所述通信數(shù)據(jù)包頭部包括所述通信數(shù)據(jù)包 標(biāo)識、所述通信數(shù)據(jù)包長度、以及所述指令數(shù)據(jù)包個數(shù),所述指令數(shù)據(jù)包包括開始標(biāo)識、所 述指令數(shù)據(jù)包長度、指令類型、操作對象、具體操作、標(biāo)志信息、傳輸數(shù)據(jù)、校驗(yàn)和、以及結(jié)束 標(biāo)識。
4. 如權(quán)利要求3所述的分布式遠(yuǎn)程測試系統(tǒng),其特征在于,所述服務(wù)器數(shù)據(jù)封裝拆解包模塊具體包括封裝模塊,用于將所述指令流封裝為所述指令數(shù)據(jù)包,并將所述指令數(shù)據(jù)包添加到所 述通信數(shù)據(jù)包中;檢查模塊,用于檢查所述指令數(shù)據(jù)包中是否存在與所述指令數(shù)據(jù)包的包頭、包尾、以及 逃逸字節(jié)相同的相同字節(jié);插入模塊,用于在所述檢查模塊確定存在所述相同字節(jié)的情況下,在所述相同字節(jié)前 面插入所述逃逸字節(jié);運(yùn)算模塊,用于將所述相同字節(jié)與插入的所述逃逸字節(jié)進(jìn)行異或運(yùn)算,并將所述異或 運(yùn)算的運(yùn)算結(jié)果替換所述相同字節(jié)。
5. 如權(quán)利要求4所述的分布式遠(yuǎn)程測試系統(tǒng),其特征在于,所述客戶端數(shù)據(jù)封裝拆解 包模塊具體包括檢驗(yàn)?zāi)K,用于根據(jù)所述通信數(shù)據(jù)包頭部中的所述通信數(shù)據(jù)包標(biāo)識、所述通信數(shù)據(jù)包 長度、以及所述指令數(shù)據(jù)包個數(shù)對所述通信數(shù)據(jù)包的正確性進(jìn)行檢驗(yàn);查找模塊,用于在所述檢驗(yàn)?zāi)K確定所述通信數(shù)據(jù)包是正確的情況下,查找所述指令 數(shù)據(jù)包中的所述逃逸字節(jié);刪除模塊,用于將所述逃逸字節(jié)刪除;恢復(fù)模塊,用于將所述逃逸字節(jié)后面的字節(jié)與所述逃逸字節(jié)進(jìn)行異或運(yùn)算獲取恢復(fù) 值,并用所述恢復(fù)值替換所述逃逸字節(jié)后面的字節(jié);校驗(yàn)?zāi)K,用于根據(jù)所述指令數(shù)據(jù)包中的所述校驗(yàn)和、以及所述指令數(shù)據(jù)包長度對所 述指令數(shù)據(jù)包的正確定進(jìn)行校驗(yàn)。
6. 如權(quán)利要求1所述的分布式遠(yuǎn)程測試系統(tǒng),其特征在于,所述業(yè)務(wù)實(shí)現(xiàn)模塊具體用于根據(jù)所述指令流通過以太網(wǎng)或通用接口總線控制所述儀表;以及 根據(jù)所述指令流通過以太網(wǎng)或通用串行總線控制所述被測設(shè)備。
7. —種服務(wù)器,其特征在于,包括服務(wù)器數(shù)據(jù)封裝拆解包模塊,用于將指令流按照預(yù)定格式進(jìn)行封裝,得到通信數(shù)據(jù)包;服務(wù)器數(shù)據(jù)封包收發(fā)模塊,用于發(fā)送或接收所述通信數(shù)據(jù)包,以使客戶端根據(jù)所述通 信數(shù)據(jù)包控制儀表和被測設(shè)備。
8. —種分布式遠(yuǎn)程測試方法,其特征在于,包括收通信數(shù)據(jù)包,其中,所述通信數(shù)據(jù)包是由服務(wù)器將指令流按照預(yù)定格式進(jìn)行封裝后 發(fā)送的;根據(jù)所述預(yù)定格式對所述通信數(shù)據(jù)包進(jìn)行解析,獲取所述指令流; 根據(jù)所述指令流控制儀表和被測設(shè)備,獲取測試輸出結(jié)果。
9 如權(quán)利要求8所述的方法,其特征在于,所述預(yù)定格式包括通信數(shù)據(jù)包頭部、以及 一個或多個指令數(shù)據(jù)包,其中,所述通信數(shù)據(jù)包頭部包括所述通信數(shù)據(jù)包標(biāo)識、所述通信 數(shù)據(jù)包長度、以及所述指令數(shù)據(jù)包個數(shù),所述指令數(shù)據(jù)包包括開始標(biāo)識、所述指令數(shù)據(jù)包 長度、指令類型、操作對象、具體操作、標(biāo)志信息、傳輸數(shù)據(jù)、校驗(yàn)和、以及結(jié)束標(biāo)識。
10. 如權(quán)利要求9所述的方法,其特征在于,所述根據(jù)所述預(yù)定格式對所述通信數(shù)據(jù)包進(jìn)行解析包括根據(jù)所述通信數(shù)據(jù)包頭部中的所述通信數(shù)據(jù)包標(biāo)識、所述通信數(shù)據(jù)包長度、以及所述 指令數(shù)據(jù)包個數(shù)對所述通信數(shù)據(jù)包的正確性進(jìn)行檢驗(yàn);在確定所述通信數(shù)據(jù)包是正確的情況下,查找所述指令數(shù)據(jù)包中的逃逸字節(jié),并將所 述逃逸字節(jié)刪除;將所述逃逸字節(jié)后面的字節(jié)與所述逃逸字節(jié)進(jìn)行異或運(yùn)算獲取恢復(fù)值,并用所述恢復(fù)值替換所述逃逸字節(jié)后面的字節(jié);根據(jù)所述指令數(shù)據(jù)包中的所述校驗(yàn)和、以及所述指令數(shù)據(jù)包長度對所述指令數(shù)據(jù)包的正確性進(jìn)行校驗(yàn);所述根據(jù)所述指令流控制儀表和被測設(shè)備包括 根據(jù)所述指令流通過以太網(wǎng)或通用接口總線控制所述儀表;以及 根據(jù)所述指令流通過以太網(wǎng)或通用串行總線控制所述被測設(shè)備。
全文摘要
本發(fā)明公開了一種分布式遠(yuǎn)程測試系統(tǒng)、方法、以及服務(wù)器,該分布式遠(yuǎn)程測試系統(tǒng)包括服務(wù)器數(shù)據(jù)封裝拆解包模塊,用于將指令流按照預(yù)定格式進(jìn)行封裝,得到通信數(shù)據(jù)包;服務(wù)器數(shù)據(jù)封包收發(fā)模塊,用于發(fā)送或接收通信數(shù)據(jù)包;客戶端數(shù)據(jù)封包收發(fā)模塊,用于接收或發(fā)送通信數(shù)據(jù)包;客戶端數(shù)據(jù)封裝拆解包模塊,用于根據(jù)預(yù)定格式對通信數(shù)據(jù)包進(jìn)行解析,獲取指令流;業(yè)務(wù)實(shí)現(xiàn)模塊,用于根據(jù)指令流控制儀表和被測設(shè)備,獲取測試輸出結(jié)果。借助于本發(fā)明實(shí)施例的技術(shù)方案,能夠提高系統(tǒng)故障的響應(yīng)速度,有效利用時間,壓縮故障解決周期,避免停線,同時減少出差費(fèi)用,有效提高整個系統(tǒng)的運(yùn)作效率。
文檔編號H04L29/08GK101741648SQ20091026587
公開日2010年6月16日 申請日期2009年12月29日 優(yōu)先權(quán)日2009年12月29日
發(fā)明者卜凡衛(wèi), 張秋月, 李俊, 蔡顯志 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
古丈县| 玉龙| 麻阳| 特克斯县| 浙江省| 阿坝县| 涿鹿县| 城口县| 靖江市| 德保县| 长汀县| 莎车县| 沙洋县| 衡水市| 福清市| 陈巴尔虎旗| 获嘉县| 进贤县| 新营市| 新蔡县| 清水县| 平山县| 怀来县| 漯河市| 包头市| 灵寿县| 武穴市| 迁西县| 肇庆市| 蓝田县| 顺昌县| 岑巩县| 渑池县| 沅江市| 康乐县| 资阳市| 柘城县| 延寿县| 蛟河市| 历史| 溆浦县|