專利名稱:將新的子系統(tǒng)與現(xiàn)有計算架構進行集成的制作方法
技術領域:
本發(fā)明涉及將新子系統(tǒng)與現(xiàn)有計算架構進行集成的裝置、方法和計算機可讀指令。
背景技術:
交通工具仿真器通常用于訓練人員如何操作交通工具。該交通工具仿真器的一個示例是飛行仿真器,飛行仿真器是航空工業(yè)中非常重要的工具并且被商業(yè)航空公司、第三方訓練中心和軍方用于訓練飛行員。飛行仿真器是包括硬件和軟件組件的無數(shù)子系統(tǒng)的復雜裝配。這些子系統(tǒng)可以包括用于執(zhí)行大部分軟件組件的中央主機、飛行器特有的飛行模型、包括飛行器電子單元中的駕駛員座艙儀器、作為用于負責向飛行員提供在移動飛行器中的感覺的組件的飛行控制載入系統(tǒng)和運動平臺、可視化圖像生成器和顯示系統(tǒng)、聲音和聽覺提示系統(tǒng)和教練員操作系統(tǒng)(IOS)。飛行仿真器制造昂貴并且開銷的范圍可能在一千萬到一千五百萬美元。它們的壽命預期最初典型地大約20年,但是通過更新仿真器的軟件和/或硬件,可以將其延長到近似30年??赡苄枰乱允沟梅抡嫫髋c常規(guī)要求、新技術和信的和不同分析器配置的改變—致。傳統(tǒng)而言,存在兩種不同方式用于執(zhí)行飛行仿真器上的軟件更新。第一種方式涉及主機上的新軟件的安裝和集成。第二種方式使用外部計算機向該平臺提供新功能,并且將該外部計算機與該主機集成。這兩種方式都是非常復雜的過程,其依賴于現(xiàn)有系統(tǒng)和該系統(tǒng)需要更新的新軟件。就這點而言,結果是更新仿真器所需要的軟件和硬件是特定于該仿真器的,并且即使差異相對很小也不可用于更新不同類型/規(guī)格的仿真器。此外,這些種類的更新需要對于現(xiàn)有仿真器軟件配置的顯著的修改以便允許與新軟件的集成。該修改涉及時間和費用。該更新是更復雜的,因為主機軟件的配置可能未被良好的注解,因而工程師通常需要花費時間解析(unravel)仿真器配置。此外,由于主機軟件的配置通常未知,所以工程師面臨由于丟塊等等而使得仿真器的保真度降級的嚴重問題。在飛行仿真器的壽命期間更新的飛行仿真器子系統(tǒng)的典型的示例是可視化圖像生成器(VIG)子系統(tǒng)。VIG子系統(tǒng)有時候以8到10年的間隔在仿真器的壽命期間更新兩或三次。圖1是在經由兩個上述方法中的第一方法的更新以包括新子系統(tǒng)、即在該示例中的新VIG子系統(tǒng)之后的飛行仿真器的計算機裝置的示意圖。該計算機裝置10包括主機100、IOS 102和新VIG子系統(tǒng)104。IOS 102經由現(xiàn)有接口 106連接到主機。新VIG子系統(tǒng)104經由新接口 108連接到主機系統(tǒng)。主機包括現(xiàn)有軟件110和新接口軟件112。新接口軟件112在更新期間被引進,并且被配置為允許新VIG子系統(tǒng)104與原始軟件110之間的交互。新接口軟件112定制(bespoke)用于每個不同的仿真器,并且依賴于現(xiàn)有仿真器系統(tǒng)和新VIG子系統(tǒng)104的配置。原始主機軟件110被嚴重修改以便允許其與新接口軟件112通信并且繼而與新VIG子系統(tǒng)104通信。還更新IOS 102以包括根據(jù)新VIG子系統(tǒng)104的附加控制。因為來自不同原始設備制造商的仿真器的配置可以有所不同,通常無法從在一個仿真器的更新中由工程師花費的時間和努力所得到的經驗用于在另一個不同仿真器的更新。這是特別低效的。在交通工具仿真器的更新中涉及的過程可以包括以下步驟:I)解除現(xiàn)有VIG接口軟件;2)向主機100增加用于與新VIG子系統(tǒng)的物理接口(未示出)的新硬件和驅動器軟件;3)將新VIG子系統(tǒng)104物理地連接到主機100 ;4)將新VIG接口軟件112加載到主機100上;5)執(zhí)行VIG接口軟件112的廣泛修改以便將其與現(xiàn)有仿真軟件110集成;6)執(zhí)行對現(xiàn)有仿真軟件110的修改以支持其與新VIG軟件112的集成;7)執(zhí)行IOS 102的修改以用于新VIG子系統(tǒng)104的新特征的集成;并且8)從主機100上的源文件生成包括預更新軟件與新更新軟件的組合的新軟件版本。由于不熟悉仿真器的屬性,上述每個步驟花費時間并且使工程師暴露于風險中。其中一個最突出的風險是由于確定建立新軟件版本所需要的正確文件而造成的。在上述升級中執(zhí)行向主機100傳遞的軟件具備非常有限的或者不具備維護能力。本發(fā)明的一個目的在于,提供一種可用于更新各種不同類型的仿真器而不需要該仿真器的現(xiàn)有軟件和/或硬件的顯著修改的系統(tǒng)。本發(fā)明的另一個目的在于提供一種用于降低或消除主機軟件的修改所涉及的技術風險的更新機制,以仿真器更新過程進行標準化,以提供實質上可重復的過程,從而降低仿真器更新所所涉及的無效率的數(shù)量。
發(fā)明內容
根據(jù)第一方面,提供了一種用于將新子系統(tǒng)與現(xiàn)有計算架構進行集成的裝置,該裝置包括:第一物理接口,用于從該現(xiàn)有計算裝置接收數(shù)據(jù);第二物理接口,用于向該新子系統(tǒng)輸出數(shù)據(jù);處理裝置以及存儲器,該存儲器具有存儲在其上的第一軟件模塊、多個其他軟件模塊和第一存儲配置,其中,當被該處理裝置執(zhí)行時,該第一軟件模塊被配置為讀取該第一存儲配置,并且使得該處理裝置加載該多個其他軟件模塊中的其他軟件模塊的組合,該多個其他軟件模塊中的其他軟件模塊的該組合與該多個其他軟件模塊中的其他軟件模塊的該組合的第一子集是由該第一存儲配置定義的,當被該處理裝置執(zhí)行時,該組合的該第一子集可進行操作以將在該第一物理接口處接收的數(shù)據(jù)變換成與該新子系統(tǒng)兼容的形式,并且經由該第二物理接口向該新子系統(tǒng)輸出變換數(shù)據(jù)。該處理裝置可以包括一個或多個處理器和/或微處理器。該處理裝置還或備選地可以包括一個或多個專用集成電路。該存儲裝置可以包括一個或多個存儲器模塊,該一個或多個存儲器模塊是例如RAM、ROM、閃存、EEPROM等等的任意組合。該裝置可以被配置為使得該第一軟件模塊讀取該第一存儲配置,并且使得該處理裝置在該裝置的啟動時加載該多個其他軟件模塊中的其他軟件模塊的組合。
該新子系統(tǒng)的集成可以向現(xiàn)有計算架構提供附加特征。當被該處理裝置執(zhí)行時,其他軟件模塊的該組合的該第一子集中的第一軟件模塊可以被配置為響應于在該第一物理接口處的數(shù)據(jù)的到達,向該第一軟件模塊發(fā)送用于指示在該第一物理接口處的該數(shù)據(jù)的該到達的信號,該第一軟件模塊可以響應于該用于指示該第一物理接口處的該數(shù)據(jù)的該到達的信號的接收,相繼地向其他軟件模塊的該組合的該第一子集中的每個其他的其他軟件模塊發(fā)送第一命令信號,并且其他軟件模塊的該組合的該第一子集中的每個其他的其他軟件模塊可以響應于該命令信號的接收,在從其他軟件模塊的該組合的該第一子集中的先前的其他軟件模塊傳遞的數(shù)據(jù)上進行操作。備選地,可以將其他軟件模塊的該組合的該第一子集中的該其他的其他軟件模塊配置成并行或混合串行/并行的配置。該第二物理接口可以被配置為從該新子系統(tǒng)接收數(shù)據(jù),其中,當被該處理裝置執(zhí)行時,該第一軟件模塊進行操作以使得該處理裝置執(zhí)行該多個其他軟件模塊中的其他軟件模塊的該組合的第二子集,該多個其他軟件模塊中的其他軟件模塊的該組合的該第二子集由該第一存儲配置定義,并且當被該處理裝置執(zhí)行時可進行操作以將在該第二物理接口處接收的數(shù)據(jù)變換成與該現(xiàn)有計算裝置兼容的形式,并且經由該第一物理接口向該現(xiàn)有計算裝置提供變換數(shù)據(jù)。在這里,當被該處理裝置執(zhí)行時,其他軟件模塊的該組合的該第二子集中的第一軟件模塊可以被配置為響應于在該第二物理接口處的數(shù)據(jù)的到達,向該第一軟件模塊發(fā)送用于指示在該第二物理接口處的該數(shù)據(jù)的該到達的信號,該第一軟件模塊可以響應于該用于指示該在第二物理接口處的該數(shù)據(jù)的該到達的信號的接收,相繼地向其他軟件模塊的該組合的該第二子集中的每個其他的其他軟件模塊發(fā)送第二命令信號,并且其他軟件模塊的該組合的該第二子集中的每個其他的其他軟件模塊可以響應于該命令信號的接收,在從其他軟件模塊的該組合的該第二子集中的先前的其他軟件模塊輸出的數(shù)據(jù)上進行操作。該第二子集可以完全包括該第一子集,即該第一子集可以包括該多個其他軟件模塊中的其他軟件模塊的該組合的全部。備選地,該第一子集可以包括不處于該第二子集中的模塊,并且反之亦然。該其他軟件模塊可以被配置為以多個預定義數(shù)據(jù)結構中的一個預定義數(shù)據(jù)結構輸出數(shù)據(jù)。該預定義數(shù)據(jù)結構可以被存儲在共享存儲器中。該第一存儲配置定義該其他軟件模塊中的哪些其他軟件模塊被配置為響應于在該第一物理接口處的數(shù)據(jù)的到達,而向該第一軟件模塊發(fā)送用于指示該第一物理接口處的該數(shù)據(jù)的該到達的信號。該第一軟件模塊可以被配置為使得已加載其他軟件模塊中的一個或多個讀取相應的其他存儲配置,該相應的其他存儲配置的身份是由該第一存儲配置定義的。該第一軟件模塊可以被配置為使得每個該已加載其他軟件模塊讀取相應的其他存儲配置,該相應的其他存儲配置的身份是由該第一存儲配置定義的。在任意一個情況中,每個該其他存儲配置可以定義該已加載其他軟件模塊中的相應的一個已加載其他軟件模塊的設置。每個該其他存儲配置可以包括初始化文件。 該第一存儲配置可以包括初始化文件。根據(jù)第二方面,一種用于將新子系統(tǒng)與現(xiàn)有計算架構集成的方法,該方法包括:讀取第一存儲配置;加載該多個軟件模塊中的軟件模塊的組合,多個軟件模塊中的軟件模塊的該組合與該多個軟件模塊中的軟件模塊的該組合的第一子集是由該第一存儲配置定義的,并且在第一物理接口處從該現(xiàn)有計算機架構接收數(shù)據(jù),該多個軟件模塊中的軟件模塊的該組合的該第一子集將在該第一物理接口處接收的該數(shù)據(jù)變換成與該新子系統(tǒng)兼容的形式,并且經由該裝置的第二物理接口向該新子系統(tǒng)提供變換數(shù)據(jù)。根據(jù)第三方面,提供了一種用于計算裝置的計算機可讀指令,其可選地存儲在非瞬態(tài)計算機介質上、用于將新子系統(tǒng)與現(xiàn)有計算架構集成,該計算機可讀指令包括:第一軟件模塊和多個其他軟件模塊,當被該計算裝置執(zhí)行時,該第一軟件模塊使得該計算裝置讀取該第一存儲配置,并且加載該多個軟件模塊中的軟件模塊的組合,該多個軟件模塊中的軟件模塊的該組合與該多個軟件模塊中的軟件模塊的該組合的第一子集是由該第一存儲配置定義的;當被該計算裝置執(zhí)行時,該多個軟件模塊中的軟件模塊的該組合的該第一子集使得該計算裝置將在第一物理接口處從該現(xiàn)有計算架構接收的數(shù)據(jù)變換成與該新子系統(tǒng)兼容的形式,并且經由第二物理接口向該新子系統(tǒng)提供變換數(shù)據(jù)。
圖1是根據(jù)現(xiàn)有技術利用新可視化接口生成器子系統(tǒng)更新的飛行仿真器系統(tǒng)的計算裝置的簡化示意圖;圖2是具有新子系統(tǒng)并結合根據(jù)本發(fā)明的更新裝置的飛行仿真器系統(tǒng)的簡化示意圖;圖3是根據(jù)本發(fā)明的更新裝置的簡化示意圖;圖4是用于示出圖3的更新裝置的初始化的簡化示意圖;圖5是用于示出在第一方向中經過圖3的裝置的數(shù)據(jù)的示例性流程的簡化示意圖;圖6是用于示出在第二方向中經過圖3的裝置的數(shù)據(jù)的示例性流程的簡化示意圖;圖7A到7C分別是參考圖4、5和6的操作的備選的說明。
具體實施例方式圖2是已經利用新子系統(tǒng)更新并且結合根據(jù)本發(fā)明的方面的更新裝置206的交通工具仿真器系統(tǒng)的計算裝置20的簡化示意圖。在該示例中,交通工具仿真器系統(tǒng)是飛行仿真器并且新子系統(tǒng)是新VIG子系統(tǒng)204。將要認識到,本發(fā)明還適用于其他類型的交通工具仿真器系統(tǒng)以及不同類型的新子系統(tǒng),以便與仿真器系統(tǒng)的集成。將要認識到,該更新裝置可以進行操作以將多個子系統(tǒng)與現(xiàn)有仿真器系統(tǒng)集成。在這些示例中的集成包括向現(xiàn)有系統(tǒng)增加新特征和新功能。計算裝置20包括主機200、IOS 202和新VIG子系統(tǒng)204。計算裝置20還包括根據(jù)本發(fā)明的更新裝置206和專用控制面板208。該專用控制面板是包括運行在計算硬件上的軟件的可選用戶接口面板。新VIG子系統(tǒng)204經由第一接口 210連接到更新裝置206。更新裝置206經由第二接口 216與主機200的VIG接口模塊214相連接。這樣,新VIG子系統(tǒng)204經由更新裝置206與主機相連接。換言之,更新裝置充當新VIG子系統(tǒng)204與主機200之間的中介。該專用控制面板208經由第三接口 218連接到更新裝置206。該更新裝置還可以包括維護接口(見圖3),其中計算裝置(例如屬于維護工程師的)如膝上計算機可以通過該維護接口被連接到更新裝置,以便允許執(zhí)行該更新裝置的維護。在該更新裝置被用于將多個新子系統(tǒng)與主機200集成的實施方式中,該更新裝置包括附加接口(未示出),其中一個附加接口用于一個新子系統(tǒng)。系統(tǒng)20還可以包括被連接到主機的IOS (未示出)。新VIG子系統(tǒng)204與主機200之間存在的更新裝置206,這個意味著僅向主機200的VIG接口模塊214提供相對小的軟件更新。即,部分地因為更新裝置206提供用于必要的新軟件的平臺,否則該新軟件將如同參考圖1所述的傳統(tǒng)更新中將必須被集成到主機200中。小的軟件更新實質上比參考圖1所述的更新方法中所要求的復雜度更低。稍后將更詳細地描述。專用控制面板208提供用于教練員控制新子系統(tǒng)204的方面的裝置。因此,IOS202不需要更新來操作新子系統(tǒng)204。換言之,不修改IOS 204。因此將理解,使用本發(fā)明的更新裝置206的飛行仿真器的計算裝置20的更新不需要對現(xiàn)有硬件或軟件進行實質修改。此外,如下文所述的,該更新裝置是至少部分地通用的,因為該更新裝置的各種方面可以與多個不同類型的仿真器和子系統(tǒng)一起使用。物理上,更新裝置206可以是“黑盒”嵌入式方案??蛇x地,更新裝置的前面板可以包括用于提供高級診斷和狀態(tài)信息的LCD接口、用于外部接口的端口例如以太網端口以及用于維護接口(見下文)的端口。更新裝置內部可以包括處理器和/或微處理器和存儲器介質如ROM和/或RAM的組合。圖3是根據(jù)本發(fā)明的更新裝置206的示意圖。更新裝置206包括主機接口組件302,主機接口組件302包括第一子組件302-1和第二子組件302-2。第一子組件302-1是物理主機接口組件,其中在該接口組件處從主機200接收數(shù)據(jù)。第二子組件302-2是數(shù)據(jù)格式化和操作組件。該數(shù)據(jù)格式化和操作組件302-2可以進行操作以將在物理主機接口302-1組件處接收的數(shù)據(jù)進行格式化,以成為用于仿真組件的預定義數(shù)據(jù)格式。更新裝置206還包括一個或多個仿真組件304,仿真組件304提供用于向仿真器增加的子系統(tǒng)的仿真控制。更新裝置206還包括目標接口組件306,其在更新裝置206與新VIG子系統(tǒng)204之間提供通信接口。更新裝置206可選地還包括控制面板組件308,其向新VIG子系統(tǒng)204提供教練員仿真接口??梢砸蕾囉诜抡嫫骱托伦酉到y(tǒng)來配置這些組件中的每個組件。更新裝置206的組件302、304、306、308、310、312中的每一個是從可動態(tài)加載的庫中選擇的、并且可由更新裝置206的一個或多個處理器執(zhí)行的軟件組件。更新裝置206還包括執(zhí)行程序組件310,其是用于控制可配置組件的加載和更新裝置206中的執(zhí)行的執(zhí)行框架。更新裝置206還包括維護接口組件312,其提供網頁維護接口并且支持對更新裝置206的配置的修改和保持在存儲器314中的事實評價的修改。無關于仿真器和新子系統(tǒng)204,執(zhí)行程序組件310和維護接口組件312對于更新裝置206的全部示例共用??梢詮V泛地配置更新裝置206的可配置組件302、304、306、308(即主機接口組件302、仿真組件304、目標接口組件306和控制面板組件308)。針對仿真器和新子系統(tǒng)204的給定配置,可配置組件302、304、306、308經由可能被存儲在存儲器314中的存儲配置。在該示例中,該存儲配置是初始化文件。然而,將要理解,該存儲配置可替換地包括注冊表項、執(zhí)照設置、數(shù)據(jù)庫條目或者用于以及后續(xù)讀取配置的任意其他手段。可配置組件302、304、306,308在初始化時被執(zhí)行程序組件310動態(tài)加載。基于初始化文件動態(tài)地加載可配置組件302、304、306、308,其中由執(zhí)行程序組件310讀取該初始化文件,并且該初始化文件識別將要加載哪些可配置組件。在運行時由執(zhí)行程序組件310管理可配置組件302、304、306、308。這支持更新裝置206包括用于提供可以針對任意類型或年齡的仿真器配置的新功能范圍的組件套。更新裝置206能夠與多個數(shù)據(jù)源通信并且可以提供可配置組件302、304、306、308的大量組合。執(zhí)行程序組件310可進行操作以至少執(zhí)行以下功能:1.讀取初始化文件,初始化文件定義用于將新子系統(tǒng)204與給定主機200的組件302、304、306、308 進行集成;2.基于初始化文件從動態(tài)可加載的庫中動態(tài)加載可配置組件302、304、306、308 ;3.使用多線程軟件觸發(fā)機制,配置并且執(zhí)行該可配置組件的調度;4.監(jiān)視更新裝置206的組件的狀態(tài)并且向維護接口組件312返回任意檢測錯誤的報告以;5.如果需要則提供從錯誤狀態(tài)的動態(tài)恢復。至少部分地由動態(tài)可加載并且可配置的組件302、304、306、308提供更新裝置206與任意不同類型的仿真器和子系統(tǒng)一起操作的能力。將這些組件作為單獨共享的對象存儲在庫中。對于可以被存儲在該庫中的可配置組件302、304、306、308的數(shù)量沒有具體的限制。依賴于新子系統(tǒng)204的要求,可配置組`件302、304、306、308中的每一個可以提供兩個核心功能路徑。典型地,第一路徑用于操作源于現(xiàn)有主機200數(shù)據(jù)以便準備被另一個可配置組件使用或者用到新子系統(tǒng)204的傳輸。第二路徑典型地用于操作源于新VIG子系統(tǒng)204的數(shù)據(jù)以便被另一個可配置組件使用或者回到主機200的傳輸??膳渲媒M件302、304、306、308中的每一個是基于標準模板,該標準模板包括用于與執(zhí)行程序組件310接口所需要的4個關鍵函數(shù)的占位符。這些函數(shù)是:1.1nit (…),其在初始化時被調用以提供可配置組件的任意預約初始化;2.runl (…),其被可執(zhí)行程序組件調用以執(zhí)行兩個功能路徑中的一個,典型地第一路徑(即在從主機200到新VIG子系統(tǒng)204的方向中的路徑);3.run2 (…),其被可執(zhí)行程序組件調用以執(zhí)行兩個功能路徑中的一個,典型地第二路徑(即在從新VIG子系統(tǒng)204到主機200的方向中的路徑);4.term(...),其在來自用戶的退出命令之后或者嚴重錯誤的檢測之后被可執(zhí)行程序組件調用以關于可配置組件執(zhí)行任意合適的錯誤修正操作。將可配置組件302、304、306、308之間傳遞數(shù)據(jù)分組封裝到多個不同數(shù)據(jù)結構中的一個數(shù)據(jù)結構中。該數(shù)據(jù)結構提供該數(shù)據(jù)所被傳遞到的組件所需要的信息的具體分組。每個可配置組件具有可用數(shù)據(jù)結構的子集。該數(shù)據(jù)結構存在于存儲器(如在全部可配置組件302、304、306、308之間共享的存儲器314)中。可以由可配置組件302、304、306、308根據(jù)他們的需要創(chuàng)建數(shù)據(jù)庫。備選地,在初始化時可以由執(zhí)行程序組件310動態(tài)地加載每個數(shù)據(jù)結構。
用于傳遞數(shù)據(jù)的預定義數(shù)據(jù)結構的使用允許工程師通過需要預約軟件的生成,規(guī)定主機接口緩沖器302-3的內容。在數(shù)據(jù)格式和操作組件302-1中的初始化文件中定義適用于給定主機接口的數(shù)據(jù)結構??梢韵虼鎯υ诟卵b置206上的庫增加附加可配置組件而不影響以前發(fā)布的可配置組件。這可以發(fā)生在生產或更新新子系統(tǒng)時并且需要與現(xiàn)有仿真器的集成。雖然在圖4中將存儲器314示出為單個單元,但是認識到存儲器314可以包括不同的存儲器模塊??梢砸蕾囉诖鎯υ谄渖系臄?shù)據(jù)的類型來配置存儲器模塊??膳渲媒M件的庫的可以例如被存儲在只讀存儲器上,這是因為僅需要更新裝置讀取而不需寫入這些組件。但是用于存儲數(shù)據(jù)結構的共享存儲器可以包括一個或多讀寫存儲器模塊。圖4示出了根據(jù)本發(fā)明的一個示例性實施方式的更新裝置206的初始化。在更新裝置206的啟動時,執(zhí)行程序組件310讀取它的執(zhí)行初始化文件400,并且將來自那里的合適的信息保持在存儲器314中。該初始化文件識別將要被加載的可配置組件302、304、306、308。執(zhí)行程序組件310因此使得加載由初始化文件識別的可配置組件302、304、306、308。在圖4的示例中,執(zhí)行程序組件310加載主機接口組件302、仿真組件304、目標接口組件306、和控制面板組件308。執(zhí)行程序組件310對于每個可配置組件調用初始化函數(shù)init (…),并且使得向每個可配置組件302、304、306、308傳遞(從該執(zhí)行程序組件的執(zhí)行初始化文件400讀取的)合適的初始化文件402、404、406、408、410。這樣,更新裝置206的可配置組件302、3 04、306、308中的每一個被完全初始化,并且準備就緒以響應于來自執(zhí)行程序組件310的進一步的指令而運行。被傳遞到第一子組件302-1的初始化文件400例如可以提供IP地址和端口信息。該初始化文件還可以向主機接口組件指示輸入數(shù)據(jù)應該被寫入到的位置。被傳遞到數(shù)據(jù)格式化和操作組件302-2的初始化文件402例如可以向數(shù)據(jù)格式化和操作組件302-2指示數(shù)據(jù)到達的格式或結構。被傳遞到目標接口組件306的初始化文件408可以指示數(shù)據(jù)結構的身份和與目標接口組件306相關聯(lián)的緩沖器的位置,其中應該將在目標接口組件處接收的數(shù)據(jù)寫成該數(shù)據(jù)結構并且存儲在該位置。因此將要理解,被傳遞到可配置組件302、304、306,308的初始化文件402、404、406、408、410提供與具體可配置組件相關的信息或設置。與可配置組件302、304、306、308的初始化文件的使用提供可配置性和彈性,并且因此允許該裝置被用于將新子系統(tǒng)集成到多個不同類型的仿真器系統(tǒng)中。并非全部可配置組件都需要初始化文件,并且在該情況中執(zhí)行初始化文件400不定義用于具體可配置組件的初始化文件。下文是執(zhí)行初始化文件400 (在下文中被稱為NUQ.1nt)的示例。NUQ.1ni[TRIGGERS]Trigl = H0ST_IF,runl, DataManipulator, SCI, SC3, SC2, TARG_IFTrig2 = TARG—IF,run2, SCI,DataManipulator, HOST—IF[HOST—IF]load =./RAW.soiniFile = Hostlf.1ni
[DataManipulator]load = DM.soiniFile = DM.1ni[SCI]load =./cSim CompOne.soiniFile = SC1.1ni[SC3]load =./cSimCompThree.soiniFile = SC3.1ni[SC2]load =./cSimCompTw0.soiniFile = SC2.1ni[TARG_IF]load =./Targ_IF.soiniFile = TARGIF.1niH0ST_IF涉及主機接口組件302的第一子組件302-1 (即物理主機接口組件)。DataManipulator (數(shù)據(jù)操作器)涉及主機接口組件302的第二子組件302-2。SCl涉及第一仿真組件304-1,SC2涉及第二仿真組件304-2,并且SC3涉及第三仿真組件304-3。TARG_IF涉及目標接口組件306。就這點而言,對于將要被加載并且配置的可配置組件302、304、306,308的定義執(zhí)行初始化文件400的節(jié)(section)。涉及每個組件的節(jié)定義對象如Linux共享對象,其將要被加載并且還定義將要被組件在下載之后讀取的初始化文件。例如NUQ.1nt的與物理主機接口組件302-1相關的節(jié)(參見[H0ST_IF]節(jié))定義將要被加載的對象被稱為“RAW.so”,并且在加載之后該組件應該讀取命名為“Hostlf.1ni”的初始化文件。執(zhí)行初始化文件400 “NUQ.1nt”還定義當從主機向新子系統(tǒng)204傳遞數(shù)據(jù)時可配置組件302、304、306、308應該如何操作。這被定義在“NUQ.1nt”的“TRIGGERS”節(jié)中?!癟RIGGERS”節(jié)中的每個觸發(fā)器定義3個參數(shù)。在每個觸發(fā)器(即“Tirgl”和“Trig2”)中的第一參數(shù)定義用于向執(zhí)行程序組件310通知數(shù)據(jù)何時到達該組件的接口的可配置組件。例如在“Tirgl”中第一參數(shù)是“H0ST_IF”,其識別物理主機接口組件302-1。因此,“Tirgl ”定義當數(shù)據(jù)到達物理主機接口組件302-1時物理主機接口組件302-1通知執(zhí)行程序組件310。第二參數(shù)定義在通知被執(zhí)行程序組件310接受之后在一個或多個可配置組件處執(zhí)行的函數(shù)組。在“Tirgl”中,該函數(shù)組是“runl (…)”。第三、第四和后續(xù)參數(shù)應該執(zhí)行如第二參數(shù)所定義的函數(shù)組中的哪個可配置組件以及它們的執(zhí)行次序。因此,響應于從數(shù)據(jù)已到達的物理主機接口組件302-1接收到通知,“Tirgl”定義該執(zhí)行程序組件應該使得在數(shù)據(jù)格式化和操作組件302-2、第一仿真組件304-1、第三仿真組件304-3、第二仿真組件304-2、目標接口組件306以及隨后最后在控制面板組件308中的每一個中,順序地執(zhí)行函數(shù)組“runl (…)”。目標接口組件306 (Trigl中的TARG_IF)是這樣一種組件,其中經由該組件從更新裝置206輸出數(shù)據(jù)。如從Trigl可以看出的,它不是執(zhí)行函數(shù)“runl (…)”的最后一個組件。因此,很清楚,可以在從裝置206輸出數(shù)據(jù)之后運行附加可配置組件。就這點而言,在從裝置206輸出關鍵數(shù)據(jù)之后可以執(zhí)行非關鍵的軟件。雖然在示例性初始化文件中未示出,但是該文件還可以定義背景風險組件??梢杂蓤?zhí)行程序組件310控制并且觸發(fā)該組件。可以使用觸發(fā)以代替數(shù)據(jù)的到達來觸發(fā)該組件,其中該觸發(fā)基于內部低優(yōu)先權的定時器。因此當定時器到期時,向執(zhí)行程序組件發(fā)送觸發(fā),控制組件向背景組件發(fā)送控制信號,該控制信號使得背景組件被執(zhí)行。該背景組件可以執(zhí)行基本家務和/或無需在從數(shù)據(jù)分組經過外部接口組件的到達開始的嚴格確定的次序中運行的仿真功能。該背景任務和無序軟件功能的示例包括錯誤和性能檢查以及軟件命令如開始或停止命令的報告。如前所述,在一些實施方式中,該存儲配置例如可以是數(shù)據(jù)庫條目以代替初始化文件。這些實施方式實質上以與上述實施方式相同的方式進行操作。但是,用于執(zhí)行程序組件310和其他可配置組件302、304、306、308的配置被存儲在關系數(shù)據(jù)庫中。與獨立的組件相關的每個存儲配置可以被存儲在獨立的數(shù)據(jù)庫條目中。該數(shù)據(jù)庫條目可以包括與上文參考初始化文件所述的信息相同的信息。響應于來自執(zhí)行程序組件310和/或其他可配置組件302、304、306、3·8的查詢,由運行在更新裝置206上的服務器應用訪問并且返回該配置。在這些實施方式中,在啟動時,執(zhí)行程序組件310向服務器應用發(fā)出查詢,請求返回它的相關存儲配置400。在該存儲配置的接收之后,執(zhí)行程序組件310使用該所存儲配置中的信息來加載需要的可配置組件。在加載可配置組件之后,執(zhí)行程序組件310調用這樣一種函數(shù),該函數(shù)使得可配置組件302、304、306、308中的每一個在合適的時候向服務器應該發(fā)出用于請求它們的相關存儲配置402、404、406、408、410的返回的查詢。響應于從組件接收到查詢,服務器應用從數(shù)據(jù)庫溯源在該查詢中識別的存儲配置,并且將其返回請求組件。在存儲配置的來自服務器的接收之后,根據(jù)其中存儲的信息配置該組件。雖然在本文中沒有詳細描述,但是本領域技術人員將理解,在使用不同類型的存儲配置如注冊表項或執(zhí)照設置的實施方式中如何獲取存儲配置。圖5示出了數(shù)據(jù)經過更新裝置206從主機300到新VIG子系統(tǒng)204的傳遞。在圖5中未示出更新裝置206的在該示例性數(shù)據(jù)傳遞中未涉及的那些組件。在圖5中所述的示例中,更新裝置206包括三個仿真組件340-1、340-2、340-3。由執(zhí)行程序組件310控制仿真組件 340-1、340-2、340-3 中的每一個。物理主機接口組件302-1被配置為與主機200通信。在物理主機接口組件302_1處從主機200接收到的數(shù)據(jù)被置入緩沖器302-3中。在從主機200接收數(shù)據(jù)之后,物理主機接口組件302-1向執(zhí)行程序組件310發(fā)送同步脈沖“Trigl”。在主機200處可以將從主機200到達的數(shù)據(jù)預封裝到預定義數(shù)據(jù)結構中。物理主機接口組件302-1從預定義數(shù)據(jù)結構提取數(shù)據(jù),并且將其存儲在緩沖器302-3中準備就緒用于數(shù)據(jù)格式化和操作組件302-2。如上所述,同步脈沖“Trigl”的接收使得在數(shù)據(jù)格式化和操作組件302-2、第一仿真組件304-1、第三仿真組件304-3、第二仿真組件304-2和目標接口組件306的每一個中執(zhí)行程序組件310使得順序地執(zhí)行函數(shù)組“runl (…)”。“Trigl”還可以使得在控制面板組件308中執(zhí)行函數(shù)“runl (…)”。然而,由于這與經過更新裝置的數(shù)據(jù)流無關,所以在圖5中未示出。現(xiàn)在將描述在“runl (...)”函數(shù)組的執(zhí)行之后可配置組件302、304、306的示例性操作?!皉unl (...)”函數(shù)在數(shù)據(jù)格式化和操作組件302_2中的執(zhí)行使得數(shù)據(jù)格式化和操作組件302-2執(zhí)行緩沖器中的數(shù)據(jù),以根據(jù)需要來格式化/操作數(shù)據(jù),并且將已格式化/操作的數(shù)據(jù)置入第一數(shù)據(jù)結構DS-A中。在該情況中,到達物理主機接口組件302-1的數(shù)據(jù)未被預封裝到預定義數(shù)據(jù)結構中,例如因為不能夠修改主機200的軟件。在該情況中,數(shù)據(jù)格式化和操作組件302-2根據(jù)需要來操作數(shù)據(jù),并且輸出并將其存儲在第一數(shù)據(jù)結構DS-A中。在一些示例中,如果需要,則數(shù)據(jù)格式化和操作組件302-2可以包括兩個獨立的組件,一個組件用于格式化數(shù)據(jù),并且另一個組件用于操作數(shù)據(jù)。第一仿真組件304-1被配置為執(zhí)行主機接口組件302與第二仿真組件304_2和第三仿真組件304-3之間的內部接口功能。換言之,第一仿真組件304-1進行操作,以將從主機接口組件302接收的數(shù)據(jù)轉換成可以被第二仿真組件304-2和第三仿真組件304-3利用的格式。在該示例中,在“runl (…)”函數(shù)的接收之后,第一仿真組件304-1分離和/或處理存儲在第一數(shù)據(jù)結構DS-A中的數(shù)據(jù),并且將其置入到第二數(shù)據(jù)結構DS-B和第三數(shù)據(jù)結構DS-C中。第三仿真組件304-3是次級仿真組件,其提供附加功能和數(shù)據(jù)操作,以增強在該示例中作為第二仿真組件304-2的主仿真組件的功能。在“runl (…)”函數(shù)的接收之后,第三仿真組件304-3處理存儲在第三數(shù)據(jù)結構DS-C中的數(shù)據(jù),并且將其置入第四數(shù)據(jù)結構DS-D 中。第二仿真組件304-2是主仿真組件,其執(zhí)行正在向現(xiàn)有計算機環(huán)境增加的VIG子系統(tǒng)204所需要的核心功能。在“runl (…)”函數(shù)的接收之后,第二仿真組件304-2從第二數(shù)據(jù)結構DS-B和第四數(shù)據(jù)結構DS-D讀取數(shù)據(jù)。第二仿真組件被配置為處理該數(shù)據(jù),并且將其置入第五數(shù)據(jù)結構DS-E中。目標接口組件306被配置為與新VIG子系統(tǒng)204通信,新VIG子系統(tǒng)204將要與現(xiàn)有主機100通信。將要向新VIG子系統(tǒng)204輸出的數(shù)據(jù)被存儲在緩沖器(未示出)中。主機200與更新裝置206之間的接口可以經由以太網實現(xiàn)。但是,該接口可以備選地經由但不限于任意以下協(xié)議實現(xiàn):Raw、UDP、TCP/IP。依賴于所需要的協(xié)議來選擇合適的物理主機組件302-1和合適的數(shù)據(jù)格式化和操作組件302-2。圖6示出了數(shù)據(jù)經過更新裝置206從新VIG子系統(tǒng)204到主機200的傳遞的一個示例。在圖6中未示出更新裝置206的在該示例性數(shù)據(jù)傳遞中未涉及的那些組件。響應于從新VIG子系統(tǒng)204接收到數(shù)據(jù),目標接口組件306向緩沖器(未示出)寫入該數(shù)據(jù),并且向執(zhí)行程序組件310發(fā)送同步脈沖“Trig2”。目標接口組件306還可進行操作以取出從新VIG子系統(tǒng)204接收到的數(shù)據(jù),并且將其存儲在第六數(shù)據(jù)結構DS-F中。響應于從目標接口組件接收到同步脈沖“Trig2”,執(zhí)行程序組件310在第一仿真組件304-1、數(shù)據(jù)格式化和操作組件302-2和物理主機接口組件302-1中順序地執(zhí)行“run2 (...)” 函數(shù)。 在“run2(…函數(shù)的執(zhí)行之后,第一仿真組件304-1從第五數(shù)據(jù)結構DS-F讀取數(shù)據(jù),處理該數(shù)據(jù)并且將其存儲在第六數(shù)據(jù)結構DS-G中。數(shù)據(jù)格式化和操作組件302-2然后從第六數(shù)據(jù)結構DS-G讀取數(shù)據(jù),將該數(shù)據(jù)格式化成為主機200可讀的格式,并且將其存儲在緩沖器(未示出)中。物理主機接口組件302-1可進行操作,以在“run2 (...)”函數(shù)的執(zhí)行之后將該數(shù)據(jù)從該緩沖器(未示出)傳遞到主機200。可以看出,從新VIG子系統(tǒng)204到主機的返回路徑不需要第二仿真組件304_2和第三仿真組件304-3。就這點而言,在這些組件中不包括“run2(...) ”函數(shù)。圖7A到7C分別是參考圖4到6所述的操作的備選的說明。圖7A示出了根據(jù)本發(fā)明的一個示例性實施方式的更新裝置206的初始化。在圖7A的步驟SI中,執(zhí)行程序組件310讀取執(zhí)行初始化文件400例如NUQ.1ni,并且使得該信息被寫入存儲器314。在步驟S2中,基于來自執(zhí)行初始化文件400的信息,執(zhí)行程序組件310使得物理主機接口組件302-1被加載。在步驟S3中,基于從執(zhí)行程序組件310接收到的命令信號,物理主機接口組件302-1從存儲器314讀取如執(zhí)行初始化文件400 (在以上示例性“Hostlf.1ni”)中所定義的它的初始化文件402。在步驟S4中,基于來自執(zhí)行初始化文件400的信息,執(zhí)行程序組件310使得數(shù)據(jù)格式化和操作組件302-2被加載。在步驟S5中,基于從執(zhí)行程序組件310接收的命令信號,格式化和操作組件302-2從存儲器314讀取如執(zhí)行初始化文件400 (在以上示例性“DM.1ni”)中所定義的它的初始化文件404。在步驟S6中,基于來自執(zhí)行初始化文件400的信息,執(zhí)行程序組件310使得第一仿真組件304-1被加載。在步驟S7中,基于從執(zhí)行程序組件310接收的命令信號,第一仿真組件304-1從存儲器314讀取如執(zhí)行初始化文件400 (在以上示例性“SC1.1ni”)中所定義的它的初始化文件406。在步驟S8中,基于來自執(zhí)行初始化文件400的信息,執(zhí)行程序組件310使得第三仿真組件304-3被加載。在步驟S9中,基于從執(zhí)行程序組件310接收的命令信號,第三仿真組件304-3從存儲器314讀取如執(zhí)行初始化文件400 (在以上示例性“SC3.1ni”)中所定義的它的初始化文件410。在步驟SlO中,基于來自執(zhí)行初始化文件400的信息,執(zhí)行程序組件310使得第二仿真組件304-2被加載。在步驟Sll中,基于從執(zhí)行程序組件310接收的命令信號,第二仿真組件304-2從存儲器314讀取如執(zhí)行初始化文件400 (在以上示例性“SC2.1ni”)中所定義的它的初始化文件406-2。在步驟S12中,基于來自執(zhí)行初始化文件400的信息,執(zhí)行程序組件310使得目標接口組件306被加載。在步驟S13中,基于從執(zhí)行程序組件310接收的命令信號,目標接口組件306從存儲器314讀取如執(zhí)行初始化文件400 (在以上示例性“TARGIF.1ni ” )中所定義的它的初始化文件408。雖然在圖7A上未示出,但是執(zhí)行程序組件310可以基于執(zhí)行初始化文件400,通過從存儲器314讀取其他可配置組件如控制面板組件308的初始化文件410,使得它們被加載并且被配置。認識到,可以同時地或者以任意次序執(zhí)行步驟S2、S4、S6、S8、SlO和S12。在已經加載組件之后發(fā)散由加載組件進行的初始化文件的讀取。圖7B示出了更新裝置使得來自主機200的數(shù)據(jù)被傳遞到新VIG子系統(tǒng)204的操作。在步驟S14中,在物理主機接口組件302-1處從主機200接收數(shù)據(jù)。在步驟S15中,由物理主機接口組件302-1將從主機200接收的數(shù)據(jù)置入可以是存儲器314的一部分的緩沖器中。在步驟S16中,物理主機接口組件302-1向執(zhí)行程序組件310發(fā)送同步脈沖“Trigl”,以通知它已經從主機200接收的數(shù)據(jù)。在初始化文件400的“TRIGGERS”節(jié)中,并且在該示例中“NUQ.1ni”的“Trigl”中定義了執(zhí)行程序組件310用于從物理主機接口接收同步脈沖的方式。結果,在步驟S17中,響應于接收到同步脈沖,執(zhí)行程序組件310向數(shù)據(jù)格式化和操作組件302-2發(fā)送用于使得數(shù)據(jù)格式化和操作組件302-2執(zhí)行“runl (...)”函數(shù)的命令信號。響應于“runl (...)”函數(shù)的執(zhí)行,在步驟S18中,數(shù)據(jù)格式化和操作組件302_2從緩沖器讀取數(shù)據(jù),將該數(shù)據(jù)格式化并且將該數(shù)據(jù)置入被存儲在共享存儲器例如存儲器314中的第一數(shù)據(jù)結構DS-A中。接下來,在步驟S19中,執(zhí)行程序組件310向第一仿真組件304-1發(fā)送用于使得第一仿真組件304-1執(zhí)行“runl (...)”函數(shù)的命令信號。響應于“runl (…)”函數(shù)的執(zhí)行,第一仿真組件304_1從共享存儲器314中的第一數(shù)據(jù)結構DS-A讀取數(shù)據(jù),在該數(shù)據(jù)上進行操作并且將其置入到被存儲在共享存儲器314中的第二數(shù)據(jù)結構DS-B和第三數(shù)據(jù)結構DS-C中。在步驟S21中,執(zhí)行程序組件310向第三仿真組件304_3發(fā)送用于使得第三仿真組件304-3執(zhí)行“runl (...)”函數(shù)的命令信`號。響應于該命令信號,在步驟S22中,該第三仿真組件304-3從第三數(shù)據(jù)結構DS-C提取數(shù)據(jù)并且將結果置入第四數(shù)據(jù)結構DS-D中。接下來在步驟S23中,執(zhí)行程序組件310向第二仿真組件304_2發(fā)送用于使得第二仿真組件304-2執(zhí)行“runl (...)”函數(shù)的命令信號。響應于該命令信號,在步驟S24中,該第二仿真組件304-2從第二數(shù)據(jù)結構DS-B和第四數(shù)據(jù)結構DS-D提取數(shù)據(jù),并且將結果置入第五數(shù)據(jù)結構DS-E中。在步驟S25中,執(zhí)行程序組件310向目標接口組件306發(fā)送用于使得目標接口組件306執(zhí)行“runl 函數(shù)的命令信號。響應于此,在步驟S26中,目標接口組件306從第五數(shù)據(jù)結構DS-FE讀取數(shù)據(jù),并且在步驟S27中將其發(fā)送到新VIG子系統(tǒng)204。圖7C示出了更新裝置的使得數(shù)據(jù)從新VIG子系統(tǒng)204被傳遞到主機200的操作。在步驟S28中,在目標接口組件306處從新VIG子系統(tǒng)204接收數(shù)據(jù)。在步驟S29中,由目標接口組件306將從新VIG子系統(tǒng)204接收的數(shù)據(jù)置入可以是存儲器314的一部分的緩沖器中。在步驟S30中,目標接口組件306向執(zhí)行程序組件310發(fā)送同步脈沖“Trig2”,以通知它已經從新VIG子系統(tǒng)204接收到數(shù)據(jù)。在初始化文件400的“TRIGGERS”節(jié)中并且在該示例中“NUQ.1ni”的“Trig2”中定義了執(zhí)行程序組件310用于從目標接口組件接收同步脈沖的方式。結果,在步驟S31中,響應于接收到同步脈沖,執(zhí)行程序組件310向第一仿真組件304-1發(fā)送用于第一仿真組件304-1執(zhí)行“run2(…)”函數(shù)的命令信號。
響應于“run2(…)”函數(shù)的執(zhí)行,在步驟S32中,第一仿真組件304_1從該緩沖器讀取數(shù)據(jù),在該數(shù)據(jù)上進行操作并且將其置入到被存儲在共享存儲器314中的第六數(shù)據(jù)結構DS-F中。接下來,在步驟S33中,執(zhí)行程序組件310向數(shù)據(jù)格式化和操作組件302_2發(fā)送用于使得數(shù)據(jù)格式化和操作組件302-2執(zhí)行“run2 (…)”函數(shù)的命令信號。響應于“run2(…”函數(shù)的執(zhí)行,在步驟S34中,數(shù)據(jù)格式化和操作組件302-2從第六數(shù)據(jù)結構DS-F提取數(shù)據(jù)、處理器和/或格式化該數(shù)據(jù),并且將該數(shù)據(jù)置入到被存儲在共享存儲器例如存儲器314中的第七數(shù)據(jù)結構DS-G中。接下來,在步驟S35中,執(zhí)行程序組件310向物理主機接口組件302_1發(fā)送用于使得物理主機接口組件302-1執(zhí)行“run2(…”函數(shù)的命令信號。響應于此,在步驟S36中,物理主機接口組件302-1提供從第七數(shù)據(jù)結構DS-G中讀取數(shù)據(jù)并且在步驟S37中將其發(fā)送到新主機200。在上述實施方式中,在新子系統(tǒng)204與更新裝置206之間存在一個物理接口,并且在更新裝置206與主機200之間存在一個物理接口。然而將要認識到,在新子系統(tǒng)204與更新裝置206之間和/或在更新裝置206與主機200之間可以存在多個物理接口。經由一個物理接口到達更新裝置的數(shù)據(jù),其可以由與經由第二物理接口到達的數(shù)據(jù)不同的可配置組件的集合來操作。這樣,通過更新裝置的路徑可以多于一個,其中數(shù)據(jù)經由該路徑來向仿真組件傳輸或者從該仿真組件傳輸。類似地,數(shù)據(jù)可以經由單一物理接口到達更新裝置,但是被分割,因而其經由可配置組件的兩 個或更多個不同的集合相繼地經過更新裝置206?,F(xiàn)在將提供具體實現(xiàn)的細節(jié)。這些細節(jié)補充上文的描述,并且可用于展示在C++編程語言中可以如何實現(xiàn)本發(fā)明。下文是當將新可視化子系統(tǒng)與現(xiàn)有主機200集成時用于更新裝置206的一個具體示例性實施方式的仿真組件的描述NUQLEUSa 軟件鉬件由單獨共享的對象庫中所包括的軟件組件的集合提供該系統(tǒng)和NUQLEUS 系統(tǒng)的具體功能。對于可以存在與給定系統(tǒng)上的NUQLEUS 的數(shù)量沒有實際限制。依賴于由軟件所需要的接口,每個功能可以提供兩個核心功能路徑。典型地,路徑I用于操作源于現(xiàn)有計算機系統(tǒng)的數(shù)據(jù)以準備就緒用于另一個NUQLEUS 組件或到新子系統(tǒng)的傳輸。路徑2典型地用于返回路徑,即源自新子系統(tǒng)的數(shù)據(jù)的操作,其準備就緒用于其他軟件組件或者回到原始計算機系統(tǒng)的傳輸。每個組件基于標準模板,該模板包括用于與NUQLEUS 執(zhí)行程序接口所需要的4個關鍵函數(shù)的占位符。這些函數(shù)是:1.1nit(...),其在NUQLEUS 初始化時被調用,以提供可配置組件的任意定制初始化;2.runl (…),其被NUQLEUS 執(zhí)行程序調用,以執(zhí)行兩個功能路徑中的一個(典型地,從現(xiàn)有系統(tǒng)到新子系統(tǒng));3.run2 (…),其被NUQLEUS 執(zhí)行程序調用,以執(zhí)行兩個功能路徑中的一個(典型地從新子系統(tǒng)到原始系統(tǒng));4.term (…),其在命令退出或檢測到嚴重錯誤時被NUQLEUS 執(zhí)行程序調用,以執(zhí)行用于NUQLEUS 組件的必要的清除操作。
NuaCodea將由NUQLEUS 組件需要的數(shù)據(jù)封裝到NuqCode中。NuqCodes 向具體分組提供一個或多個分組需要的信息。使用NuqCode實現(xiàn)在單獨NUQLEUS 組件之間的通信。每個NUQLEUS 組件具有一個可用NuqCode 子集被定為輸入,并且另一個可用NuqCode 子集被定為輸出。NuqCode 存在于共享存儲器中并且根據(jù)組件的需要被創(chuàng)建,因為他們被執(zhí)行程序動態(tài)地加載。該方法的益處包括如下能力:動態(tài)地配置主機接口緩沖器而無需源文件的再編譯,并且支持在運行時的不同NUQLEUS 組件的互換。圖8示出了 NUQLEUS組件之間的數(shù)據(jù)傳遞。圖8示出了經由執(zhí)行程序接口控制的多個互斥的數(shù)據(jù)接口。NUQLEUSm外部梓口纟目件I該組件被配置為與現(xiàn)有外部計算機系統(tǒng)通信。動態(tài)地拆解所接收數(shù)據(jù)并且將其置入 NuqCode A 中。NUQLEUSm外部梓口纟目件I該組件被配置為與將要與現(xiàn)有計算機接口的外部計算機系統(tǒng)通信。從保持在NuqCode E中的數(shù)據(jù)中動態(tài)地拆解將要從NUQLEUS 輸出的數(shù)據(jù)。NUQLEUSm 鉬件 I該組件執(zhí)行外部接口組件I與NUQLEUS 仿真組件之間的內部接口功能。根據(jù)函數(shù)處理并且分離保持在NuqCode A的數(shù)據(jù)。然后向NuqCodeTMB和NuqCodeTMC輸出該數(shù)據(jù)。NUQLEUSm 鉬件 2該組件是主仿真組件,其執(zhí)行正在向現(xiàn)有計算機環(huán)境增加的系統(tǒng)所需要的核心功能。對該組件的輸入來自NuqCode B和NuqCode D,來自該組件的全部輸出被包括在NuqCode E 中。NUQLEUSm 鉬件 3該組件是次仿真組件,其提供附加功能和數(shù)據(jù)操作以增強主NUQLEUS 仿真組件的功能。對該組件的輸入來自NuqCode'來自該組件的全部輸出被包括在NuqCode D中。在運行時可經過配置文件的集合動態(tài)地配置每個NUQLEUS 組件。類似的通信路徑適用于從新子系統(tǒng)返回的數(shù)據(jù)。NUQLEUS 組件的庫可以隨時間增長而不影響以前發(fā)布的可執(zhí)行軟件。由于NUQLEUS 組件之間所需要的接口的數(shù)量增加,則可用的NuqCode 數(shù)量也增加。這提供與該系統(tǒng)的全部版本的后向兼容。NUQLEUSm示例件配置由NUQLEUS 執(zhí)行程序使用初始化文件的系統(tǒng)在運行時實現(xiàn)NUQLEUS 配置。示出了 NUQ.1ni的以下示例,以描述如何使用該文件。該字段的描述遵循該示例。NUQ.1ni[TRIGGERS]Trigl = H0ST_IF, runl, DataManipulator, SCI, SC2, VIS_IF, SC_10Trig2 = EXT_IF, run2, SCI, DataManipulator, H0ST_IFTrig3 = RACK_IF, run2, SC_10Trig4 = EGPWS_IF, run2, SC_AV10INCS
[HOST—IF]load =./RAW.soiniFile = Hostlf.1ni[DataManipulator]load = DM.soiniFile = DM.1ni[SCI]load =./cSimCompOne.soiniFile = SC1.1ni[SC2]load =./cSimCompTw0.soiniFile = SC2.1ni[SC_10]load =./10.SOiniFile = 10.1ni[SC—AVIONICS]load =./Avionics, soiniFile = Avionics, ini[EXT—IF]load =./RAW.soiniFile = Vislf.1ni觸發(fā)器TRIGGERS節(jié)有效地定義數(shù)據(jù)的三個項:-第一參數(shù)定義當數(shù)據(jù)到達仿真組件的接口時通知NuqCode 的仿真組件,-第二參數(shù)定義響應于該觸發(fā)器來運行的函數(shù)組-參數(shù)3向前定義哪個仿真組件應該響應于該觸發(fā)器而運行以及它們應該運行的次序。例如,在以上示例性文件中,Trigl在DataManipulator、SC1、SC2、VIS_IF以及最終SC_Rack的每一個中順序地運行函數(shù)runl O。應當注意,突出顯示的仿真器組件是數(shù)據(jù)從NUQLEUS 被輸出的位置。其示出在輸出數(shù)據(jù)之后可以運行附加仿真組件,即其示出存在用于在已經輸出關鍵數(shù)據(jù)之后運行非關鍵軟件的設施。仿真組件參考應用于ini文件中的另一個節(jié),如在的ini文件中更下方出現(xiàn)的H0ST_IF 節(jié)。作為TRIGGERS節(jié)中定義的仿真組件的結果,NUQLEUS 執(zhí)行程序調用該仿真組件中的函數(shù)setReference (設置參考)到具體觸發(fā)器號碼。仿真組件保持該參考作為成員變量。作為觸發(fā)器的全部仿真組件包括成員函數(shù)setReference。當數(shù)據(jù)到達仿真組件接口時,通知NUQLEUS 執(zhí)行程序:具體地,調用函數(shù)processData(處理數(shù)據(jù)),其中參數(shù)被設置為保存(成員變量)參考號碼。組件為了調用processData,向該組件給出該回調函數(shù)的地址。這是使用作為C++的特征的多態(tài)來實現(xiàn)的:.抽象類上的基類cNUQLEUS .向觸發(fā)器組件構造器傳遞cNUQLEUS 對象的地址(使用“該”,但是將其作為指針傳遞到抽象類).該指針然后可用于從觸發(fā)器組件調用processData。在TRIGGERS節(jié)中的項/值的第二參數(shù)指示由于該觸發(fā)器的結果應該運行哪個函數(shù)如runl O??偠灾?,該TRIGGERS節(jié)指示哪個仿真組件觸發(fā)函數(shù)組。仿真組件對于每個仿真組件定義應該節(jié)。每個仿真組件被構造成Linux共享對象。用于每個仿真組件的設置指示要加載的共享對象的名稱和在啟動時被該組件讀取的初始化文件,例如在以上示例中,H0ST_IF仿真組件被構造成共享對象RAW并且讀取初始化文件Hostlf.1ni。如上所述,NUQLEUS 執(zhí)行程序完成共享對象的加載。執(zhí)行程序框架將NUQLEUS 架構概述如下:.每個可傳遞NUQLEUS 產品包括多個仿真組件,每個仿真組件滿足NUQLEUS 的具有要求。.在NUQLEUS 的啟動時動態(tài)地加載這些仿真組件。.主NUQLEUS 類作為控制任務,響應于同步脈沖調度仿真組件。.由于數(shù)據(jù)到達其中一個接口而提供同步脈沖。通常,存在兩個路徑:一個路徑從主機到外部接口(Lire視覺的),并且另一個路徑從外部接口到主機。結果,當數(shù)據(jù)從主機到達時并且類似地當數(shù)據(jù)從外部接口到達時觸發(fā)同步脈沖。.將同步脈沖傳遞回到NUQLEUS 執(zhí)行程序,這使得在NUQLEUS 中(順序地)運行其他仿真組件中的功能。從主機到外部接口的數(shù)據(jù)使得在每個仿真組件中(可選地)調用函數(shù)‘runlO’ ;而來自第二外部接口的數(shù)據(jù)使得在每個仿真組件中(可選地)調用函數(shù)‘run2 O ’。并非全部仿真組件需要runl O和run2 O過程,并且它們僅需要被寫入/包括在需要它們的仿真組件中。.到主機的NUQLEUS 接口是以太網,但是可以是任意協(xié)議Raw、UDP、TCP/IP。選擇合適的仿真組件以支持所需要的任何協(xié)議。.將從主機到達的數(shù)據(jù)(通常)(在主機處)預封裝成預定義NUQLEUS 代碼。以太網接口仿真組件提取數(shù)據(jù),準備被數(shù)據(jù)格式化器/數(shù)據(jù)操作器使用。.數(shù)據(jù)格式化器組件被配置為在主機以太網組件之后運行。其檢查主機數(shù)據(jù)緩沖器,將數(shù)據(jù)格式化成標準NUQLEUS 代碼。結果數(shù)據(jù)被加載到共享存儲器中的結構中。如果存在非標準NUQLEUS 代碼或者主機軟件不能被改變(例如沒有源),則需要數(shù)據(jù)操作器。.數(shù)據(jù)操作器執(zhí)行與數(shù)據(jù)格式化器非常相似的功能,但是處理任何非標準NUQLEUS 代碼。數(shù)據(jù)操作器是仿真器特有的并且由系統(tǒng)工程師設計/實現(xiàn)。再次,結果生成的數(shù)據(jù)也被加載到共享存儲器中的結構中。
.一個或多個專用仿真組件取得NUQLEUS 代碼,并且執(zhí)行所需要的任何功能例如格式化數(shù)據(jù)以便到可視化系統(tǒng)的輸出。類該節(jié)提供關于實現(xiàn)軟件的次序的信息:1.typedefs.h2.templates, h3.cIniFile 類4.主 NUQLEUS 程序(nuqMain.cpp)5.cSharedMem 類6.cNUQLEUSTM 類及其基礎抽象類 cNUQLEUS Base7.NUQLEUSTM,代碼頭部文件(nuqCode〈Num>.h)8.cHostlf類-提供到現(xiàn)有主機的接口的觸發(fā)器類9.CVisIf類-提供到正在向仿真器增加的VIG系統(tǒng)的接口的觸發(fā)器類
10.endianSwap 模板11.cDataFormatter 類12.cDataManipulator 類13.cSimCompl類-提供用于更新的軟件仿真模型的仿真組件14.cSimComp2類-提供用于更新的軟件仿真模型的仿真組件15.1EEE 轉換模板用于Nuqleusim的某礎的柚象類已經敘述了需要抽象類,其中NUQLEUS 任務基于抽象類。這支持NUQLEUS 創(chuàng)建的組件調用保持在NUQLEUS 類中的函數(shù)。具體地,接口仿真組件要求當數(shù)據(jù)到達時通知NUQLEUS ,即支持觸發(fā)機制。該抽象類包括頭部文件并且具有與以下類似的格式:
#pragma once class cNUQLEUS Base {
public:
virtual voidprocessData(unsigned short) = 0;
};豐類-cNUQLEUS 基本功能該類包括以下功能: 提供用于動態(tài)地加載仿真組件的能量。這允許在無需重編譯的情況下改變配置。.支持用于定義各種參數(shù)以控制NUQLEUS ,并且尤其是將要被加載的具體仿真組件的操作的初始化文件。.加載并且初始化仿真組件,同時向仿真組件傳遞具體初始化文件的名稱。.當數(shù)據(jù)到達接口時調用每個仿真中的具體功能。操作該類進行操作以:.在初始化文件(例如NUQ.1ni)中進行讀取。.以這樣一種方式存儲該信息以允許其中的數(shù)據(jù)準備被使用。.以這樣一種方式加載每個仿真組件以允許該仿真組件中的函數(shù)被調用。.啟動任何負責提供同步脈沖的仿真組件:〇當前,僅一個仿真組件正在響應于在接口處的數(shù)據(jù)到來〇存在對主機的接口并且存在對可視化的接口.進入“不費 時間”響應控制請求的循環(huán)(例如停止、重加載、開始等等)。.作為(來自任意接口仿真組件的)外部觸發(fā)的結果,NUQLEUS 調用每個仿真組件中的函數(shù)。.典型地,對于從(例如)主機到可視化系統(tǒng)的數(shù)據(jù),在每個仿真組件中調用的函數(shù)是runl O,而在反方向中(從可視化到主機)使得run2()被調用。.為了支持部分號碼的顯示的要求,NUQLEUS 類應該包括它的部分號碼并且支持全部組件返回關于它們的部分號碼的信息。包括版本信息??梢詫⒃摬糠痔柎a信息保持在初始化文件(NUQ.1ni等等)內,或者可以備選地保持在C++實現(xiàn)源文件內部。這是通過以下實現(xiàn)的:O char m_szRevision[] = “$Revision:$” ;O char m_szPartNumber[] = “〈enter part number〉,,;在一些實施方式中,將這些變量和訪問器(accessor)函數(shù)放到通用類內部,并且“全部”類基于此。支持類特征:.初始化文件讀取器(見‘初始化文件讀取器/寫入器-clnifile’ )。 抽象類允許由NUQLEUS 創(chuàng)建的仿真組件調用NUQLEUS 中的函數(shù)(這在下文中描述)。CNUQLEUSa.cpp 和 cNUQLEUS .h.該類構成用于NUQLEUS 框架的主類。.進入點是函數(shù)‘run O ’。.該類基于cNUQLEUS 基礎。這允許支持多態(tài)的使用,以允許由NUQLEUS 創(chuàng)建/加載的任意類進行到執(zhí)行對NUQLEUS 的回調。這是由全部被加載、正在被傳遞到指向基類的指針所實現(xiàn)的。該基類然后被這些“子類”用于調用cNUQLEUS 內的函數(shù)processData。注意:processData被定義為純虛函數(shù)。.當構造cNUQLEUS 對象時,其利用部分號碼加載成員變量和NUQLEUS 的當前版本。.通過調用成員函數(shù)run()來啟動該框架。其使得該類:〇將工作文件夾設置為$NUQLEUS /bin (其簡化仿真組件的動態(tài)加載和初始化文件的定位等等)〇檢查types, h內所保持的全部數(shù)據(jù)類型的尺寸,以確保該尺寸與操作系統(tǒng)一致〇等待直到其被指示開始為止(經由psControl_>bRun)〇讀取 NUQLEUS .1ni 文件〇加載在NUQLEUS .1ni內定義的仿真組件共享對象〇進入(在函數(shù)bg內)僅存在與控制C或psControl_>bExitRequested上的循環(huán)〇在該循環(huán)內檢查NUQLEUS 代碼版本是正確的.當加載每個仿真組件時,NUQLEUS 框架調用用于該仿真組件的init函數(shù)。該init函數(shù)被定義為純虛函數(shù),因此向全部仿真組件聲明它。在該init函數(shù)中將參數(shù)傳遞到每個仿真組件:指向NUQLEUS 抽象基類的指針、觸發(fā)器參考和初始化文件(如NUQLEUS .1ni中定義的)。對于未被用作觸發(fā)器的全部仿真組件,將該觸發(fā)器參考設置為-1 ;而其將該索引保持在用于觸發(fā)器的仿真觸發(fā)器組件的列表中(在NUQLEUS .1ni中定義了該次序)。.由其他仿真組件特別是被定義為觸發(fā)器的那些仿真組件實現(xiàn)該框架的實時方面。當‘觸發(fā)器’仿真組件接收數(shù)據(jù)時,其通過使用用于此的NUQLEUS 基類,經由processData函數(shù)通知NUQLEUS (如上所述)。
.在processData內定義互斥鎖,以確保在任意一個時刻僅有一個仿真組件可以調用processData。這避免共享數(shù)據(jù)的問題。在processData的開始的時候,倉Il建該互斥鎖;在processData的結束時將其釋放。結果,如果任意仿真組件在processData正在被使用時調用它,則該仿真組件被操作系統(tǒng)推遲,直到互斥鎖被釋放為止。 當關閉NUQLEUS 時,該框架調用用于全部仿真組件的“銷毀”函數(shù)。注釋:“term”函數(shù)是對于全部仿真組件可選的:如果其不存在,則改為調用cNUQLEUS 基本版本。初始化文件讀取器/寫入器-ClniFile某本功能該類包括以下功能:.提供對初始化文件讀取/寫入的能力。.接口是“簡單的”,因此任何系統(tǒng)工程師可以無難度地使用。操作.函數(shù)的最小集合是:〇構造器:具有被覆寫的默認構造器以允許傳遞初始化文件的名稱,將初始化文件讀取到存儲器中。后續(xù)增加的默認構造器允許延遲ini文件的加載直到調用負載函數(shù)為止。O getlniSetting:具有節(jié)的名稱和關鍵字的名稱的參數(shù),返回一個值例如見下文。提供〈節(jié) > 和〈關鍵字 >,返回值:[〈SECTION〉]〈Key〉=〈Value〉getSectionData-具有〈節(jié)〉的參數(shù),返回全部關鍵字/值對,例如見下文。向〈節(jié)〉提供全部關鍵字/值對:
[〈SECTION〉]<Keyl> = <Valuel><Key2> = <Value2><Key3> = <Value3>〇putlniSetting:具有節(jié)名稱、關鍵字名稱和值的參數(shù),在文件的存儲器副本中增加/編輯現(xiàn)有細節(jié)。O removelniSetting:具有節(jié)名稱和關鍵字名稱的參數(shù),從文件的存儲器副本中刪除該設置。O Save:保存 初始化文件的存儲器副本。O saveAs:將初始化文件的存儲器副本保存為另一個ini文件。共享存儲器類-cSharedMen使用Linux共享存儲器來管理在仿真組件之間共享數(shù)據(jù)的方式。在實時主機開發(fā)程序期間創(chuàng)建的類利用共享存儲器‘simple (簡單)’。該類被稱為cSharedMem并且需要兩個文件 cSharedMem.cpp 和 cSharedMem.h。下文示出了它的使用的一個示例:
typedef struct {
UINTJ ui4Code; double dLat; double dLon;
} tNQlOO; tNQlOO* poNQlOO;
cSharedMem.0NQl 00((void林)&poNQl 00, sizeof(tNQ100), 100);在該示例中,定義用于虛構NUQLEUS 代碼100的(非常小的)結構。typedeftNQlOO聲明該結構。由變量poNQlOO定義指向該類型的結構的指針。使用cSHared Mem構造器,用關鍵字100定義共享存儲器段(以匹配NUQLEUS 代碼)。由于調用該構造器的結果,poNQlOO結構可用于訪問NUQLEUS 代碼100結構的任意成員。需要對該共享存儲器的訪問的任意仿真組件還包括ONQ100共享存儲器變量的定義。這自動地附接到共享存儲器(如果已經存在)或者創(chuàng)建共享存儲器(如果不存在)。當任意仿真組件被銷毀時(在出口或有可能在重加載時),自動地斷開共享存儲器。被自動地關閉的最后一個仿真組件使得共享存儲器被釋放。cNuqCode<xxx>.cpp 和 cNuaCode〈xxx>.h每個NUQLEUS 代碼具有(在類中)定義的實現(xiàn)。該類基于cNuqCode 和cNuqCodeBase 類。對于每個NUQLEUS 代碼提供以下成員函數(shù):
構造器,具有合適的初始化參數(shù).1adNuqCodeShMem并且可選地:.析構器并且將以下函數(shù)定義為外部C函數(shù):.創(chuàng)建.銷毀因為與現(xiàn)有NUQLEUS 代碼實現(xiàn)相比它們是直觀的,在這里沒有給出完整的細節(jié)??梢詣?chuàng)建模板以便于創(chuàng)建新NUQLEUS 代碼的過程。由于需要用于定義該NUQLEUS 代碼的初始化文件,使得由數(shù)據(jù)格式化器自動地創(chuàng)建cNuqCodexxx類的實例。cNuqCodeBase.cpp 和 cNuaCodeBase.h每個將要被動態(tài)加載的NUQLEUS 代碼是基于該類。其支持cDataFormatter類動態(tài)地加載任意NUQLEUS 代碼。該類被定義為純虛擬的,因而絕不可以直接使用。cNuqCode.cpp 和 cNuaCode.h該類也由全部NUQLEUS 代碼用作它們的基類。其在用于該代碼的cSharedMem的周圍提供‘包裝(wrapper)’。(除了 cSharedMem功能之外)該類的主要特征在于對NUQLEUS 代碼提供自動版本檢查。Endian 交換類-cEndianSwap該類包括支持任意數(shù)據(jù)類型的兩個模板類:endianSwapInt:用于任意非浮點數(shù)據(jù)類型;endianSwapReal:用于任意非浮點數(shù)據(jù)類型。作為模板設計意味著當使用該類時,用于操作該類的數(shù)據(jù)類型被包括在尖括號中,例如以交換長整數(shù),將該類調用為:ISwappedVariable = endianSwapInt<long>lVariable ;數(shù)據(jù)格式化器類-cDataFormatter該類支持將主機數(shù)據(jù)卸載到NUQLEUS 代碼(對于從主機傳遞到外部接口的數(shù)據(jù)),并且支持將NUQLEUS 代碼卸載到主機數(shù)據(jù)緩沖器(對于正在從外部接口向主機傳遞的數(shù)據(jù))。這是用于cDataManipulator的基類:這是用于處理與數(shù)據(jù)格式化器相同的功能但是用于非標準NUQLEUS 代碼的類。完整地說,數(shù)據(jù)格式化器(和數(shù)據(jù)操作器)類進行以下處理:.將主機緩沖器和NUQLEUS 代碼共享存儲器結構進行卸載/加載.特定主機平臺所需要的數(shù)據(jù)的字節(jié)存儲順序(Endian)交換.特定主機平臺所需要的IEEE 754的轉換.確保NUQLEUS 代碼結構中的數(shù)據(jù)填充不引起問題(即在主機緩沖器和NUQLEUS 代碼共享存儲器結構之間的直接memcpy是不可行的)附加注釋(如下覆蓋):該類還處理用于每個NUQLEUS 代碼的版本信息。
cDataFormatter.cpp 和 cDataFormatter.h.該類處理到達主機接口的數(shù)據(jù)并且將該數(shù)據(jù)加載到NUQLEUS 代碼類中。.期望主機數(shù)據(jù)作為連續(xù)的字節(jié)序列而存在于共享存儲器中。.用于數(shù)據(jù)格式化器的初始化文件定義用于主機共享存儲器的項,并且期望在該數(shù)據(jù)中找到NUQLEUS 代碼帽子(hat)。該初始化文件的一個示例是:DF.1ni[NUQLEUS Codes]NUQ_C0DE1 = 200NUQ_C0DE2 = 201NUQ_C0DE3 = 202NUQ_C0DE4 = 203NUQ_C0DE5 = 500[Bufferln]SH_MEM_KEY = 1234SIZE = 576[BufferOut]SH_MEM_KEY = 5678SIZE = 1280[InputData]BIG_ENDIAN = false.其自動地創(chuàng)建節(jié)NUQLEUS 代碼之下列出的NUQLEUS 代碼。.BufferIn節(jié)定義用于主機輸入數(shù)據(jù)的共享存儲器.BufferOut節(jié)定義用于主機輸出數(shù)據(jù)的共享存儲器.InputData節(jié)定義主機是否是大端模式(Big Endian)(即需要交換NUQLEUS 內的全部字節(jié))。豐機和梓口類為了支持外部主機和外部接口緩沖器的顯示,將這些緩沖器也加載到共享存儲器中。這還助于數(shù)據(jù)格式化器(和數(shù)據(jù)操作器)讀取該信息。如果需要,其還允許任意仿真組件訪問該數(shù)據(jù)。硬件方案用于NUQLEUS 的硬件封裝是“黑盒”嵌入式方案。NUQLEUS 的前面板包括用于提供頂級診斷和狀態(tài)信息的LCD接口、以及用于外部接口的以太網端口加上用于維護web前端的附加端口??梢暬抡娼M件圖9示出了用于可視化仿真組件的頂層架構。針對軟件設計的主要約束在于:組件的類要基于cAbsSimComponent類、并且最終二進制數(shù)要被編譯為Linux共享對象的要求。
使用用于g++編譯器的-共享的和-fPIC交換,來編譯Linux共享對象。
使用對于實時主機系統(tǒng)開發(fā)的cSharedMemory來創(chuàng)建共享存儲器段。
對于可視化仿真組件來標識以下子組件:
.到IG的NUQLEUS 輸出緩沖器,保持在共享存儲器中的分組IG op代碼數(shù)據(jù)的字節(jié)數(shù)組,用于由NUQLEUS 外部接口組件向IG的傳輸
來自IG的輸入NUQLEUS 緩沖器,保持在共享存儲器中并且源自IG的未處理OP代碼數(shù)據(jù)的字節(jié)數(shù)組。
-1G Op代碼數(shù)據(jù)格式化器,將NUQLEUS 輸入/輸出緩沖器中的IG Op代碼編碼,并且解碼成IG所需要的類或方法集合。包括浮點/固定點注釋轉換和用于由OEM OCD定義的每個op代碼的例程。
.包括與可視化仿真相關的全部邏輯的可視化仿真功能類,包括視點(eyepoint)偏移量(如果需要)、預設值天氣條件、路程交通控制等等的計算。
.可視化NUQLEUS 代碼輸入,提供驅動可視化仿真特征所需要的全部數(shù)據(jù)的全部可用NUQLEUS 代碼的子集。這些內容可以源于主機(經由數(shù)據(jù)格式化器ref DPC 4)或者其他NUQLEUS 仿真組件(例如TCAS)。
.可視化NUQLEUS 代碼輸出,包 括從可視化仿真輸出的全部數(shù)據(jù)的、全部可用NUQLEUS 代碼的子集,包括地形反饋和用于教練員控制面板的狀態(tài)信息的項。
用于可視化仿真組件的NUQLEUS 內部I⑶包括被用作輸入和輸出的NUQLEUS 代碼的定義。
圖10示出了高級NUQLEUS 組件通信路徑。典型的可視化函數(shù)和IG數(shù)據(jù)格式化器形成兩個獨立的仿真組件。經由NuqCode的定義的子集傳遞數(shù)據(jù)。不存在從NUQLEUS 數(shù)據(jù)格式化器到Op代碼格式化器的直徑路程。
雖然該方法很可能延遲視點位置到由可視化所需要的格式的轉換(以及輸出緩沖器的后續(xù)封裝),但是到IG的以太網輸出仍然需要完成全部所識別組件。因此,總體引起的延遲是零。
IG Op代碼格式化器
IG Op代碼格式化器利用指向用于保持IG外部輸入/輸出緩沖器的共享存儲器段的指針。
IG Op代碼格式化器需要用于處理工程與技工CLI Opcode手冊中所定義的IG Op代碼之間的數(shù)據(jù)的功能。正如全部NUQLEUS 仿真組件,從cSimCompBase類得出可視化數(shù)據(jù)格式化器。該可視化數(shù)據(jù)格式化器利用cSimCompBase的Init O、run I O和run 2 O方法??梢允÷詔erm()方法。
用于該sim組件的類包括用于與其他仿真組件的通信所需要的任意NuqCode 的頭部文件。
將格式化op代碼數(shù)據(jù)保持在共享存儲器緩沖器中,其使用NUQLEUS 執(zhí)行程序中的以太網接口任務向傳遞/從IG傳遞。以下段落定義該組件的功能:
類:cIGDataFmtr
從cSimCompBase 繼承
INI f 件設置
用于NUQLEUS 與IG之間的以太網傳遞的TX&RX緩沖器的共享存儲器關鍵字。
成顯
以下的本地副本:
指向共享存儲器以太網緩沖器的指針
指向NuqCode的指針
OpCode轉換器類的實例,提供用于在工程和IG數(shù)據(jù)格式之間轉換的方法。
Init O 功能
功能:
I)讀取INI文件并且保存設置
2)創(chuàng)建/附接到用于以太網傳遞緩沖器的共享存儲器分段
3)保存指向共享存儲器和NuqCode的指針的本地副本。
Runl O 功能
RunlO執(zhí)行準備就緒用于向IG的傳輸?shù)臄?shù)據(jù)的格式和以太網緩沖器的封裝。數(shù)據(jù)輸入的形式是NuqCode 加上具有傳輸標志位集合的具體NuqCode 。全部輸入源自VisualSimComponent (可視化仿真組件)。
對保持在共享存儲器中的緩沖器的輸出包括一系列已格式化并且排序的OpCode。
功能:
I)封裝可視化以太網頭部
2)初始化指向共享存儲器以太網Tx緩沖器的指針
3)針對每個可視化特征輸入:
檢查所需要的PACK&SEND,其所需要的布爾標志位的NuqCode 輸入
如果(緩沖器中的空間)
則利用來自NuqCode 輸入的合適的自變量,調用需要的封裝
〈OpCode〉方法
將指針增加長度(Op代碼)字節(jié)
清除PACK&SEND標志位
檢查緩沖器空間剩余
RunlQ 功能
Run2()執(zhí)行必要功能以拆解并且解碼從IG返回的以太網緩沖器中的任意數(shù)據(jù)。對該函數(shù)的輸入是保持在共享存儲器中的緩沖器,該共享存儲器包括源自IG的可變數(shù)量的已格式化OpCode。來自該函數(shù)的輸出是工程單元中的一系列NuqCode 。
功能:
I)檢查共享存儲器緩沖器中的數(shù)據(jù)
2)將指向以太網數(shù)據(jù)的起點的指針進行初始化
3)對于共享存儲器緩沖器中的每個opcode
提取Opcode號碼
調用可用的拆解〈OpCode〉方法
封裝可用NuqCode 數(shù)據(jù)
將指針增加長度(OpCode)字節(jié)
附加方法
除了由cBaseSimComp類定義的方法之外,cVisDataFormatter需要方法執(zhí)行以下步驟:
packOpCode<nnnn>:每個IG數(shù)據(jù)項需要特定方法以將數(shù)據(jù)封裝成由IG需要的格式。
由參數(shù)將待封裝的數(shù)據(jù)傳遞到該方法。
通過對指向以太網Tx緩沖器的指針進行增量,將數(shù)據(jù)封裝到所定義的位置。
unpackOpCode<nnnn>:每個IG數(shù)據(jù)項需要特定的方法以解碼來自由增加指針所指示的位置的數(shù)據(jù),并且將該數(shù)據(jù)轉換成工程格式。由參數(shù)將存儲輸出數(shù)據(jù)的位置傳遞到該方法。
轉換〈號碼格式>:1G需要使用固定點符號向/從它傳遞數(shù)據(jù)。需要多個方法來處理從IEEE浮點格式到固定點符號的轉換。在OEMICD文獻中定義里該轉換算法。例程將固定點符號轉換成IEEE浮點格式。
可視化仿真函數(shù)
可視化仿真函數(shù)提供典型地由可視化系統(tǒng)需要的功能。這包括如設置預先調節(jié)的天氣設置(例如CAT II可視性)。
將該可視化仿真函數(shù)封裝成以下組:
可視化系統(tǒng)控制
本機可視化特征
機場可視化特征
環(huán)境可視化特征
移動模型可視化特征
如同全部NUQLEUS 仿真組件,從cSimCompBase類得出該可視化仿真組件。該可視化仿真組件利用cSimCompBase的init()、runl()和run2 O方法。在此時不清楚是否需要term O方法。
用于該sim組件的類包括用于與其他仿真組件的通信所需要的任意NuqCode 的頭部文件。對該組件的全部輸入和輸出經由NuqCode進行。定義的類結構封裝在該實現(xiàn)階段的早期所識別的組所需要的不同的功能。
圖11中示出了該類結構:
該仿真組件具有用于控制在仿真類中可用的全部可配置選項的單個INI文件。以下段落定義該組件的功能以及其包括子類:
類:cVisualSimComp
從cBaseSimComp 繼承
INI f 件設置
IG 類型
視點偏移量
HAT測試點(號碼和位置)
沖突檢測測試點(號碼和位置)
可視化平面消隱定時器
成顯
到NuqCode 共享存儲器對象的本地副本
在以上類圖中識別的每個類的示例
視點X、Y、Z偏移量
可視化平面消隱可視化限制
用于以上識別的類之間的cVisualSimComp內部通信的結構。
InitO 功能
保存指向NuqCode 共享存儲器對象的指針的本地副本創(chuàng)建cVisManagement、cVisOwnship、cVisEnvironment> cVisAirfield> cVisMovingModeIs 和 cVisReturn 類的實例讀取Ini文件設置并且保存在本地成員變量中。
Runl O 功能
cVisualSimComp的Runl O方法的功能被限制為依次調用運行cVisManagement、cVisOwnship> cVisEnvironment> cVisAirfield 和 cVisMovingModels 類的方法。
Run2 0 功能
cVisualSimComp的Run2 O方法的功能被限制為調用運行cVisReturn的方法。
TermO 功能
待定
類:cVisManagement
目的
cVisManagement類處理可視化仿真特征的總體控制。期望它包括特征例如:
.可視化參數(shù)的初始化
.可視化系統(tǒng)顯示消隱/到期
.重定位屏幕消隱
.監(jiān)視用于丟失分組的nuqleus -1g通信(分組計數(shù)器)
.測試模式控制
.視口(viewport)和視點偏移量控制
成顯
可視化系統(tǒng)不活動性定時器和相關參數(shù)
指向作為到該類的輸入和輸出而傳遞的數(shù)據(jù)的指針的本地副本。
構誥器
保存輸入參數(shù):
保存指向輸入/輸出數(shù)據(jù)的指針的本地副本
保存可視化不活動性定時器限制的本地副本
初始化不活動性定時器
析構器
將可視化設置為OFF (消隱可視化等等)
方法
run O從cVisualSimComponent類調用該方法,并且提供用于可視化系統(tǒng)的頂層邏輯。如果需要則該方法調用附加內部(尚未識別的)方法。
輸入
教練員可視化系統(tǒng)開/關控制
本機定位
系統(tǒng)冰凍(飛行/總共)
命令可視化系統(tǒng)開/關
選擇測試形式
類:cVisOwnship
MM
cVisOwnship著手將來自主機輸入的本機可視化數(shù)據(jù)處理成由IG數(shù)據(jù)格式化器所需要的格式。期望其滿足的特征包括:
.視點位置(緯度、經度、高度和X、Y、Z格式)
視點回轉控制
.飛行器光照命令
定義HAT返回點
.沖突檢測請求
指向用于作為對類的輸入和輸出而傳遞的數(shù)據(jù)的存儲器位置的指針的本地副本
距離標稱CG位置的視點偏移量
HAT測試點的數(shù)量和位置
沖突檢測測試點的數(shù)量和位置
構誥器
保存輸入參數(shù):
指向輸入/輸出數(shù)據(jù)位置的指針。
析構器
沒有識別功能
方法
RunO:從cVisualSimComponent類調用該方法,并且該方法提供用于cVisOwnship功能的頂層邏輯。該方法順序地調用包括該類的其他私有方法。
eyepointPosition O:該方法考慮距標稱CG位置的X、Y、Z飛行員的眼睛位置偏移量來求解本機視點的位置。包括控制以提供緯度、經度、高度和X、Y、Z格式。
eyepointSlewO:該方法提供視點回轉的控制。這主要用在可視化系統(tǒng)的初始任命期間以確認飛機場校準和重定位點。
LightingO:該方法提供本機照明效應的控制。如飛行員選擇座艙開關所定義的,請求本機照明球。
setHatO:該方法當被調用時確保從IG請求地形高度反饋。該方法配置測試點的可用數(shù)量和位置。
setCollisionDetect O:該方法當被調用時配置本機沖突檢測測試點。
本機CG位置(緯度、經度、地面之上的高度)
本機姿勢(傾斜/翻轉/偏航)
著陸燈-開關位置(閘門、著陸燈、導航燈等等)
視點回轉請求控制
輸也
用于到IG數(shù)據(jù)格式化器的輸入的視點位置
本機照明效果
HAT測試點位置
沖突檢測測試點
類:cVisAirfield
目的
cVisAirfield類將來自原NuqCode 的主機和教練員控制面板輸入處理成IG數(shù)據(jù)格式化器所需要的格式。
在該類中處理的特征包括:
.活動飛機場
.通用飛機場控制
.跑道照明控制
成員
到用于作為輸入和輸出向該類傳遞的數(shù)據(jù)的存儲器位置的指針的本地副本
活動飛機場(包)
通用飛機場建立
構誥器
保存輸入自變量:
至IJ輸入/輸出數(shù)據(jù)位置的指針。
析構器
當前沒有識別功能
方法
RunO:從cVisualSimComponent類調用該方法并且該方法提供用于cVisAirfield功能的頂層邏輯。該方法順序地調用包括該類的其他私有方法。
activeParcel O:該方法當被調用時確定活動可視化系統(tǒng)包。
genericAirfieldO:該方法基于由教練員選擇的特征,配置IG系統(tǒng)的通用飛機場參數(shù)??捎糜谶x擇的特征包括:地形、跑道標記、英國對美國跑道標記等等。
airfieldLightingO:該方法控制各種飛機場照明效果的選擇。可用的照明特征包括著陸輔助、跑道、計程車線路照明。
輸入
用于通用飛機場建立的教練員命令
用于飛機場照明的教練員命令
本機位置(用于加載定制模型/包)
輸也
準備就緒用于輸入到可視化數(shù)據(jù)格式器所處理的可視化飛機場和照明數(shù)據(jù)
類:cVisEnvironment
目的
cVisEnvironment類處理在教練員控制面板上選擇的環(huán)境條件的解釋,并且將輸入NuqCode 處理成IG數(shù)據(jù)格式化器所需要的格式。由該類創(chuàng)建的特征包括:
.可視性
云底/頂
.風暴控制
.日期時間
.季節(jié)/雪景選擇
火山灰
.跑道污染
風向袋
到用于作為輸入和輸出向該類傳遞的數(shù)據(jù)的存儲器位置的指針的本地副本
構誥器
保存輸入自變量的本地副本:
至IJ輸入/輸出數(shù)據(jù)位置的指針。
方法
RunO:從cVisualSimComponent類調用該方法,并且該方法提供用于cVisEnvironment功能的頂層邏輯。該方法順序地調用包括該類的其他私有方法。
visibilityO:該方法基于教練員選擇提供可視性的控制。這包括霧、基本RVR、總體可視性以及預先條件的可視性(CAT 1、I1、III和CAV0K)的單獨的選擇。
cloudControl O:該方法提供云層上下的控制。當前,預見到兩個云層。另外,該方法控制諸如消散云團的特征的選擇。云層包括增強的特征,包括上/下絨毛和過渡層。
StormO:該方法提供風暴(具體地天氣RADAR風暴)控制的解釋,來自該方法的輸出包括風暴云團模型和雨柱的定位的需求。為了確保僅當風暴云團和雨柱對于機組人員可見時請求風暴云團和雨柱,定義用于基于本機高度來控制每個模型的活動的規(guī)則。
timeOfDay O:該方法處理可視化系`統(tǒng)日期時間請求。這包括傳統(tǒng)日期時間選擇與自動過渡之間的切換。
weatherEffects O:該方法提供可用于教練員的季節(jié)性影響的選擇的控制。這包括雨、雪、揚沙、閃電和其他天氣條件的選擇。允許自動季節(jié)過渡選擇。
volcanicAshO:該方法控制火山灰故障引起的影響。稍后確定該控制的精確的影響。
runwayContamination():該方法允許參考跑道可用的各種跑道污染影響的選擇。這包括如覆蓋跑道的水或雪的污染。實際影響依賴于在IG上的模型可用性。
windsockControl O:該方法提取驅動風向標模型所需要的必要數(shù)據(jù)。期望需要的信息是風速和由教練員選擇的方向。
輸Λ
教練員選擇的天氣條件
滿足現(xiàn)有IOS和專用控制面板
本機高度
輸也
準備輸入到可視化數(shù)據(jù)格式器所處理的環(huán)境影響數(shù)據(jù)
類:cVi sMovingMode I s
目的
cVisMovingModels類處理從NuqCode 數(shù)據(jù)到IG數(shù)據(jù)格式化器所需要的格式的移動交通對象的映射。由在該類中創(chuàng)建的對象類型的示例包括:
.TCAS交通/空中交通
.飛機場交通(例如行李車)
.鳥群
.Marshaler (信號員)
.飛機推遲起飛拖拽控制
動畫控制(提供)
成顯
到用于作為輸入和輸出向該類傳遞的數(shù)據(jù)的存儲器位置的指針的本地副本。
構誥器
保存輸入自變量的本地副本:
指向輸入/輸出數(shù)據(jù)位置的指針。
方法
RunO:從cVisualSimComponent類調用該方法,并且該方法提供用于cVisMovingModels功能的頂層邏輯。該方法順序地調用包括該類的其他私有方法。
processAirTraffic O:該方法處理包括用于定義控制飛行器的位置、狀態(tài)和類型的數(shù)據(jù)的結構。這些結構包括不可用于可視化系統(tǒng)的數(shù)據(jù);該方法提取IG數(shù)據(jù)格式化器所需要的信息,并且將數(shù)據(jù)置入到合適的NuqCode中。
NuqCode 輸 入和輸出支持多個交通結構定義。
processAirfieldTraffic O:該方法基于飛機場的交通控制地面的移動。該方法路程交通。到該方法的輸入可能源自在IOS或專用控制面板處的教練員選擇。
marshalIerControl O:該方法控制Marshaller的活動和行為。輸入源自IOS和專用控制面板。該方法可選地調用標準Marshaller動畫序列或者NUQLEUS 指定和控制動畫序列(進一步的增強)
pushBackControl O:該方法控制飛機推遲起飛拖拽的激活需求。對該方法的輸入指定飛機推遲起飛拖拽是否是活動的。
animationControl O:該方法是用于利用目標IG的可用動畫功能的進一步的增強的占位符。慣用動畫的可用性可能是IG特有的。
MA
用于定義空中交通狀態(tài)和位置的結構數(shù)組
用于控制動畫順序、路程交通和飛機推遲起飛激活的教練員輸入
Miil
準備就緒用于輸入到可視化數(shù)據(jù)格式器所處理的移動模型數(shù)據(jù)。
類:cVisReturn
目的
cVisReturn類處理來自IG的任意返回數(shù)據(jù)在被傳遞回到主機之前的解釋。這包括:
.墜毀條件
.地形高度/地形之上的高度
本機之下的地形
.路程信息反饋
成員
指向作為輸入和輸出向該類傳遞的數(shù)據(jù)的存儲器位置的指針的本地副本
構誥器
保存輸入自變量的本地副本:
指向輸入/輸出數(shù)據(jù)位置的指針。
析構器
當前沒有識別功能
方法
Run O:從cVisualSimComponent類調用該方法,并且該方法提供用于cVisReturn功能的頂層邏輯。該方法順序地調用包括該類的其他私有方法。
crashDetect O:該方法處理墜毀檢測的IG輸出并且按照NuqCode所需要來對數(shù)據(jù)進行格式化。該方法應用任意必要的鎖存邏輯以確保主機軟件能夠發(fā)現(xiàn)瞬態(tài)沖突。
terrainHeightReturn ():該方法處理來IG的原地形高度反饋并且在輸出到主機之前應用任意附加處理邏輯(例如平滑)。在該方法中計算偏離跑道條件。
informationFeedback():提供該方法以用于從IG返回的附加數(shù)據(jù)如SMCGS和路程交通描述的處理
輸入
包括已解碼但未處理IG opcode數(shù)據(jù)的NuqCode 。
輸也
準備輸入到可視化數(shù)據(jù)格式器所處理的可視化系統(tǒng)反饋數(shù)據(jù)。
軟件流
初始化
圖12示出了在NUQLEUS 的仿真期間的典型的仿真組件:
圖12示出:
.用于主機以太網接口、數(shù)據(jù)格式器/操作器、應用、具有用于控制該系統(tǒng)的NUQLEUS 執(zhí)行程序的可視化以太網接口的仿真組件。
.在NUQLEUS 執(zhí)行程序建立時:
〇讀取它的初始化文件(NUQ.1ni)并且將該信息保持在存儲器內。
〇結果,其加載合適的仿真組件(動態(tài)對象)。
〇其對于每個仿真組件調用init(),將(如從NUQ.1ni讀取的)合適的初始化文件傳遞到每個。
.結果,每個仿真組件被完全初始化并且準備響應于來自NUQLEUS 執(zhí)行程序的命令來運行。
主機到可視化數(shù)據(jù)傳遞
圖13示出了用于從主機接收的并且被傳遞到外部接口(例如可視化系統(tǒng))上的數(shù)據(jù)的典型的數(shù)據(jù)路徑。
圖13示出:
.用于主機以太網接口、數(shù)據(jù)格式器/操作器、應用、具有用于控制該系統(tǒng)的NUQLEUS 執(zhí)行程序的可視化以太網接口的仿真組件。
經由以太網接口仿真組件獲取來自主機的數(shù)據(jù)。這將數(shù)據(jù)加載到緩沖器中,并且(經由回調)通知NUQLEUS 執(zhí)行程序該數(shù)據(jù)可用。
^nUQLEUStm執(zhí)行程序然后依次調用仿真組件中的每一個:數(shù)據(jù)格式器/操作器、應用、可視化以太網接口:
〇數(shù)據(jù)格式器/操作器取得主機緩沖器中的數(shù)據(jù),并且創(chuàng)建共享存儲器中的NUQLEUS 代碼結構
〇由該應用使用這些結構中的信息。當需要時,可以向(其他)NUQLEUS 代碼結構回寫數(shù)據(jù)
〇可視化以太網接口向可視化發(fā)出該數(shù)據(jù)。
可視化到主機數(shù)據(jù)傳遞
14示出了用于從外部接口(可視化)接收的并且被傳遞回主機的數(shù)據(jù)的典型的數(shù)據(jù)路徑。
圖14示出:
.用于主機以太網接口、數(shù)據(jù)格式器/操作器、應用、具有用于控制該系統(tǒng)的NUQLEUS 執(zhí)行程序的可視化以太網接口的仿真組件。
.經由以太網接口仿 真組件獲取來自可視化的數(shù)據(jù)。這將數(shù)據(jù)加載到緩沖器中并且(經由回調)通知NUQLEUS 執(zhí)行程序該數(shù)據(jù)可用。
.NUQLEUS 執(zhí)行程序然后依次調用仿真組件:應用、數(shù)據(jù)格式器/操作器、主機以太網接口中的每一個:
〇應用仿真組件按照需要將數(shù)據(jù)格式化為NUQLEUS 代碼結構
〇數(shù)據(jù)格式器/操作器取得該數(shù)據(jù)并且創(chuàng)將其封裝到緩沖器中以便向主機傳輸
〇主機以太網接口向主機發(fā)出該數(shù)據(jù)。
雖然已經參考新VIG系統(tǒng)204和用于飛行仿真器的現(xiàn)有計算架構的集成來描述了以上示例性實施方式,但是將要認識到,可以利用根據(jù)本發(fā)明的更新裝置206來集成任意新子系統(tǒng),例如新航空電子設備或聲音和聽覺提示子系統(tǒng)。
更新裝置206還可進行操作以將多個新子系統(tǒng)集成到現(xiàn)有計算架構中。例如可以利用該更新裝置來集成新VIG系統(tǒng)和新航空電子設備系統(tǒng)。在該實施方式中,更新裝置206的執(zhí)行程序組件310可以被配置為在執(zhí)行程序初始化文件400的控制之下,使得加載仿真組件的兩個不同的集合。因此,該執(zhí)行程序組件可以實現(xiàn):兩個不同的目標接口模塊,一個目標接口模塊用于一個新子系統(tǒng);兩個不同的主機接口系統(tǒng),每個用于接收與不同的新子系統(tǒng)相關的數(shù)據(jù);以及仿真組件的兩個不同的集合,每個用于在與不同的新子系統(tǒng)相關的數(shù)據(jù)上進行操作。執(zhí)行程序初始化文件400可以規(guī)定多個觸發(fā)器,每個觸發(fā)器關于經過更新裝置206的不同數(shù)據(jù)路徑中的每個路徑。用于集成兩個新子系統(tǒng)的更新裝置可以例如具有四個不同數(shù)據(jù)路徑(即去向和來自每個新子系統(tǒng)),并且因此執(zhí)行程序初始化文件400指定四個不同的觸發(fā)器。
將要理解,本發(fā)明還涉及其他類型的交通工具仿真器如坦克和卡車仿真器。此外本發(fā)明可用于將新子系統(tǒng)與多種類型的計算和硬件架構集成。本發(fā)明有利地用于更新包括軟件和具有相對長的壽命的昂貴硬件的任意系統(tǒng)。本發(fā)明例如可以由升級醫(yī)療成像系統(tǒng)如磁共振成像系統(tǒng)、計算機軸向體層攝影術系統(tǒng)以及腦電圖和腦磁圖系統(tǒng)。類似地,本發(fā)明可以用于升級其他類型的大小機器如工廠機器或娛樂公園或游樂場機器。
應該認識到,前述實施方式不應該解釋為限制。在閱讀申請之后,其他變形和修改將對于本領域的本領域技術人員顯而易見。此外,應該將本申請的公開理解為包括任意新穎特征或本文明確地或隱含地公開的特征的組合或者它們的任意概括,并且在本申請或者它的衍生案的申請期間,可以形成新的權利要求以覆蓋任意該特征和/或該特征的組合。
權利要求
1.一種用于將新子系統(tǒng)與現(xiàn)有計算架構進行集成的裝置,所述裝置包括: 第一物理接口,用于從所述現(xiàn)有計算裝置接收數(shù)據(jù); 第二物理接口,用于向所述新子系統(tǒng)輸出數(shù)據(jù); 處理裝置;以及 存儲器,具有存儲在其上的第一軟件模塊、多個其他軟件模塊和第一存儲配置, 其中,當被所述處理裝 置執(zhí)行時,所述第一軟件模塊被配置為讀取所述第一存儲配置,并且使得所述處理裝置加載所述多個其他軟件模塊中的其他軟件模塊的組合,所述多個其他軟件模塊中的其他軟件模塊的所述組合與所述多個其他軟件模塊中的其他軟件模塊的所述組合的第一子集是由所述第一存儲配置定義的;當被所述處理裝置執(zhí)行時,所述組合的所述第一子集可進行操作以將在所述第一物理接口處接收的數(shù)據(jù)變換成與所述新子系統(tǒng)兼容的形式,并且經由所述第二物理接口向所述新子系統(tǒng)提供經變換的數(shù)據(jù)。
2.如權利要求1所述的裝置,其中,所述裝置被配置為使得所述第一軟件模塊讀取所述第一存儲配置,并且使得所述處理裝置在所述裝置的啟動時加載所述多個其他軟件模塊中的其他軟件模塊的組合。
3.如權利要求1或2所述的裝置,其中,所述新子系統(tǒng)的集成向現(xiàn)有計算架構提供附加特征。
4.如前述權利要求中任一項所述的裝置,其中,當被所述處理裝置執(zhí)行時,其他軟件模塊的所述組合的所述第一子集中的第一其他軟件模塊被配置為響應于在所述第一物理接口處的數(shù)據(jù)的到達,向所述第一軟件模塊發(fā)送用于指示在所述第一物理接口處的所述數(shù)據(jù)的所述到達的信號, 其中,所述第一軟件模塊響應于所述用于指示在所述第一物理接口處的所述數(shù)據(jù)的所述到達的信號的接收,相繼地向其他軟件模塊的所述組合的所述第一子集中的每個其他的其他軟件模塊發(fā)送第一命令信號, 其中,其他軟件模塊的所述組合的所述第一子集中的每個其他的其他軟件模塊響應于所述命令信號的接收,在從其他軟件模塊的所述組合的所述第一子集中的先前的其他軟件模塊傳遞的數(shù)據(jù)上進行操作。
5.如前述權利要求中的任一項所述的裝置,其中,所述第二物理接口被配置為從所述新子系統(tǒng)接收數(shù)據(jù),其中,當被所述處理裝置執(zhí)行時,所述第一軟件模塊可進行操作以使得所述處理裝置執(zhí)行所述多個其他軟件模塊中的其他軟件模塊的所述組合的第二子集,所述多個其他軟件模塊中的其他軟件模塊的所述組合的所述第二子集被所述第一存儲配置定義,并且當被所述處理裝置執(zhí)行時可進行操作以將在所述第二物理接口處接收的數(shù)據(jù)變換成與所述現(xiàn)有計算裝置兼容的形式,并且經由所述第一物理接口向所述現(xiàn)有計算裝置提供經變換的數(shù)據(jù)。
6.如權利要求5所述的裝置,其中,當被所述處理裝置執(zhí)行時,其他軟件模塊的所述組合的所述第二子集中的第一其他軟件模塊被配置為響應于在所述第二物理接口處的數(shù)據(jù)的到達,向所述第一軟件模塊發(fā)送用于指示在所述第二物理接口處的所述數(shù)據(jù)的所述到達的信號, 其中,所述第一軟件模塊響應于所述用于指示在所述第二物理接口處的所述數(shù)據(jù)的所述到達的信號的接收,相繼地向其他軟件模塊的所述組合的所述第二子集中的每個其他的其他軟件模塊發(fā)送第二命令信號, 其中,其他軟件模塊的所述組合的所述第二子集中的每個其他的其他軟件模塊響應于所述命令信號的接收,在從其他軟件模塊的所述組合的所述第二子集中的先前的其他軟件模塊輸出的數(shù)據(jù)上進行操作。
7.如前述權利要求中的任一項所述的裝置,其中,其他軟件模塊被配置為以多個預定義數(shù)據(jù)結構中的一個預定義數(shù)據(jù)結構輸出數(shù)據(jù)。
8.如權利要求7所述的裝置,其中,所述預定義數(shù)據(jù)結構被存儲在共享存儲器中。
9.如權利要求1_4、6、7或8中的任一項所述的裝置,其中,所述第一存儲配置定義所述其他軟件模塊中的哪些其他軟件模塊被配置為響應于在所述第一物理接口處的數(shù)據(jù)的到達,向所述第一軟件模塊發(fā)送用于指示在所述第一物理接口處的所述數(shù)據(jù)的所述到達的信號。
10.如前述權利要求中的任一項所述的裝置,其中,所述第一軟件模塊被配置為使得已加載的其他軟件模塊中的一個或多個讀取相應的其他存儲配置,所述相應的其他存儲配置的身份是由所述第一存儲配置定義的。
11.如前述權利要求中的任一項所述的裝置,其中,所述第一軟件模塊被配置為使得所述已加載的其他軟件模塊中的每一個讀取相應的其他存儲配置,所述相應的其他存儲配置的身份是由所述第一存儲配置定義的。
12.如權利要求10或11所述的裝置,其中,所述其他存儲配置中的每一個定義針對所述已加載的其他軟 件模塊中的相應已加載其他軟件模塊的設置。
13.如權利要求10到12中的任一項所述的裝置,其中,每個所述其他存儲配置包括初始化文件。
14.如前述權利要求中的任一項所述的裝置,其中,所述第一存儲配置包括初始化文件。
15.一種用于將新子系統(tǒng)與現(xiàn)有計算架構進行集成的方法,所述方法包括: 讀取第一存儲配置; 加載所述多個軟件模塊中的軟件模塊的組合,所述多個軟件模塊中的軟件模塊的所述組合與所述多個軟件模塊中的軟件模塊的所述組合的第一子集是由所述第一存儲配置定義的;以及 在第一物理接口處從所述現(xiàn)有計算機架構接收數(shù)據(jù); 所述多個軟件模塊中的軟件模塊的所述組合的所述第一子集將在所述第一物理接口處接收的所述數(shù)據(jù)變換成與所述新子系統(tǒng)兼容的形式,并且經由所述裝置的第二物理接口向所述新子系統(tǒng)提供經變 換的數(shù)據(jù)。
16.如權利要求15所述的方法,包括:使得所述第一軟件模塊讀取所述第一存儲配置,并且使得所述處理裝置在所述裝置的啟動時加載所述多個其他軟件模塊中的其他軟件模塊的組合。
17.如權利要求15或16所述的方法,其中,所述新子系統(tǒng)的集成向現(xiàn)有計算架構提供附加特征。
18.如權利要求15到17中的任一項所述的方法,包括: 其他軟件模塊的所述組合的所述第一子集中的第一其他軟件模塊響應于在所述第一物理接口處的數(shù)據(jù)的到達,向所述第一軟件模塊發(fā)送用于指示在所述第一物理接口處的所述數(shù)據(jù)的所述到達的信號, 所述第一軟件模塊響應于所述用于指示在所述第一物理接口處的所述數(shù)據(jù)的所述到達的信號的接收,相繼地向其他軟件模塊的所述組合的所述第一子集中的每個其他的其他軟件模塊發(fā)送第一命令信號, 其他軟件模塊的所述組合的所述第一子集中的每個其他的其他軟件模塊響應于所述命令信號的接收,在從其他軟件模塊的所述組合的所述第一子集中的先前的其他軟件模塊傳遞的數(shù)據(jù)上進行操作。
19.如權利要求15到18中的任一項所述的方法,包括: 在第二物理接口從所述新子系統(tǒng)接收數(shù)據(jù); 所述多個其他軟件模塊中的其他軟件模塊的所述組合的第二子集將在所述第二物理接口處接收的數(shù)據(jù)變換成與所述現(xiàn)有計算裝置兼容的形式;以及 經由所述第一物理接口向所述現(xiàn)有計算裝置提供經變換的數(shù)據(jù), 其中,所述多個其他軟件模塊中的其他軟件模塊的所述組合的所述第二子集是由所述第一存儲配置定義的。
20.如權利要求15到19中的任一項所述的方法,包括: 所述第一軟件模塊使得已加載的其他軟件模塊中的一個或多個讀取相應的其他存儲配置,所述相應其他存儲配置的身份是由所述第一存儲配置定義的。
21.一種當被計算裝置執(zhí)行時使得該`裝置執(zhí)行如權利要求15到20中的任一項所述的方法的機器可讀指令。
22.—種可選地存儲在非瞬態(tài)計算機介質上的、用于將新子系統(tǒng)與現(xiàn)有計算架構進行集成的、用于計算裝置的計算機可讀指令,所述計算機可讀指令包括第一軟件模塊和多個其他軟件模塊,當被所述計算裝置執(zhí)行時所述第一軟件模塊使得所述計算裝置: 讀取第一存儲配置;以及 加載所述多個軟件模塊中的軟件模塊的組合,所述多個軟件模塊中的軟件模塊的所述組合與所述多個軟件模塊中的軟件模塊的所述組合的第一子集是由所述第一存儲配置定義的, 當被所述計算裝置執(zhí)行時,所述多個軟件模塊中的軟件模塊的所述組合的所述第一子集使得所述計算裝置: 將在第一物理接口處從所述現(xiàn)有計算架構接收的數(shù)據(jù)變換成與所述新子系統(tǒng)兼容的形式,以及 經由第二物理接口向所述新子系統(tǒng)提供經變換的數(shù)據(jù)。
23.如權利要求22所述的計算機可讀指令,被配置為使得所述第一軟件模塊讀取所述第一存儲配置,并且使得所述處理裝置在所述裝置的啟動時加載所述多個其他軟件模塊中的其他軟件模塊的組合。
24.如權利要求22或23所述的計算機可讀指令,其中,所述新子系統(tǒng)的集成向現(xiàn)有計算架構提供附加特征。
25.如權利要求22到24中的任一項所述的計算機可讀指令,其中: 當被所述計算裝置執(zhí)行時,其他軟件模塊的所述組合的所述第一子集中的第一其他軟件模塊使得所述計算裝置響應于在所述第一物理接口處的數(shù)據(jù)的到達,向所述第一軟件模塊發(fā)送用于指示所述第一物理接口處的所述數(shù)據(jù)的所述到達的信號, 當被所述計算裝置執(zhí)行時,所述第一軟件模塊使得所述計算裝置響應于在所述第一物理接口處的所述數(shù)據(jù)的所述到達的信號的所述接收,相繼地向其他軟件模塊的所述組合的所述第一子集中的每個其他的其他軟件模塊發(fā)送第一命令信號, 當被所述計算裝置執(zhí)行時,其他軟件模塊的所述組合的所述第一子集中的每個其他的其他軟件模塊使得所述計算裝置于響應所述命令信號的接收,在從其他軟件模塊的所述組合的所述第一子集中的先前的其他軟件模塊傳遞的數(shù)據(jù)上進行操作。
26.如權利要求22到25中的任一項所述的計算機可讀指令,其中: 當被所述計算裝置執(zhí)行時,所述多個其他軟件模塊中的其他軟件模塊的所述組合的第二子集使得所述計算裝置將在所述第二物理接口處接收的數(shù)據(jù)變換成與所述現(xiàn)有計算裝置兼容的形式,并且經由所述第一物理接口向所述現(xiàn)有計算裝置提供經變換的數(shù)據(jù), 其中,所述多個其他軟件模塊中的其他軟件模塊的所述組合的所述第二子集是由所述第一存儲配置定義的。
27.如權利要求22到26中的任一項所述的計算機可讀指令,其中,當被所述計算裝置執(zhí)行時,所述第一軟件模塊使得所述計算裝置使得已加載的其他軟件模塊中的一個或多個讀取相應的其他存儲配置,所述相應的其他存儲配置的身份是由所述第一存儲配置定義的。
28.一種裝置,該裝置具 有至少一個處理器和至少一個存儲器,該至少一個存儲器具有存儲在其上的計算機可讀代碼,當該計算機可讀代碼被執(zhí)行時控制該至少一個處理器執(zhí)行一種方法,該方法包括: 讀取第一存儲配置; 加載所述多個軟件模塊中的軟件模塊的組合,所述多個軟件模塊中的軟件模塊的所述組合與所述多個軟件模塊中的軟件模塊的所述組合的第一子集是由所述第一存儲配置定義的;以及 在第一物理接口處從所述現(xiàn)有計算機架構接收數(shù)據(jù); 所述多個軟件模塊中的軟件模塊的所述組合的所述第一子集將在所述第一物理接口處接收的所述數(shù)據(jù)變換成與所述新子系統(tǒng)兼容的形式,并且經由所述裝置的第二物理接口向所述新子系統(tǒng)提供經變換的數(shù)據(jù)。
全文摘要
一種用于將新子系統(tǒng)與現(xiàn)有計算架構進行集成的裝置,該裝置包括第一物理接口,用于從該現(xiàn)有計算架構接收數(shù)據(jù);第二物理接口,用于向該新子系統(tǒng)輸出數(shù)據(jù);處理裝置以及存儲器,該存儲器具有存儲在其上的第一軟件模塊、多個其他軟件模塊和第一存儲配置,其中,當被該處理裝置執(zhí)行時,該第一軟件模塊被配置為讀取該第一存儲配置,并且使得該處理裝置加載該多個其他軟件模塊中的其他軟件模塊的組合,該多個其他軟件模塊中的其他軟件模塊的該組合與該多個其他軟件模塊中的其他軟件模塊的該組合的第一子集是由該第一存儲配置定義的,當被該處理裝置執(zhí)行時,該組合的該第一子集可進行操作以將在該第一物理接口處接收的數(shù)據(jù)變換成與該新子系統(tǒng)兼容的形式,并且經由該第二物理接口向該新子系統(tǒng)輸出變換數(shù)據(jù)。
文檔編號G09B9/02GK103155016SQ201180048831
公開日2013年6月12日 申請日期2011年8月9日 優(yōu)先權日2010年8月9日
發(fā)明者A·J·里維斯 申請人:象限系統(tǒng)有限公司