一種基于共享內存的通用測試平臺快速構建方法
【專利摘要】本發(fā)明公開了一種基于共享內存的通用測試平臺快速構建方法,包括對主控服務程序、測試資源程序、測試引擎程序的構建;所述主控服務程序、測試資源程序、測試引擎程序均為獨立的可執(zhí)行程序;三者之間通過共享內存連接成一個完整測試平臺;其中測試資源程序貢獻輸出到數(shù)據(jù)總線,并從數(shù)據(jù)總線上取數(shù)據(jù)作為輸入,用戶通過數(shù)據(jù)總線接口訪問所有數(shù)據(jù);各測試部件之間相互獨立,并通過總線數(shù)據(jù)作為輸入連接在一起形成一個測試的數(shù)據(jù)閉環(huán);本發(fā)明訪問速度快、效率高;可靠、穩(wěn)定且開銷??;可并行開發(fā)各類測試資源程序,并獨立調試和運行;可擴展性高;仿真測試平臺搭建快速,成本低,測試資源程序的復用性高;具有極高的推廣價值。
【專利說明】
一種基于共享內存的通用測試平臺快速構建方法
技術領域
[0001]本發(fā)明涉及機載航空電子設備測試技術領域,具體是一種基于共享內存的通用測試平臺快速構建方法。
【背景技術】
[0002]近年來,隨著我國航空事業(yè)的發(fā)展,機載航空電子設備的種類也越來越多,對航空電子系統(tǒng)的測試也越來越高,具有較強的通用性和擴展性已成為測試系統(tǒng)的主要性能指標;但目前現(xiàn)有的裝備電子測試設備多為專機專用,即針對不同的機種建立不同的測試平臺,從而造成每套測試平臺重復設計、加工,并導致設備利用率低、資源浪費大等問題,已不滿足新時期裝備電子測試的要求;同時,由于軟硬件高度集中,以及對交聯(lián)設備的依賴,導致產品開發(fā)周期長,調試難度大,交付后期的維護難度也大;再者,現(xiàn)有的多數(shù)測試平臺都是基于國外軟件進行二次開發(fā),核心技術受限于國外,內部原理不明,難以進行功能擴展,只能被動等待升級。
【發(fā)明內容】
[0003]本發(fā)明的目的在于提供一種成本低,測試資源程序復用性高的基于共享內存的通用測試平臺快速構建方法,以解決上述【背景技術】中提出的問題。
[0004]為實現(xiàn)上述目的,本發(fā)明提供如下技術方案:
一種基于共享內存的通用測試平臺快速構建方法,包括對主控服務程序、測試資源程序、測試引擎程序的構建;所述主控服務程序、測試資源程序、測試引擎程序均為獨立的可執(zhí)行程序;三者之間通過共享內存連接成一個完整測試平臺;其中測試資源程序貢獻輸出到數(shù)據(jù)總線,并從數(shù)據(jù)總線上取數(shù)據(jù)作為輸入,用戶通過數(shù)據(jù)總線接口訪問所有數(shù)據(jù);各測試部件之間相互獨立,并通過總線數(shù)據(jù)作為輸入連接在一起形成一個測試的數(shù)據(jù)閉環(huán)。
[0005]作為本發(fā)明進一步的方案:所述主控服務程序負責從配置文件中導入各測試資源參數(shù),并創(chuàng)建共享內存塊,形成虛擬測試總線,然后啟動各個測試資源程序和測試引擎程序,最后根據(jù)同步周期控制各個測試資源程序和測試引擎程序的數(shù)據(jù)更新。
[0006]作為本發(fā)明再進一步的方案:所述主控服務程序分為以下幾個步驟:
1)導入配置文件:對每一個測試資源定義自身的輸出、輸入?yún)?shù)、數(shù)據(jù)類型、初始值,以及同步周期,信息以xml格式文件保存,由主控服務程序導入并進行合法性檢查;
2)分配內存空間:根據(jù)前一步的配置信息,創(chuàng)建共享內存空間,形成虛擬測試總線,并維護每一個輸出參數(shù)的位置、狀態(tài)、數(shù)值;
3)啟動子程序:由主控服務程序順序啟動測試引擎和各個測試資源程序,測試引擎和各個測試資源程序根據(jù)當前測試項目名稱連接主控服務;
4)等待運行指令:用戶從GUI界面上控制測試平臺的運行狀態(tài),運行指令包括初始化、運行一個周期、持續(xù)運行、暫停、退出;主控服務根據(jù)用戶指令,更新對應內存控制標志,最后測試引擎和測試資源程序根據(jù)最新運行指令進行工作; 作為本發(fā)明再進一步的方案:所述主控服務程序部分采用C語言、TCL/TK編寫。
[0007]作為本發(fā)明再進一步的方案:所述測試引擎程序是測試規(guī)程的解釋執(zhí)行程序,負責讀取測試規(guī)程文件內容,根據(jù)規(guī)程內容執(zhí)行規(guī)程語句,修改測試引擎的輸出,影響測試資源程序的運行,實現(xiàn)測試目的,同時對測試結果進行比較判斷。
[0008]作為本發(fā)明再進一步的方案:所述測試引擎程序分為以下幾個步驟:
1)導入解析測試規(guī)程:用戶編寫的測試規(guī)程包括以下幾類語句:
消息提示info:1nfo 〃打開負載柜通道01開關!〃
修改參數(shù)set:set load01_switload = I延遲處理 delay:Delay 1000結果判斷compare:Compare load01_voltage = 5
測試引擎程序導入測試規(guī)程文件后,進行語法和語義檢查,并轉換為內部數(shù)據(jù)以方便后續(xù)執(zhí)行;
2)獲取運行指令:測試引擎程序作為整個測試平臺的一部分,與主控服務進行同步執(zhí)行,根據(jù)獲取的指令執(zhí)行相應動作;
3)執(zhí)行規(guī)程語句:當前指令為運行時,測試引擎根據(jù)第一步獲取的信息,執(zhí)行一條規(guī)程語句,執(zhí)行成功后繼續(xù)進行下一周期的循環(huán),進入第二步,往復直至最后一條規(guī)程語句執(zhí)行完畢。
[0009]作為本發(fā)明再進一步的方案:所述測試引擎程序部分采用C語言、TCL\TK編寫。
[0010]作為本發(fā)明再進一步的方案:所述測試資源程序是測試平臺的業(yè)務邏輯實現(xiàn),根據(jù)實際業(yè)務需求和平臺硬件資源進行封裝,可包括各種總線數(shù)據(jù)處理,如1553B、ARINC429、AFDX、232/422等;所述測試資源程序分為以下幾個步驟:
1)連接服務器:測試資源程序以注冊設備的方式向主控服務請求建立連接,在連接成功的情況下,將測試資源的1即輸入、輸出參數(shù)與虛擬測試總線進行地址映射,以指針的方式操作數(shù)據(jù);
2)獲取運行指令:測試資源程序作為整個測試平臺的一部分,與主控服務進行同步執(zhí)行,根據(jù)獲取的指令執(zhí)行相應動作;
3)初始化:測試資源程序,接收主控服務的第一個指令進行初始化操作,包括對硬件設備、板卡的初始化,同時也加載相應的編解碼規(guī)則;
4)運行:測試資源程序在運行階段完成業(yè)務邏輯功能以及和總線數(shù)據(jù)交換,首先從虛擬測試總線上讀取輸入,根據(jù)編碼規(guī)則,將數(shù)據(jù)打包并從硬件板卡發(fā)送出去;其次從硬件板卡上讀取原始數(shù)據(jù),解碼成工程值,當主控服務允許數(shù)據(jù)更新時,將新工程值更新到虛擬測試總線上;通過讀寫兩個環(huán)節(jié),完成測試資源與虛擬測試總線的數(shù)據(jù)更新;
作為本發(fā)明再進一步的方案:所述測試資源程序采用C語言開發(fā),或采用simulink、Iabview進行開發(fā)集成,測試資源程序調用主控服務提供的統(tǒng)一的測試資源封裝接口。
[0011]與現(xiàn)有技術相比,本發(fā)明的有益效果是:本發(fā)明通過對各個測試資源接口的定義,實現(xiàn)測試平臺的快速搭建,甚至在某些硬件設備尚未就緒的情況下,通過接入軟件模型的方式,進行系統(tǒng)的初步調試,盡早發(fā)現(xiàn)并修復問題,減少產品開發(fā)的周期與成本;同時由于接口預先定義好,使得不同開發(fā)人員可以并行開發(fā);本發(fā)明基于共享內存創(chuàng)建虛擬測試總線,訪問速度快、效率高;基于請求響應式的同步控制機制,可靠、穩(wěn)定且開銷小;支持測試平臺即系統(tǒng)級的暫??刂啤尾?多步調試功能;基于接口定義的平臺接入方式,可讓測試人員早期就進行測試規(guī)程的開發(fā);可并行開發(fā)各類測試資源程序,并獨立調試和運行;測試資源程序可通過各種總線接入測試平臺,可擴展性高;在硬件設備未就緒情況下,可由仿真模型代替,協(xié)同其它設備開發(fā)調試;仿真測試平臺搭建快速,成本低,測試資源程序的復用性尚;具有極尚的推廣價值。
【附圖說明】
[0012]圖1為本發(fā)明的總體框架圖。
[0013]圖2為本發(fā)明中主控服務程序的主控服務流程圖。
[0014]圖3為本發(fā)明中測試弓丨擎程序流程圖。
[0015]圖4為本發(fā)明中測試資源程序流程圖。
[0016]圖5為本發(fā)明實施例1的硬件在環(huán)測試圖。
[0017]圖6為本發(fā)明實施例2的模型在環(huán)測試圖。
【具體實施方式】
[0018]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0019]請參閱圖1?4,一種基于共享內存的通用測試平臺快速構建方法,包括對主控服務程序、測試資源程序、測試引擎程序的構建;所述主控服務程序、測試資源程序、測試引擎程序均為獨立的可執(zhí)行程序;三者之間通過共享內存有效的連接成一個整體,形成完整測試平臺;其中測試資源程序可貢獻輸出到數(shù)據(jù)總線,也可從數(shù)據(jù)總線上取數(shù)據(jù)作為輸入,用戶則可以通過數(shù)據(jù)總線接口訪問所有數(shù)據(jù);各測試部件之間相互獨立,只能修改自己的輸出數(shù)據(jù),同時通過總線數(shù)據(jù)作為輸入有效的連接在一起,共同形成一個測試的數(shù)據(jù)閉環(huán)。
[0020]1.所述主控服務程序是本發(fā)明通用測試平臺的核心部分,主要負責從配置文件中導入各測試資源參數(shù),并創(chuàng)建共享內存塊,形成虛擬測試總線,然后啟動各個測試資源程序和測試引擎,最后根據(jù)同步周期控制各個測試資源程序和測試引擎的數(shù)據(jù)更新。
[0021]主控服務程序分為以下幾個步驟:
1)導入配置文件:每一個測試資源都需要定義自身的輸出、輸入?yún)?shù)、數(shù)據(jù)類型、初始值,以及同步周期等,信息以xml格式文件保存,由主控服務導入并進行合法性檢查;
2)分配內存空間:根據(jù)前一步的配置信息,創(chuàng)建共享內存空間,形成虛擬測試總線,并維護每一個輸出參數(shù)的位置、狀態(tài)、數(shù)值;
3)啟動子程序:由主控服務程序順序啟動測試引擎和各個測試資源程序,測試引擎和各個測試資源程序根據(jù)當前測試項目名稱連接主控服務;
4)等待運行指令:用戶可以從GUI界面上控制測試平臺的運行狀態(tài),運行指令包括初始化、運行一個周期、持續(xù)運行、暫停、退出。主控服務根據(jù)用戶指令,更新對應內存控制標志,最后測試引擎和測試資源程序根據(jù)最新運行指令進行工作;
主控服務程序部分采用C語言、TCL/TK編寫。
[0022]2.測試引擎程序:是測試規(guī)程的解釋執(zhí)行程序,主要負責讀取測試規(guī)程文件內容,根據(jù)規(guī)程內容執(zhí)行規(guī)程語句,修改測試引擎的輸出,進而影響測試資源程序的運行,從而實現(xiàn)測試的目的,同時也包括對測試結果的比較判斷。
[0023 ]測試弓I擎程序分為以下幾個步驟:
1)導入解析測試規(guī)程:用戶編寫的測試規(guī)程包括以下幾類語句:
消息提示info:1nfo 〃打開負載柜通道01開關!〃
修改參數(shù)set:set load01_switload = I延遲處理 delay:Delay 1000結果判斷compare:Compare load01_voltage = 5
測試引擎程序導入測試規(guī)程文件后,進行語法和語義檢查,并轉換為內部數(shù)據(jù),方便后續(xù)執(zhí)行;
2)獲取運行指令:測試引擎程序作為整個測試平臺的一部分,需要與主控服務進行同步執(zhí)行,根據(jù)獲取的指令執(zhí)行相應動作;
3)執(zhí)行規(guī)程語句:如果當前指令是運行,則測試引擎根據(jù)第一步獲取的信息,執(zhí)行一條規(guī)程語句,執(zhí)行成功后繼續(xù)進行下一周期的循環(huán),即進入第二步,往復直至最后一條規(guī)程語句執(zhí)行完畢;
測試引擎程序部分采用c語言、TCL\TK編寫。
[0024]3.測試資源程序:是測試平臺的業(yè)務邏輯實現(xiàn),根據(jù)實際業(yè)務需求和平臺硬件資源進行封裝,可包括各種總線數(shù)據(jù)處理,如1553B、ARINC429、AFDX、232/422等。
[0025]測試資源程序分為以下幾個步驟:
1)連接服務器:測試資源程序需要以注冊設備的方式向主控服務請求建立連接,在連接成功的情況下,將本測試資源的1即輸入、輸出參數(shù)與虛擬測試總線進行地址映射,以指針的方式操作數(shù)據(jù),省去重復拷貝的開銷;
2)獲取運行指令:測試資源程序作為整個測試平臺的一部分,需要與主控服務進行同步執(zhí)行,根據(jù)獲取的指令執(zhí)行相應動作;
3)初始化:測試資源程序,接收主控服務的第一個指令必須是初始化,包括對硬件設備、板卡的初始化,同時也加載相應的編解碼規(guī)則;
4)運行:測試資源程序在運行階段需要完成業(yè)務邏輯功能,以及和總線數(shù)據(jù)交換,首先從虛擬測試總線上讀取輸入,根據(jù)編碼規(guī)則,將數(shù)據(jù)打包并從硬件板卡發(fā)送出去;其次從硬件板卡上讀取原始數(shù)據(jù),解碼成工程值,當主控服務允許數(shù)據(jù)更新時,將新工程值更新到虛擬測試總線上;通過讀寫兩個環(huán)節(jié),完成測試資源與虛擬測試總線的數(shù)據(jù)更新;
測試資源程序采用C語言開發(fā),但是也可根據(jù)用戶實際情況,采用simulinkdabview等其它開發(fā)工具進行開發(fā)集成,只需要調用主控服務提供的統(tǒng)一的測試資源封裝接口。
[0026]請參閱圖5,本發(fā)明可用于硬件在環(huán)測試,被測件(UUT)通過各總線與測試服務器相連,支持類型包括A429、AFDX、RS232/422、以太網等。
[0027]請參閱圖6,本發(fā)明可用于模型在環(huán)測試,在某個設備暫時不可用或者未到位情況下,可以用軟件模型代替被測件,其1接口定義與真實被測件保持一致,以保證測試工作的正常進行,此外軟件模型可以用于處理復雜計算,調用第三方保密庫等。
[0028]對于本領域技術人員而言,顯然本發(fā)明不限于上述示范性實施例的細節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本發(fā)明。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化囊括在本發(fā)明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。
[0029]此外,應當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施例中的技術方案也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。
【主權項】
1.一種基于共享內存的通用測試平臺快速構建方法,包括對主控服務程序、測試資源程序、測試引擎程序的構建;其特征在于,所述主控服務程序、測試資源程序、測試引擎程序均為獨立的可執(zhí)行程序;三者之間通過共享內存連接成一個完整測試平臺;其中測試資源程序貢獻輸出到數(shù)據(jù)總線,并從數(shù)據(jù)總線上取數(shù)據(jù)作為輸入,用戶通過數(shù)據(jù)總線接口訪問所有數(shù)據(jù);各測試部件之間相互獨立,并通過總線數(shù)據(jù)作為輸入連接在一起形成一個測試的數(shù)據(jù)閉環(huán)。2.根據(jù)權利要求1所述的基于共享內存的通用測試平臺快速構建方法,其特征在于:所述主控服務程序負責從配置文件中導入各測試資源參數(shù),并創(chuàng)建共享內存塊,形成虛擬測試總線,然后啟動各個測試資源程序和測試引擎程序,最后根據(jù)同步周期控制各個測試資源程序和測試引擎程序的數(shù)據(jù)更新。3.根據(jù)權利要求2所述的基于共享內存的通用測試平臺快速構建方法,其特征在于:所述主控服務程序分為以下幾個步驟: 1)導入配置文件:對每一個測試資源定義自身的輸出、輸入?yún)?shù)、數(shù)據(jù)類型、初始值,以及同步周期,信息以xml格式文件保存,由主控服務程序導入并進行合法性檢查; 2)分配內存空間:根據(jù)前一步的配置信息,創(chuàng)建共享內存空間,形成虛擬測試總線,并維護每一個輸出參數(shù)的位置、狀態(tài)、數(shù)值; 3)啟動子程序:由主控服務程序順序啟動測試引擎和各個測試資源程序,測試引擎和各個測試資源程序根據(jù)當前測試項目名稱連接主控服務; 4)等待運行指令:用戶從GUI界面上控制測試平臺的運行狀態(tài),運行指令包括初始化、運行一個周期、持續(xù)運行、暫停、退出;主控服務根據(jù)用戶指令,更新對應內存控制標志,最后測試引擎和測試資源程序根據(jù)最新運行指令進行工作。4.根據(jù)權利要求2所述的基于共享內存的通用測試平臺快速構建方法,其特征在于:所述主控服務程序部分采用C語言、TCL/TK編寫。5.根據(jù)權利要求1所述的基于共享內存的通用測試平臺快速構建方法,其特征在于:所述測試引擎程序是測試規(guī)程的解釋執(zhí)行程序,負責讀取測試規(guī)程文件內容,根據(jù)規(guī)程內容執(zhí)行規(guī)程語句,修改測試引擎的輸出,影響測試資源程序的運行,實現(xiàn)測試目的,同時對測試結果進行比較判斷。6.根據(jù)權利要求5所述的基于共享內存的通用測試平臺快速構建方法,其特征在于:所述測試弓I擎程序分為以下幾個步驟: 1)導入解析測試規(guī)程:用戶編寫的測試規(guī)程包括以下幾類語句: 消息提示info:1nfo 〃打開負載柜通道01開關!〃 修改參數(shù)set:set load01_switload = I 延遲處理 delay:Delay 1000 結果判斷compare:Compare load01_voltage = 5 測試引擎程序導入測試規(guī)程文件后,進行語法和語義檢查,并轉換為內部數(shù)據(jù)以方便后續(xù)執(zhí)行; 2)獲取運行指令:測試引擎程序作為整個測試平臺的一部分,與主控服務進行同步執(zhí)行,根據(jù)獲取的指令執(zhí)行相應動作; 3)執(zhí)行規(guī)程語句:當前指令為運行時,測試引擎根據(jù)第一步獲取的信息,執(zhí)行一條規(guī)程語句,執(zhí)行成功后繼續(xù)進行下一周期的循環(huán),進入第二步,往復直至最后一條規(guī)程語句執(zhí)行完畢。7.根據(jù)權利要求5所述的基于共享內存的通用測試平臺快速構建方法,其特征在于:所述測試引擎程序部分采用C語言、TCL\TK編寫。8.根據(jù)權利要求2所述的基于共享內存的通用測試平臺快速構建方法,其特征在于:所述測試資源程序是測試平臺的業(yè)務邏輯實現(xiàn),根據(jù)實際業(yè)務需求和平臺硬件資源進行封裝,包括總線數(shù)據(jù)處理,具體為1553B、ARINC429、AFDX、232/422總線數(shù)據(jù)處理;所述測試資源程序分為以下幾個步驟: 1)連接服務器:測試資源程序以注冊設備的方式向主控服務請求建立連接,在連接成功的情況下,將測試資源的1即輸入、輸出參數(shù)與虛擬測試總線進行地址映射,以指針的方式操作數(shù)據(jù); 2)獲取運行指令:測試資源程序作為整個測試平臺的一部分,與主控服務進行同步執(zhí)行,根據(jù)獲取的指令執(zhí)行相應動作; 3)初始化:測試資源程序,接收主控服務的第一個指令進行初始化操作,包括對硬件設備、板卡的初始化,同時也加載相應的編解碼規(guī)則; 4)運行:測試資源程序在運行階段完成業(yè)務邏輯功能以及和總線數(shù)據(jù)交換,首先從虛擬測試總線上讀取輸入,根據(jù)編碼規(guī)則,將數(shù)據(jù)打包并從硬件板卡發(fā)送出去;其次從硬件板卡上讀取原始數(shù)據(jù),解碼成工程值,當主控服務允許數(shù)據(jù)更新時,將新工程值更新到虛擬測試總線上;通過讀寫兩個環(huán)節(jié),完成測試資源與虛擬測試總線的數(shù)據(jù)更新。9.根據(jù)權利要求8所述的基于共享內存的通用測試平臺快速構建方法,其特征在于:所述測試資源程序采用C語言開發(fā),或采用simulinkaabview進行開發(fā)集成,測試資源程序調用主控服務提供的統(tǒng)一的測試資源封裝接口。
【文檔編號】G05B23/02GK105955239SQ201610356343
【公開日】2016年9月21日
【申請日】2016年5月26日
【發(fā)明人】夏高明, 駱新平, 詹海明, 蘭積錢
【申請人】上海添測智能科技有限公司