專利名稱:可裝配的仿真程序可視化開(kāi)發(fā)系統(tǒng)的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)分布式交互仿真領(lǐng)域,具體的說(shuō)是一種可裝配的仿真程序可視化開(kāi)發(fā)系統(tǒng)的實(shí)現(xiàn)方法。
背景技術(shù):
計(jì)算機(jī)仿真是在研究系統(tǒng)過(guò)程中,根據(jù)相似原理利用計(jì)算機(jī)來(lái)逼真模仿研究對(duì)象,計(jì)算機(jī)仿真將研究對(duì)象進(jìn)行數(shù)學(xué)描述,建模編程,且在計(jì)算機(jī)中運(yùn)行實(shí)現(xiàn)。它不怕破壞、易修改、可重用。分布交互仿真是采用協(xié)調(diào)一致的結(jié)構(gòu)、標(biāo)準(zhǔn)、協(xié)議和數(shù)據(jù)庫(kù),通過(guò)局域網(wǎng)、廣域網(wǎng)將分散在各地的仿真設(shè)備互聯(lián)交互作用,并可人參與交互作用的一種綜合環(huán)境。分布交互仿真是仿真器聯(lián)網(wǎng)的發(fā)展。分布交互仿真以網(wǎng)絡(luò)為基礎(chǔ)。通過(guò)聯(lián)網(wǎng)技術(shù)將分散在各地的人在回路仿真器、計(jì)算機(jī)生成兵力以及其他仿真設(shè)備聯(lián)接為一個(gè)整體,形成一個(gè)在時(shí)間和空間上一致的綜合環(huán)境,實(shí)現(xiàn)平臺(tái)(飛機(jī)、導(dǎo)彈、艦艇、坦克)與環(huán)境(地形、大氣、海洋)之間、平臺(tái)與平臺(tái)之間、環(huán)境與環(huán)境之間的交互作用和相互影響。
分布交互仿真技術(shù)從產(chǎn)生(SIMNET計(jì)劃),到DIS2.×IEEE1278協(xié)議和ALSP協(xié)議的制定,進(jìn)而發(fā)展到DIS++/HLA體系結(jié)構(gòu),都是企圖解決建模與仿真領(lǐng)域存在的問(wèn)題絕大多數(shù)仿真器應(yīng)用實(shí)現(xiàn)較為獨(dú)立,仿真器之間的交互性和重用性差;開(kāi)發(fā)、維護(hù)和使用費(fèi)時(shí)及成本高。
對(duì)于構(gòu)造分布交互仿真系統(tǒng)這類復(fù)雜的系統(tǒng),迫切需要統(tǒng)一的平臺(tái)、工具進(jìn)行開(kāi)發(fā),以便提高仿真應(yīng)用程序的模塊可重用性和開(kāi)發(fā)的簡(jiǎn)易性,減少仿真應(yīng)用程序的開(kāi)發(fā)過(guò)程中復(fù)雜而繁重的工作,縮短仿真應(yīng)用程序的開(kāi)發(fā)周期。
發(fā)明內(nèi)容
本發(fā)明的目的就是解決分布交互仿真中對(duì)仿真應(yīng)用程序的模塊可重用性和程序開(kāi)發(fā)的簡(jiǎn)易性的要求問(wèn)題,構(gòu)建一個(gè)合理的分布交互仿真應(yīng)用程序系統(tǒng)結(jié)構(gòu),并實(shí)現(xiàn)其中的最關(guān)鍵的基礎(chǔ)部分,使之成為研究分布交互仿真的基礎(chǔ)平臺(tái)。
本發(fā)明的技術(shù)方案為基于HLA(High Level Architecture,高層體系結(jié)構(gòu)),支持各種仿真應(yīng)用程序(如平臺(tái)級(jí)實(shí)體仿真、聚合仿真等)之間的交互以及它們和C4I(Command,Control,Communications,Computers,andIntelligence,指揮、控制、通信、計(jì)算機(jī)和情報(bào))系統(tǒng)間的交互,同時(shí)重點(diǎn)考慮該系統(tǒng)的可維護(hù)性、可擴(kuò)展性和工具化。該開(kāi)發(fā)平臺(tái)要為分布交互仿真應(yīng)用程序的模塊化裝配提供一種體系結(jié)構(gòu),并提供分布交互仿真通用功能以方便應(yīng)用程序的開(kāi)發(fā)。
本發(fā)明的有益效果是1、實(shí)現(xiàn)了一個(gè)基于HLA的分布交互仿真應(yīng)用程序架構(gòu)BH HLA FM(BeihangHigh Level Architecture Framework,分布交互仿真應(yīng)用程序架構(gòu)),BH HLAFM為分布交互仿真應(yīng)用程序的模塊化裝配提供一種體系結(jié)構(gòu),并提供分布交互仿真通用功能以方便應(yīng)用程序的開(kāi)發(fā)。BH HLA FM是符合COM標(biāo)準(zhǔn)的組件軟件,并提供基于IEEE1516標(biāo)準(zhǔn)和HLA Rules V1.3標(biāo)準(zhǔn)的兩個(gè)版本。
2、實(shí)現(xiàn)了一個(gè)基于BH HLA FM的HLA仿真應(yīng)用程序領(lǐng)域的用戶集成開(kāi)發(fā)環(huán)境BH HLA Studio(Beihang High Level Architecture Studio,HLA仿真應(yīng)用程序用戶集成開(kāi)發(fā)環(huán)境)。應(yīng)用程序開(kāi)發(fā)者通過(guò)它提供的可視化界面可以方便快捷地進(jìn)行基于BH HLA FM的HLA仿真應(yīng)用程序的開(kāi)發(fā)。
圖1是BH HLA整體結(jié)構(gòu)圖;圖2是BH HLA FM體系結(jié)構(gòu)模型圖;圖3是BH HLA FM組成部分圖;圖4是信息采集管理實(shí)現(xiàn)類圖;圖5是信息分發(fā)管理實(shí)現(xiàn)類圖;圖6是BH HLA FM總體處理流程圖;圖7是BH HLA FM仿真控制處理流程圖;圖8是配置文件樣例;圖9是BH HLA Studio總體結(jié)構(gòu)圖;圖10是HLAAppWizard的總體流程圖;圖11是FederateWizard的總體流程圖.
具體實(shí)施例方式
本發(fā)明包括一個(gè)分布交互仿真應(yīng)用程序架構(gòu)BH HLA FM以及基于其的用戶集成開(kāi)發(fā)環(huán)境BH HLA Studio,見(jiàn)圖1。其中BH HLA FM是一個(gè)基于HLA規(guī)范的應(yīng)用程序開(kāi)發(fā)架構(gòu),它采用了“世界”模型,使得各子世界的代碼只與本世界有關(guān),從而簡(jiǎn)化了仿真應(yīng)用程序的設(shè)計(jì);同時(shí),還采用了事件機(jī)制作為子世界內(nèi)部,子世界和子世界之間,BH HLA FM和仿真應(yīng)用程序之間的信息通知與傳遞機(jī)制,應(yīng)用程序開(kāi)發(fā)者可以只需關(guān)注相關(guān)事件的編程即可完成整個(gè)仿真應(yīng)用程序。
BH HLA FM為分布交互仿真應(yīng)用程序的模塊化裝配提供一種體系結(jié)構(gòu),該體系結(jié)構(gòu)模型如圖2所示。實(shí)際仿真世界是共享虛擬環(huán)境通過(guò)不同感知系統(tǒng)在不同方面給用戶的體現(xiàn)。它由各種子世界組成。一般把實(shí)際仿真世界簡(jiǎn)稱為仿真世界。抽象仿真世界是用抽象仿真模型來(lái)描述各種仿真對(duì)象的世界。它是對(duì)整個(gè)仿真世界的抽象描述。BH HLA FM(分布交互仿真應(yīng)用程序架構(gòu))中所描述的世界就是一個(gè)抽象仿真世界。子世界是共享虛擬環(huán)境通過(guò)某一特定感知系統(tǒng)給用戶的體現(xiàn)。如,通過(guò)三維圖形系統(tǒng)表現(xiàn)出的“三維圖形子世界”、通過(guò)聲音系統(tǒng)讓用戶感受到的“聲音子世界”、數(shù)據(jù)衣等設(shè)備體現(xiàn)的“觸覺(jué)子世界”等等。抽象仿真模型數(shù)據(jù)庫(kù)是聯(lián)盟對(duì)仿真對(duì)象以及仿真事件的一種統(tǒng)一的數(shù)據(jù)化表示。其核心內(nèi)容是對(duì)象和事件的分類以及“交互數(shù)據(jù)模型庫(kù)”。交互數(shù)據(jù)模型庫(kù)是不同應(yīng)用程序之間通訊消息的格式定義集合,它主要包括兩個(gè)部分對(duì)象模型(包括對(duì)象類型和對(duì)象屬性)和事件模型(也稱為交互模型)。抽象仿真數(shù)據(jù)倉(cāng)庫(kù)是根據(jù)抽象仿真模型數(shù)據(jù)庫(kù)中的相應(yīng)模型,它是對(duì)虛擬環(huán)境中各個(gè)對(duì)象的具體數(shù)據(jù)化表示。
BH HLA FM由以下幾個(gè)主要部分組成信息采集管理,信息分發(fā)管理,仿真管理。它們之間通過(guò)消息機(jī)制聯(lián)系起來(lái)。BH HLA FM的主要組成如圖3所示。下面分別對(duì)各部分進(jìn)行簡(jiǎn)要地闡述。
信息采集管理根據(jù)訂購(gòu)表(該表主要用來(lái)存儲(chǔ)盟員開(kāi)發(fā)者對(duì)輸入和輸出的需求)靜態(tài)或動(dòng)態(tài)地配置并管理輸入模塊;以符合訂購(gòu)關(guān)系的方式向仿真管理模塊通知輸入內(nèi)容。目前主要是指外部設(shè)備輸入的配置與管理。與仿真管理的關(guān)聯(lián)方式消息機(jī)制。即輸入信息通過(guò)消息機(jī)制傳遞到仿真管理模塊。
信息分發(fā)管理根據(jù)訂購(gòu)表動(dòng)態(tài)配置并管理輸出模塊;創(chuàng)建各輸出子世界(輸出模塊的輸出對(duì)象)的代理對(duì)象;以符合訂購(gòu)關(guān)系的方式輸出信息流。目前包括三維圖形子世界,二維圖像子世界,三維聲音子世界的配置與管理。與仿真管理的關(guān)聯(lián)方式消息機(jī)制。仿真管理通過(guò)觸發(fā)輸出事件來(lái)向信息分發(fā)管理傳遞信息。
仿真管理包括對(duì)象管理、交互管理、聯(lián)盟管理、聲明管理、配置管理、訂購(gòu)表管理五種管理功能,另外還負(fù)責(zé)提供仿真引擎。其中各部分的功能如下1.對(duì)象(交互)管理用更自然的方法來(lái)表達(dá)對(duì)象類和交互類(請(qǐng)參照IEEE Std 1516規(guī)范)。使用統(tǒng)一的數(shù)值表示。當(dāng)數(shù)值更新時(shí),能自動(dòng)發(fā)布該改變。提供聯(lián)盟盟員開(kāi)發(fā)者代碼入口。
2.聯(lián)盟和聲明管理包括聯(lián)盟創(chuàng)建、加入、退出、刪除及發(fā)布訂購(gòu)聲明。
3.配置管理管理并解析聯(lián)盟配置文件(主要指CFG文件)。管理BH HLAFM相關(guān)配置信息(如推進(jìn)算法的選擇,初始訂購(gòu)信息等)。
4.訂購(gòu)表管理訂購(gòu)表的增、刪、改、查。對(duì)改變的通知(訂購(gòu)表改變事件)。
5.仿真管理[本地]和遠(yuǎn)程對(duì)象的管理(實(shí)例的創(chuàng)建)。交互管理(實(shí)例的創(chuàng)建)。創(chuàng)建各內(nèi)部對(duì)象。管理各內(nèi)部對(duì)象之間信息的相互流動(dòng)。通過(guò)消息機(jī)制與信息采集和分發(fā)管理進(jìn)行交互。
6.仿真引擎仿真引擎是BH HLA FM的驅(qū)動(dòng)核心,其主要功能是提供用戶可配置的符合仿真推進(jìn)邏輯的方式推進(jìn)仿真進(jìn)程。其中算法包括三種方式時(shí)間步長(zhǎng),事件驅(qū)動(dòng)和簡(jiǎn)單模式。具體到HLA中就是TAR/NER/FQR。
消息機(jī)制BH HLA FM內(nèi)部信息流動(dòng)的主要承擔(dān)者,BH HLA FM與應(yīng)用程序代碼交流信息的手段。
下面介紹以上各部分的實(shí)現(xiàn)方法。
信息采集管理(如圖4)輸入信息種類包括外部設(shè)備輸入、網(wǎng)絡(luò)輸入。信息采集管理的設(shè)計(jì)包括外部設(shè)備輸入類、網(wǎng)絡(luò)輸入類、信息采集管理器類和信息采集器類,信息采集管理器類與其他三個(gè)類之間是管理者和雇員關(guān)聯(lián)關(guān)系,外部設(shè)備輸入類、網(wǎng)絡(luò)輸入類與信息采集器類之間是發(fā)布訂購(gòu)關(guān)聯(lián)關(guān)系。外部設(shè)備輸入類封裝了對(duì)外部設(shè)備輸入的獲取方法,同時(shí)維護(hù)一個(gè)輸入原語(yǔ)隊(duì)列,它在自己的線程空間中工作。網(wǎng)絡(luò)輸入類負(fù)責(zé)管理來(lái)自RTI(Runtime Infrastructure運(yùn)行時(shí)支撐環(huán)境)的通知,當(dāng)有通知到來(lái)時(shí),網(wǎng)絡(luò)輸入類將通知名放在信息名稱屬性中,將通知的內(nèi)容保存。信息采集管理器類負(fù)責(zé)維護(hù)發(fā)布者與訂購(gòu)者的映射表,同時(shí)定義了建立這種映射以及發(fā)布通知的接口。這里把從外部設(shè)備的輸入和RTI的通知統(tǒng)一稱為“輸入”。當(dāng)某種輸入到來(lái)時(shí),信息采集器類的更新方法被激活,該方法的任務(wù)是從輸入對(duì)象中得到輸入信息,創(chuàng)建消息,并將消息加入的消息隊(duì)列中去。信息采集管理器類是信息管理類的子類,它管理輸入信息的訂購(gòu)。
信息分發(fā)管理(如圖5)輸出子世界包括三維圖形子世界、二維圖像子世界和三維聲音子世界。信息分發(fā)管理的設(shè)計(jì)包括輸出子世界類、信息分發(fā)管理器類和信息分發(fā)器類,信息分發(fā)管理器類與其他類之間是管理者和雇員關(guān)聯(lián)關(guān)系,信息分發(fā)器類與輸出子世界類之間是發(fā)布訂購(gòu)關(guān)聯(lián)關(guān)系。信息管理類的子類信息分發(fā)管理器類定義了創(chuàng)建關(guān)聯(lián)和接收雇員報(bào)告這兩個(gè)函數(shù)。創(chuàng)建關(guān)聯(lián)函數(shù)中,通過(guò)對(duì)訂購(gòu)表的讀取生成子世界的“代理人”對(duì)象,對(duì)于其中使用到的函數(shù)生成各個(gè)輸出子世界,該函數(shù)是一個(gè)“工廠方法”,用來(lái)創(chuàng)建輸出子世界對(duì)象;考慮到此時(shí)的發(fā)布者-訂購(gòu)者關(guān)系為一對(duì)多的關(guān)系,接收雇員報(bào)告函數(shù)則定義一個(gè)更加“節(jié)省”的更新策略,它分析發(fā)布者的變化,只有當(dāng)需要某個(gè)訂購(gòu)者對(duì)該變化進(jìn)行響應(yīng)時(shí)才進(jìn)行通知。輸出信息發(fā)布者,它注冊(cè)那些它關(guān)心的輸出事件。在獲得事件內(nèi)容之后,它通知相應(yīng)輸出子世界進(jìn)行響應(yīng)。
三維圖形子世界等子世界類負(fù)責(zé)各子世界的重建工作,它定義了更新函數(shù),該函數(shù)內(nèi)容和信息采集管理模塊中訂購(gòu)者的更新函數(shù)類似,從參數(shù)中組織相應(yīng)信息并生成相應(yīng)事件,然后調(diào)用事件的通知函數(shù)觸發(fā)該事件;該設(shè)計(jì)要求外部子世界的開(kāi)發(fā)者將代碼寫(xiě)在回調(diào)處理函數(shù)中。
仿真管理定義對(duì)象管理類、交互管理類、聯(lián)盟管理類、聲明管理類、配置管理類、訂購(gòu)表管理類,它們都和仿真管理類是管理者和雇員的關(guān)聯(lián)關(guān)系。
消息機(jī)制定義模板類,封裝了消息響應(yīng)函數(shù)的注冊(cè)、注銷(xiāo),消息通知以及對(duì)消息隊(duì)列的管理等操作。BH HLA FM中所有事件都繼承自該模板類。
模塊之間的接口為信息采集管理接受輸入,并生成相應(yīng)事件,組成事件隊(duì)列。仿真引擎在符合仿真步進(jìn)中要處理輸入的時(shí)刻,從事件隊(duì)列中讀取事件,并以符合某種邏輯的順序遍歷輸入事件隊(duì)列并進(jìn)行處理。信息分發(fā)管理向訂購(gòu)了信息的子世界發(fā)送各種重建事件,在各子世界中定義響應(yīng)事件的函數(shù)(回調(diào)函數(shù)),當(dāng)事件發(fā)生時(shí),這些回調(diào)函數(shù)被調(diào)用。BH HLA FM為了達(dá)到與各輸入、輸出子世界的方便的組合,還在它們之間采用類似COM的技術(shù)。比如輸出管理模塊通過(guò)查詢訂購(gòu)表得知該聯(lián)盟盟員需要3D輸出,才從外部調(diào)入負(fù)責(zé)3D顯示的代碼,并通過(guò)查詢獲得它的接口,并使用它。
各個(gè)模塊之間在仿真開(kāi)始后的協(xié)作關(guān)系是這樣的仿真管理首先根據(jù)仿真配置文件進(jìn)行初始化。當(dāng)外部設(shè)備輸入或者網(wǎng)絡(luò)輸入到來(lái)時(shí),輸入模塊接收輸入,并且將原始輸入信息轉(zhuǎn)化為原語(yǔ)信息,再將原語(yǔ)輸入傳遞給信息采集管理模塊。信息采集管理模塊接到輸入信息后創(chuàng)建輸入事件,并且將輸入事件添加到輸入事件隊(duì)列中。當(dāng)仿真推進(jìn)到處理輸入事件的時(shí)刻,仿真管理模塊將遍歷事件隊(duì)列,并且處理事件。當(dāng)需要輸出的時(shí)候,仿真管理模塊通知信息分發(fā)管理模塊進(jìn)行輸出事件處理。信息分發(fā)管理模塊接到仿真管理模塊的通知后,將傳來(lái)的信息傳遞給代理子世界完成子世界的重建。
BH HLA FM總體上的處理流程如圖6所示,其中仿真控制的總體處理流程如圖7所示。其中聯(lián)盟盟員初始化模塊讀取并解析聯(lián)盟配置文件,示例如圖8。訂購(gòu)表主要用來(lái)存儲(chǔ)聯(lián)盟盟員開(kāi)發(fā)者對(duì)輸入和輸出的需求,同時(shí),在運(yùn)行過(guò)程中,通過(guò)對(duì)該表的修改,還可以動(dòng)態(tài)地反映開(kāi)發(fā)者在這方面的需求。BH HLA FM總體流程為首先初始化,讀取聯(lián)盟配置文件,并對(duì)配置文件進(jìn)行解析,保存到訂購(gòu)表中;然后信息采集管理模塊從訂購(gòu)表中讀取輸入訂購(gòu)信息,訂購(gòu)相應(yīng)的輸入信息,該部分還要接受輸入,并生成相應(yīng)輸入事件,維護(hù)輸入事件隊(duì)列;接下來(lái)仿真引擎在符合仿真推進(jìn)邏輯的時(shí)刻,進(jìn)行輸入處理,該部分和信息采集管理密切相關(guān)。輸入處理根據(jù)某種邏輯(比如優(yōu)先級(jí))判定的順序依次調(diào)用輸入事件的處理函數(shù);而信息分發(fā)管理模塊是從訂購(gòu)表中讀取輸出訂購(gòu)信息,根據(jù)這些訂購(gòu)信息創(chuàng)建相應(yīng)的輸出子世界的“代理”,這些“代理”對(duì)輸出信息進(jìn)行訂購(gòu)。并在符合仿真推進(jìn)邏輯的需要進(jìn)行輸出的時(shí)刻,由這些“代理”負(fù)責(zé)和真實(shí)輸出子世界的交互;其中仿真引擎為BH HLA FM的驅(qū)動(dòng)核心,它負(fù)責(zé)仿真進(jìn)程的推進(jìn)。仿真引擎可以滿足HLA分布式交互仿真環(huán)境下的各種推進(jìn)算法。BH HLA FM允許聯(lián)盟盟員開(kāi)發(fā)者任選一種步進(jìn)方式來(lái)推動(dòng)仿真進(jìn)程。
在符合仿真進(jìn)程邏輯的適當(dāng)時(shí)刻,仿真引擎調(diào)用相應(yīng)的模塊處理輸入,輸出等。在本發(fā)明的設(shè)計(jì)中,仿真引擎本身并不知道要處理的內(nèi)容,它只是通過(guò)委托的形式委托給輸入和輸出處理模塊。這樣,對(duì)仿真引擎來(lái)說(shuō),它永遠(yuǎn)不知道輸入和輸出的信息是什么(比如是網(wǎng)絡(luò),鍵盤(pán)還是3D圖形),從而使得針對(duì)各種不同的輸入和輸出的處理方法一致起來(lái),提高了BH HLA FM的適應(yīng)能力;輸出子世界處理部分不屬于BH HLA FM,該部分通過(guò)訂購(gòu)-發(fā)布機(jī)制以及消息機(jī)制與BH HLA FM發(fā)生關(guān)聯(lián)。
本發(fā)明結(jié)合組件化思想,將以上的多個(gè)模塊抽象為若干組件,每個(gè)組件又可以由若干個(gè)功能更加單一的組件組成,例如仿真管理組件可以根據(jù)更具體的功能劃分為更小的組件。各個(gè)組件之間通過(guò)接口進(jìn)行協(xié)作,每個(gè)組件都要根據(jù)客戶的需要,設(shè)計(jì)出符合COM標(biāo)準(zhǔn)的、功能完備的接口。所謂功能完備的接口是指接口能夠提供組件能夠?qū)崿F(xiàn)的所有功能,并且要做到用最少的接口來(lái)實(shí)現(xiàn)完備性。
每個(gè)組件自身都能夠單獨(dú)開(kāi)發(fā),單獨(dú)調(diào)試。組件也能夠單獨(dú)升級(jí),只要接口不變就可以直接加入整個(gè)系統(tǒng)中。這樣可以大大的提高整個(gè)系統(tǒng)的可擴(kuò)展性和可重用性,也為系統(tǒng)的進(jìn)一步發(fā)展提供了便利的條件。
本發(fā)明的BH HLA FM的前幾個(gè)版本是基于HLA Version 1.3標(biāo)準(zhǔn)建立的,HLA 1.3標(biāo)準(zhǔn)是在HLA使用過(guò)程中建立的探索性草案。IEEE 1516標(biāo)準(zhǔn)是HLA1.3標(biāo)準(zhǔn)的后繼,是在HLA 1.3標(biāo)準(zhǔn)使用過(guò)程中建立起來(lái)的,它改進(jìn)了HLA 1.3標(biāo)準(zhǔn)中不合理的地方,更加合理和規(guī)范化。隨著HLA的發(fā)展和不斷完善,2001年5月HLA正式成為了IEEE標(biāo)準(zhǔn)(即IEEE Std 1516系列)。成為新一代分布交互式仿真體系結(jié)構(gòu)的標(biāo)準(zhǔn)。故本發(fā)明也提供了基于IEEE1516標(biāo)準(zhǔn)的相應(yīng)版本BH HLA FM1516。
BH HLA Studio是一個(gè)基于BH HLA FM的HLA仿真應(yīng)用程序領(lǐng)域的用戶集成開(kāi)發(fā)環(huán)境。具體實(shí)施方案為利用Visual Studio已有的IDE環(huán)境,嵌入自主開(kāi)發(fā)的HLAAppWizard和FederateWizard,從而實(shí)現(xiàn)一個(gè)用戶集成開(kāi)發(fā)環(huán)境。其中,HLAAppWizard是一個(gè)專用于HLA仿真應(yīng)用程序的AppWizard,可以根據(jù)用戶輸入的信息自動(dòng)生成仿真應(yīng)用程序框架代碼,F(xiàn)ederateWizard類似于ClassWizard,可以在Visual Studio開(kāi)發(fā)環(huán)境下幫助開(kāi)發(fā)者定制其Federate(聯(lián)盟盟員),自動(dòng)生成BH HLA FM相關(guān)的代碼。總體結(jié)構(gòu)圖見(jiàn)圖9。
圖10為HLAAppWizard的總體流程圖,BH HLA FM數(shù)據(jù)庫(kù)是整個(gè)聯(lián)盟統(tǒng)一的抽象仿真對(duì)象以及仿真事件的集合,包括FOM的OMT文件中的聯(lián)盟信息對(duì)象類名、對(duì)象類屬性名、交互類名、交互類參數(shù)名。源程序框架為用戶編寫(xiě)的交互仿真應(yīng)用程序框架,包括工廠類、仿真交互類、主程序(輸出子世界)。.cfg文件是交互仿真應(yīng)用程序配置文件,后綴為.cfg。.dc1文件是記錄交互仿真應(yīng)用程序訂購(gòu)發(fā)布信息的文件,后綴為.dc1。首先從OMT文件中讀取聯(lián)盟信息,包括對(duì)象類名、對(duì)象類屬性名、交互類名、交互類參數(shù)名,并存入BH HLA FM數(shù)據(jù)庫(kù)中。配置文件的填寫(xiě)與保存接收用戶輸入的填寫(xiě)配置文件所需信息,并生成.cfg文件;構(gòu)造程序框架接收用戶選擇的輸出子世界和仿真程序類型,并生成源程序框架。定購(gòu)發(fā)布信息從BH HLA FM中獲得對(duì)象類、類屬性、交互類和交互參數(shù),接收用戶輸入的選擇發(fā)布、訂購(gòu)信息,并生成.dc1文件。
圖11為FederateWizard的總體流程圖,配置文件的修改與保存接收用戶輸入的修改配置文件所需信息,并重新生成.cfg文件。定購(gòu)發(fā)布信息接收用戶輸入的修改訂購(gòu)發(fā)布信息,并重新生成.dc1文件。修改實(shí)體類接收用戶輸入的對(duì)象類和交互類信息,并在源程序中添加或刪除對(duì)象類和交互類相關(guān)代碼。添加事件接收用戶選擇的基類事件及輸入的事件處理函數(shù)名、自定義事件名,在源程序中添加事件注冊(cè)、注銷(xiāo)代碼以及事件處理函數(shù)。刪除事件接收用戶輸入的刪除事件處理函數(shù)信息,并在源程序中刪除相關(guān)代碼。修改工廠類接收用戶選擇工廠類的Object和Interaction類信息,并在源程序中添加或刪除工廠類代碼。應(yīng)用程序開(kāi)發(fā)者通過(guò)BH HLA Studio提供的可視化界面配置聯(lián)盟信息以及訂購(gòu)表的初始設(shè)置,用戶集成開(kāi)發(fā)環(huán)境可以生成相應(yīng)的文件,在這些文件的某些地方要求開(kāi)發(fā)者添入相關(guān)代碼,這些代碼都是與事件有關(guān)的。比如如果訂購(gòu)了外部設(shè)備的輸入,那么用戶集成開(kāi)發(fā)環(huán)境會(huì)在生成的繼承于對(duì)象實(shí)體類的類(可能用來(lái)表示某種實(shí)體)中自動(dòng)插入注冊(cè)響應(yīng)外部輸入的函數(shù)的代碼;如果訂購(gòu)了網(wǎng)絡(luò)輸入,那么用戶集成開(kāi)發(fā)環(huán)境會(huì)在生成的繼承于對(duì)象實(shí)體類的類(可能是某種實(shí)體,也可能是觀察器)中自動(dòng)插入注冊(cè)影響該實(shí)體行為的網(wǎng)絡(luò)事件的函數(shù)的代碼,而對(duì)于那些跟管理相關(guān)的網(wǎng)絡(luò)事件的自動(dòng)注冊(cè)則被插入到生成的繼承于仿真管理類中;如果定義了3D圖形顯示,那么用戶集成開(kāi)發(fā)環(huán)境會(huì)在生成的繼承于DveInfoDistributorManager的類中的Create3DWorld(DvePublisher*i)中自動(dòng)插入return new DveX3Dworld(i)的代碼,其中DveX3DWorld為具體使用到的3D子世界類,開(kāi)發(fā)者只需重寫(xiě)其中的Construct()函數(shù)即可。這樣,應(yīng)用程序只需關(guān)注于特定應(yīng)用相關(guān)部分的代碼的編寫(xiě)即可,同時(shí),也使得開(kāi)發(fā)者的代碼和架構(gòu)的代碼隔離,帶來(lái)調(diào)試上的好處。
總之,BH HLA FM以lib或d11的形式存在,而用戶集成開(kāi)發(fā)環(huán)境應(yīng)該具有一個(gè)開(kāi)發(fā)者用來(lái)組裝應(yīng)用程序的對(duì)用戶友好的可視化界面,并允許用戶在該環(huán)境中編譯、鏈接、調(diào)試自己編寫(xiě)的交互式仿真應(yīng)用程序。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種可裝配的仿真程序可視化開(kāi)發(fā)系統(tǒng)的實(shí)現(xiàn)方法,其特征在于該開(kāi)發(fā)平臺(tái)的實(shí)現(xiàn)方法包括步驟1)實(shí)現(xiàn)一個(gè)分布交互仿真應(yīng)用程序架構(gòu);步驟2)實(shí)現(xiàn)基于分布式交互仿真應(yīng)用程序架構(gòu)的仿真應(yīng)用程序用戶集成開(kāi)發(fā)環(huán)境。
2.根據(jù)權(quán)利要求1所說(shuō)的一種可裝配的仿真程序可視化開(kāi)發(fā)系統(tǒng)的實(shí)現(xiàn)方法,其特征在于所述步驟1)進(jìn)一步包括分布交互仿真應(yīng)用程序架構(gòu)為分布交互仿真應(yīng)用程序的模塊化裝配提供的一種體系結(jié)構(gòu),并提供分布交互仿真通用功能以方便應(yīng)用程序的開(kāi)發(fā)。
3.根據(jù)權(quán)利要求1所說(shuō)的一種可裝配的仿真程序可視化開(kāi)發(fā)系統(tǒng)的實(shí)現(xiàn)方法,其特征在于所述步驟1)進(jìn)一步包括分布交互仿真應(yīng)用程序架構(gòu)是符合組件對(duì)象模型標(biāo)準(zhǔn)的組件軟件。
4.根據(jù)權(quán)利要求1所說(shuō)的一種可裝配的仿真程序可視化開(kāi)發(fā)系統(tǒng)的實(shí)現(xiàn)方法,其特征在于所述步驟1)進(jìn)一步包括分布交互仿真應(yīng)用程序架構(gòu)提供基于IEEE1516標(biāo)準(zhǔn)和HLA Rules V1.3標(biāo)準(zhǔn)的兩個(gè)版本。
5.根據(jù)權(quán)利要求1所說(shuō)的一種可裝配的仿真程序可視化開(kāi)發(fā)系統(tǒng)的實(shí)現(xiàn)方法,其特征在于所述步驟2)進(jìn)一步包括仿真應(yīng)用程序用戶集成開(kāi)發(fā)環(huán)境是利用微軟已有的環(huán)境,嵌入專用于仿真應(yīng)用程序的向?qū)Ш蛶椭_(kāi)發(fā)者定制其聯(lián)盟,自動(dòng)生成分布交互仿真應(yīng)用程序架構(gòu)相關(guān)的代碼的聯(lián)盟向?qū)?,從而?shí)現(xiàn)的基于分布交互仿真應(yīng)用程序架構(gòu)的仿真應(yīng)用程序用戶集成開(kāi)發(fā)環(huán)境。
全文摘要
本發(fā)明屬于計(jì)算機(jī)分布式交互仿真領(lǐng)域,具體的說(shuō)是一種可裝配的仿真程序可視化開(kāi)發(fā)系統(tǒng)的實(shí)現(xiàn)方法。主要解決分布交互仿真中對(duì)仿真應(yīng)用程序的模塊可重用性和程序開(kāi)發(fā)的簡(jiǎn)易性的要求問(wèn)題。本發(fā)明包括一個(gè)分布交互仿真應(yīng)用程序架構(gòu)BH HLA FM以及基于其上的用戶集成開(kāi)發(fā)環(huán)境BH HLAStudio。BH HLA FM是符合COM標(biāo)準(zhǔn)的組件軟件,并提供基于IEEE1516標(biāo)準(zhǔn)和HLA Rules V1.3標(biāo)準(zhǔn)的兩個(gè)版本。該開(kāi)發(fā)平臺(tái)具有面向?qū)ο笤O(shè)計(jì),功能強(qiáng)大、仿真功能支持面廣、易于調(diào)試與維護(hù)、方便功能伸縮,支持大規(guī)模復(fù)雜系統(tǒng)的仿真應(yīng)用程序的開(kāi)發(fā)。是一個(gè)快速開(kāi)發(fā)分布式交互仿真應(yīng)用程序的良好開(kāi)發(fā)平臺(tái)。
文檔編號(hào)G06F9/455GK1779645SQ20041009119
公開(kāi)日2006年5月31日 申請(qǐng)日期2004年11月23日 優(yōu)先權(quán)日2004年11月23日
發(fā)明者段作義, 趙沁平, 吳威, 劉鸝, 唐少剛 申請(qǐng)人:北京航空航天大學(xué)