本發(fā)明涉及安全關(guān)鍵軟件開發(fā)技術(shù),尤其涉及一種基于arinc653操作系統(tǒng)生成代碼的方法與裝置。
背景技術(shù):
安全關(guān)鍵系統(tǒng)是指系統(tǒng)功能的失效或誤動作將會導(dǎo)致生命財產(chǎn)的重大損失以及對周圍環(huán)境造成嚴重破壞的系統(tǒng),這類系統(tǒng)廣泛應(yīng)用于航空航天、國防軍事、核電能源、交通運輸和醫(yī)療衛(wèi)生等安全關(guān)鍵領(lǐng)域。安全關(guān)鍵系統(tǒng)中用于安全關(guān)鍵控制的軟件稱為安全關(guān)鍵軟件。
機載應(yīng)用軟件屬于安全關(guān)鍵軟件,它是飛機上各類機載系統(tǒng)和設(shè)備中所含的計算機程序和數(shù)據(jù),在現(xiàn)代航空器中,機載應(yīng)用軟件承擔了越來越多的功能,隨著機載應(yīng)用軟件規(guī)模的大幅增長,有效提高開發(fā)效率成為亟需解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種基于arinc653操作系統(tǒng)生成代碼的方法與裝置,以解決現(xiàn)有技術(shù)中機載應(yīng)用軟件的開發(fā)效率低的缺陷。
本發(fā)明第一個方面提供一種基于arinc653操作系統(tǒng)生成代碼的方法,包括:
獲取知識圖文件,所述知識圖文件包括至少一條知識路徑,每條知識路徑均包括至少兩個知識概念,每個知識概念均通過同一路徑中的上一知識概念和對應(yīng)的關(guān)系公式得到,各所述關(guān)系公式至少屬于兩個不同的知識領(lǐng)域,一個知識領(lǐng)域?qū)?yīng)所述arinc653操作系統(tǒng)的一個分區(qū);
根據(jù)所述知識圖文件生成多個任務(wù),并建立各所述任務(wù)之間的連接關(guān)系,每個所述任務(wù)至少包括一個目標關(guān)系公式以及所述目標關(guān)系公式對應(yīng)的目標知識概念,屬于同一任務(wù)的目標關(guān)系公式的知識領(lǐng)域相同;
根據(jù)各所述任務(wù)所包括的所述目標關(guān)系公式和所述目標知識概念,在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取目標代碼;
根據(jù)所述連接關(guān)系對所述目標代碼排序,生成完整代碼。
根據(jù)如上所述的方法,可選地,所述獲取知識圖文件包括:
獲取各知識概念;
根據(jù)各知識概念的因果關(guān)系構(gòu)建所述知識圖文件。
根據(jù)如上所述的方法,可選地,所述根據(jù)各所述任務(wù)所包括的所述目標關(guān)系公式和所述目標知識概念,在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取目標代碼包括:
根據(jù)目標關(guān)系公式在所屬知識領(lǐng)域?qū)?yīng)的所述代碼庫中獲取待補充代碼;
根據(jù)所述目標知識概念和所述待補充代碼生成所述目標代碼。
根據(jù)如上所述的方法,可選地,所述知識領(lǐng)域至少包括以下的兩種領(lǐng)域:大氣計算領(lǐng)域、導(dǎo)航領(lǐng)域、飛行管理領(lǐng)域、飛行控制領(lǐng)域。
根據(jù)如上所述的方法,可選地,在所述生成完整代碼之后,還包括:
根據(jù)所述完整代碼生成控制指令;
向伺服控制器發(fā)送控制指令,以使所述伺服控制器根據(jù)所述控制指令發(fā)送動作信號控制飛行器的飛行。
本發(fā)明另一個方面提供一種基于arinc653操作系統(tǒng)生成代碼的裝置,包括:
第一獲取模塊,用于獲取知識圖文件,所述知識圖文件包括至少一條知識路徑,每條知識路徑均包括至少兩個知識概念,每個知識概念均通過同一路徑中的上一知識概念和對應(yīng)的關(guān)系公式得到,各所述關(guān)系公式至少屬于兩個不同的知識領(lǐng)域,一個知識領(lǐng)域?qū)?yīng)所述arinc653操作系統(tǒng)的一個分區(qū);
第一生成模塊,用于根據(jù)所述知識圖文件生成多個任務(wù),并建立各所述任務(wù)之間的連接關(guān)系,每個所述任務(wù)至少包括一個目標關(guān)系公式以及所述目標關(guān)系公式對應(yīng)的目標知識概念,屬于同一任務(wù)的目標關(guān)系公式的知識領(lǐng)域相同;
第二獲取模塊,用于根據(jù)各所述任務(wù)所包括的所述目標關(guān)系公式和所述目標知識概念,在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取目標代碼;
第二生成模塊,用于根據(jù)所述連接關(guān)系對所述目標代碼排序,生成完整代碼。
根據(jù)如上所述的裝置,可選地,所述第一獲取模塊具體用于,
獲取各知識概念;
根據(jù)各知識概念的因果關(guān)系構(gòu)建所述知識圖文件。
根據(jù)如上所述的裝置,可選地,所述第二獲取模塊具體用于,
根據(jù)目標關(guān)系公式在所屬知識領(lǐng)域?qū)?yīng)的所述代碼庫中獲取待補充代碼;
根據(jù)所述目標知識概念和所述待補充代碼生成所述目標代碼。
根據(jù)如上所述的裝置,可選地,所述知識領(lǐng)域至少包括以下的兩種領(lǐng)域:大氣計算領(lǐng)域、導(dǎo)航領(lǐng)域、飛行管理領(lǐng)域、飛行控制領(lǐng)域。
根據(jù)如上所述的裝置,可選地,還包括:
控制模塊,用于根據(jù)所述完整代碼生成控制指令;
發(fā)送模塊,用于向伺服控制器發(fā)送控制指令,以使所述伺服控制器根據(jù)所述控制指令發(fā)送動作信號控制飛行器的飛行。
根據(jù)本發(fā)明的基于arinc653操作系統(tǒng)生成代碼的方法與裝置,通過獲取知識圖文件,根據(jù)知識圖文件生成多個任務(wù),并建立各任務(wù)之間的連接關(guān)系,再根據(jù)任務(wù)所包括的目標關(guān)系公式和目標知識概念,在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取目標代碼,并根據(jù)各任務(wù)的連接關(guān)系對目標代碼排序生成完整代碼,實現(xiàn)了自動生成代碼,提高了代碼的生成效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一實施例提供的基于arinc653操作系統(tǒng)生成代碼的方法的流程示意圖;
圖2為本發(fā)明一實施例提供的知識圖文件示意圖;
圖3為本發(fā)明一實施例提供的任務(wù)之間的連接關(guān)系示意圖;
圖4為本發(fā)明另一實施例提供的基于arinc653操作系統(tǒng)生成代碼的裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明再一實施例提供的基于arinc653操作系統(tǒng)生成代碼的裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
首先,介紹一下arinc(航空電子應(yīng)用軟件標準接口)系統(tǒng),具體以arinc653操作系統(tǒng)為例進行說明。
arinc653操作系統(tǒng)是采用arinc653設(shè)計原理的操作系統(tǒng),是為了滿足航空電子對高可靠性、高可用性以及高服務(wù)性的要求而生,對區(qū)間管理、區(qū)間通信及健康監(jiān)測部分進行了補充說明,用以規(guī)范航空電子設(shè)備和系統(tǒng)的開發(fā)。
一個能運行arinc653操作系統(tǒng)的計算機系統(tǒng)包括硬件、arinc653操作系統(tǒng)和應(yīng)用軟件,在arinc653操作系統(tǒng)中會包括多個分區(qū)(partitioning),分區(qū)是arinc653操作系統(tǒng)中一個核心概念。每個分區(qū)中運行一個應(yīng)用子系統(tǒng),每個應(yīng)用子系統(tǒng)可以運行一個或多個任務(wù),不同分區(qū)的應(yīng)用子系統(tǒng)會進行通信。
針對arinc653操作系統(tǒng)分區(qū)結(jié)構(gòu)的特點,可以設(shè)計相應(yīng)的軟件架構(gòu)模型來自動生成代碼。下面通過各個實施例描述如何自動生成代碼。
實施例一
本實施例提供一種基于arinc653操作系統(tǒng)生成代碼的方法,例如arinc653操作系統(tǒng)。本實施例的執(zhí)行主體為基于arinc653操作系統(tǒng)生成代碼的裝置。
如圖1所示,為本實施例的基于arinc653操作系統(tǒng)生成代碼的方法的流程示意圖,該方法包括:
步驟101,獲取知識圖文件,知識圖文件包括至少一條知識路徑,每條知識路徑均包括至少兩個知識概念,每個知識概念均通過同一路徑中的上一知識概念和對應(yīng)的關(guān)系公式得到,各關(guān)系公式至少屬于兩個不同的知識領(lǐng)域,一個知識領(lǐng)域?qū)?yīng)arinc653操作系統(tǒng)的一個分區(qū)。
知識圖表示一個概念體系,概念用結(jié)點表示,概念之間的關(guān)聯(lián)用箭頭表示;箭頭有四種:無向、單向、雙向、分叉;結(jié)點的內(nèi)容可以是文字、圖形、嵌套的知識圖及其組合,箭頭上面也可以用文字或圖形標志關(guān)聯(lián)的名稱或內(nèi)容。知識圖不限定圖的結(jié)構(gòu),可以為樹型結(jié)構(gòu),也可以是網(wǎng)狀結(jié)構(gòu),其能夠表達思維導(dǎo)圖、組織結(jié)構(gòu)圖、流程圖、示意圖等已經(jīng)常用的一些圖型。
本實施例中,知識圖文件即包括知識圖的文件,該文件可以是任何文檔形式,例如xml文檔、word文檔、txt文檔或者pdf文檔。每個知識圖文件包括多條知識路徑,一條知識路徑指的是從源知識概念到目的知識概念的路徑,源知識概念指的是該條知識路徑上的起始知識概念,目的知識概念指的是該條知識路徑上的最終知識概念,源知識概念和目的知識概念之間可以包括多個中間知識概念。例如,如圖2所示的知識圖文件,c110->f110->c111->f113->c114為一條知識路徑,c110為源知識概念,c114為目的知識概念,c111為中間知識概念,f110和f113為關(guān)系公式。每個目的知識概念至少對應(yīng)一條知識路徑。
如何構(gòu)建知識圖文件,可以采用多種現(xiàn)有技術(shù),在此不再贅述。
可選地,本實施例的知識領(lǐng)域至少包括以下的兩種領(lǐng)域:大氣計算領(lǐng)域、導(dǎo)航領(lǐng)域、飛行管理領(lǐng)域、飛行控制領(lǐng)域。
本實施例的一個知識領(lǐng)域?qū)?yīng)所述arinc653操作系統(tǒng)的一個分區(qū),即一個分區(qū)用于處理屬于一個知識領(lǐng)域的關(guān)系公式和/或知識概念。
步驟102,根據(jù)知識圖文件生成多個任務(wù),并建立各任務(wù)之間的連接關(guān)系,每個任務(wù)至少包括一個目標關(guān)系公式以及目標關(guān)系公式對應(yīng)的目標知識概念,屬于同一任務(wù)的目標關(guān)系公式的知識領(lǐng)域相同。
各任務(wù)之間的連接關(guān)系表明各個任務(wù)之間的因果關(guān)系,如圖3所示,表示任務(wù)1輸出的知識概念為任務(wù)3的輸入的知識概念,每個任務(wù)的任務(wù)輸入概念和任務(wù)輸出概念是根據(jù)該任務(wù)所包括的目標關(guān)系公式以及該目標關(guān)系公式對應(yīng)的目標知識概念確定的。
獲取到的知識圖文件即表示了高層需求,假設(shè)已知的源知識概念有7個,目的知識概念有2個,中間知識概念有18個,關(guān)系公式有20個。根據(jù)預(yù)設(shè)的關(guān)系對照表和知識圖文件中的關(guān)系公式生成任務(wù),其中,關(guān)系對照表表示的是各任務(wù)和關(guān)系公式之間的規(guī)定關(guān)系,裝置可以根據(jù)與關(guān)系公式相關(guān)的輸入的知識概念和輸出的知識概念生成任務(wù)。為了更明確的區(qū)分,將用于生成任務(wù)的關(guān)系公式稱為目標關(guān)系公式,將與生成任務(wù)的關(guān)系公式相關(guān)的輸入的知識概念和輸出的知識概念統(tǒng)稱為目標知識概念,也可以將與生成任務(wù)的關(guān)系公式相關(guān)的輸入的知識概念稱為任務(wù)輸入概念,將與生成任務(wù)的關(guān)系公式相關(guān)的輸出的知識概念稱為任務(wù)輸出概念。
舉例來說,若任務(wù)1的對應(yīng)的目標關(guān)系公式為公式18,從知識圖文件中可以得知公式18的輸入的知識概念為c24,輸出的知識概念為c25,則該任務(wù)1的任務(wù)輸入概念即為c24,任務(wù)輸出概念即為c25。
需要說明的是,根據(jù)任務(wù)實際要完成的功能,一個任務(wù)中可以包括多個目標關(guān)系公式,該多個目標關(guān)系公式對應(yīng)的多個中間知識概念中的每個中間知識概念,可以既作為一個關(guān)系公式的輸出的知識概念,又作為另一個關(guān)系公式的輸入的知識概念。比如,任務(wù)5的關(guān)系公式有兩個如公式12和公式11,公式12的輸入為c60,輸出為c61,公式11的輸入為c63、c69、c61和c70,輸出為c71,可知,其中公式11的輸入c61為公式12的輸出,則確定該任務(wù)5的任務(wù)輸入概念為c60、c63、c69和c70,任務(wù)輸出概念為c71。
任務(wù)生成之后,根據(jù)目標關(guān)系公式的輸入的知識概念和輸出的知識概念可以確定各任務(wù)之間的連接關(guān)系,還可以設(shè)置任務(wù)的基本屬性,該基本屬性包括任務(wù)的運行棧大小、優(yōu)先級、運行周期、運行時間、截止時間類型屬性等。
步驟103,根據(jù)各任務(wù)所包括的目標關(guān)系公式和目標知識概念,在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取目標代碼。
本實施例中,每個關(guān)系公式均對應(yīng)一個知識領(lǐng)域,在確定出任務(wù)對應(yīng)的目標關(guān)系公式之后,就可以根據(jù)關(guān)系公式獲取對應(yīng)的目標代碼,即,一個目標關(guān)系公式可以對應(yīng)一個或多個目標代碼,當一個目標關(guān)系公式對應(yīng)一個目標代碼時,可以根據(jù)目標關(guān)系公式確定目標代碼,當一個目標關(guān)系公式對應(yīng)多個目標代碼時,就可以根據(jù)目標關(guān)系公式和目標知識概念確定目標代碼。
具體地,每個關(guān)系公式與目標代碼的對應(yīng)關(guān)系可以根據(jù)預(yù)設(shè)的對應(yīng)關(guān)系表獲取,在此不再贅述。
可選地,本實施例的步驟103具體可以包括:
根據(jù)目標關(guān)系公式在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取待補充代碼;
根據(jù)目標知識概念和待補充代碼生成目標代碼。
該待補充代碼可以是預(yù)設(shè)的一段代碼,該預(yù)設(shè)的代碼之中包括一些待賦值的變量,裝置可以根據(jù)目標知識概念獲取該待賦值的變量,進而生成完整代碼。
步驟104,根據(jù)連接關(guān)系對目標代碼排序,生成完整代碼。
根據(jù)軟件架構(gòu)模型中設(shè)置的各構(gòu)件的屬性及各任務(wù)(即進程)之間的通信方式等,將獲取的目標代碼按相應(yīng)的方式排序,生成最終的軟件架構(gòu)代碼。
可選地,在步驟104之后,還包括:
根據(jù)完整代碼生成控制指令;
向伺服控制器發(fā)送控制指令,以使伺服控制器根據(jù)控制指令發(fā)送動作信號控制飛行器的飛行。
這樣,就相當于根據(jù)高層需求自動生成控制指令,進而控制飛行器的飛行,實現(xiàn)了飛行器的自動駕駛。
本實施例提供的基于arinc653操作系統(tǒng)生成代碼的方法,通過獲取知識圖文件,根據(jù)知識圖文件生成多個任務(wù),并建立各任務(wù)之間的連接關(guān)系,再根據(jù)任務(wù)所包括的目標關(guān)系公式和目標知識概念,在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取目標代碼,并根據(jù)各任務(wù)的連接關(guān)系對目標代碼排序生成完整代碼,實現(xiàn)了自動生成代碼,提高了代碼的生成效率。
實施例二
本實施例對實施例一的基于arinc653操作系統(tǒng)生成代碼的方法做補充說明,具體說明如何實現(xiàn)用于自動生成代碼的軟件架構(gòu),該代碼可以為c代碼或者其它任何形式的代碼。
以arinc653操作系統(tǒng)為例,arinc653操作系統(tǒng)具有分區(qū)結(jié)構(gòu),可以實現(xiàn)同時運行多個進程(即每個分區(qū)運行一個進程),進而能夠更快地實現(xiàn)代碼的生成。具體地,可以將軟件架構(gòu)模型為三層結(jié)構(gòu),包括軟件系統(tǒng)模型、分區(qū)系統(tǒng)模型和任務(wù)系統(tǒng)模型,最終根據(jù)軟件架構(gòu)模型生成的軟件架構(gòu)至少包括以下內(nèi)容:分區(qū)、任務(wù)、分區(qū)內(nèi)通信、分區(qū)間通信。
arinc653規(guī)范定義了操作系統(tǒng)與應(yīng)用軟件之間的應(yīng)用執(zhí)行接口apex(applicationexecutive,應(yīng)用執(zhí)行接口)。符合arinc653規(guī)范的操作系統(tǒng)都實現(xiàn)了apex。操作系統(tǒng)中的應(yīng)用程序通過apex調(diào)用操作系統(tǒng)提供的分區(qū)管理、進程管理、分區(qū)間通信、分區(qū)內(nèi)通信、健康監(jiān)控服務(wù)等。這些服務(wù)是分區(qū)實現(xiàn)的基礎(chǔ),這些服務(wù)對象是軟件架構(gòu)的構(gòu)件。以arinc653操作系統(tǒng)運行時元素為基礎(chǔ)定義軟件架構(gòu)模型的模型元素。構(gòu)件模型元素包括軟件系統(tǒng)、分區(qū)、任務(wù)、采樣端口、黑板、緩沖區(qū)、信號量、事件和健康監(jiān)控。系統(tǒng)模型中描述了分區(qū)間通信,分區(qū)模型描述了分區(qū)內(nèi)通信,其中,分區(qū)間通信用來說明分區(qū)之間的通信關(guān)系,分區(qū)內(nèi)通信用來說明分區(qū)中的應(yīng)用子系統(tǒng)中不同任務(wù)之間的通信。更為具體地,分區(qū)模型描述了它包含的任務(wù)模型、分區(qū)內(nèi)通信、采用的分區(qū)內(nèi)通信機制和分區(qū)端口。其中,任務(wù)模型是進程的抽象。
其中,軟件系統(tǒng)是由多個分區(qū)應(yīng)用程序組成的機載應(yīng)用軟件系統(tǒng),運行在arinc653操作系統(tǒng)環(huán)境中。
分區(qū)能夠由arinc653操作系統(tǒng)通過時間分區(qū)和空間分區(qū)的方式實現(xiàn)的相對獨立的軟件運行環(huán)境,為機載應(yīng)用程序提供安全隔離,分區(qū)包括的子元素有任務(wù)、分區(qū)內(nèi)通信、采樣端口、隊列端口、緩沖區(qū)、黑板、信號量和事件;分區(qū)模型通過任務(wù)這一子元素描述駐留在分區(qū)中的應(yīng)用程序,任務(wù)之間的通信使用分區(qū)內(nèi)通信元素描述,任務(wù)進行分區(qū)內(nèi)通信可以使用緩沖區(qū)、黑板、信號量和事件四種方式。通過采樣端口和隊列端口描述分區(qū)中的端口。分區(qū)的屬性包括分區(qū)名稱、內(nèi)存需求、分區(qū)運行周期、分區(qū)持續(xù)時間等等,其中,內(nèi)存需求指明分區(qū)內(nèi)存范圍;分區(qū)運行周期指明分區(qū)為了滿足操作需求必須被激活的時間間隔;分區(qū)持續(xù)時間指明分區(qū)在一個分區(qū)運行周期中要求的執(zhí)行時間。
任務(wù)指組成機載應(yīng)用軟件系統(tǒng)的工作單元,對應(yīng)分區(qū)操作系統(tǒng)中的一個進程。在任務(wù)模型中,通過輸入子元素描述任務(wù)的任務(wù)輸入概念,輸出子元素描述任務(wù)的任務(wù)輸出概念。程序子元素描述任務(wù)執(zhí)行的程序。健康監(jiān)控子元素描述對任務(wù)的健康監(jiān)控設(shè)置。任務(wù)的屬性包括任務(wù)的名稱、任務(wù)的輸入的知識概念、輸出的知識概念、運行棧、基礎(chǔ)優(yōu)先級、周期、時間容量、截止類型等,其中,運行棧指明任務(wù)運行時需要的堆棧空間大??;基礎(chǔ)優(yōu)先級指明任務(wù)啟動時的優(yōu)先級大小;周期定義周期性任務(wù)激活的周期;時間容量定義任務(wù)完成所用的時間;截止類型指定任務(wù)的截止類型是hard還是soft。
采樣端口是一個通信對象,分區(qū)通過它訪問配置在采樣模式下的通信通道。采樣模式下的分區(qū)間通信,需要通過采樣端口來發(fā)送或接收分區(qū)間通道內(nèi)傳遞的消息。在采樣模式下,新到達的消息會覆蓋之前的消息。因此采樣端口只保留最新的消息。在采樣模型中,通過方向?qū)傩哉f明端口是源端口還是目的端口。分區(qū)中進程向源端口發(fā)送消息,從目的端口接受消息。通過消息大小屬性定義端口消息的最大字節(jié)數(shù)。端口刷新周期屬性指明有效消息從到達端口開始,可以被接收的最長時間。
隊列端口是一個通信對象,分區(qū)通過它訪問配置在隊列模式下的通信通道。隊列模式下的分區(qū)間通信,需要通過隊列端口來發(fā)送或接收分區(qū)間通道內(nèi)傳遞的消息。在隊列模式下,消息以先進先出的順序存儲在端口。不同于采樣模式的是,每個新到達的消息不會覆蓋前面的消息。但是若隊列滿了,新來的消息會被丟棄。在隊列模型中,通過方向?qū)傩哉f明端口是源端口或目的端口。通過消息大小屬性定義端口消息的最大字節(jié)數(shù)。通過隊列長度屬性定義端口可存儲的最大消息數(shù)目。
緩沖區(qū)是同一分區(qū)中的進程用來發(fā)送和接收消息的通信對象。緩沖區(qū)可以存儲多個消息,消息以先進先出的順序排隊。在緩沖區(qū)模型中,通過消息大小屬性定義緩沖區(qū)消息的最大字節(jié)數(shù)。通過緩沖區(qū)長度屬性定義緩沖區(qū)可以存儲的最大消息數(shù)目。通過排隊策略屬性指明進程訪問緩沖區(qū)的排隊策略(先進先出排隊或進程優(yōu)先級排隊)。
黑板是同一分區(qū)中的進程用來發(fā)送和接收消息的通信對象。黑板不使用消息隊列,每個新到來的消息會覆蓋其他消息。在黑板模型中,通過消息大小屬性定義黑板消息的最大字節(jié)數(shù)。
信號量是用來控制進程訪問分區(qū)資源的同步對象。計數(shù)信號量的值代表了可用資源的數(shù)目。在信號量模型中,通過最大值屬性定義受信號量管理的資源的最大數(shù)目。通過當前值屬性定義信號量被創(chuàng)建時的初始值。排隊策略屬性定義進程使用信號量的排隊策略(先進先出排隊或進程優(yōu)先級排隊)。
事件是用來通知那些正在等待某條件發(fā)生的進程該條件已經(jīng)發(fā)生的同步對象。在事件模型中,通過id屬性唯一標識一個事件對象。通過名稱屬性定義事件對象在分區(qū)范圍的名字。
分區(qū)間通信是不同分區(qū)之間的應(yīng)用進行通信的方式,有采樣模式和隊列模式兩種,分別對應(yīng)采樣端口和隊列端口。分區(qū)間通信模型用來表示連接兩個分區(qū)端口之間的通道。通過通信模式屬性指明通信采用的模式(采樣模式或隊列模式)。源分區(qū)屬性指明使用通道發(fā)送消息的分區(qū)。源端口屬性指明連接通道發(fā)送消息的端口。目的分區(qū)屬性指明使用通道接收消息的分區(qū)。目的端口屬性指明連接通道接收消息的端口。
分區(qū)內(nèi)通信是同一分區(qū)中的進程進行通信的方式,包括緩沖區(qū)、黑板、信號量和事件四種機制。進程間消息傳遞使用緩沖區(qū)或黑板,進程間同步使用信號量或事件。分區(qū)內(nèi)通信模型用來建模在相同分區(qū)中的進程之間的通信關(guān)系。通過源任務(wù)屬性指明發(fā)起通信的任務(wù)。通過目的任務(wù)屬性指明響應(yīng)通信的任務(wù)。通信機制屬性定義使用的具體通信機制(緩沖區(qū)、黑板、信號量或事件)
健康監(jiān)控模型是用來建模arinc653操作系統(tǒng)中的健康監(jiān)控機制,對分區(qū)和進程進行健康監(jiān)控,以避免發(fā)生錯誤。操作系統(tǒng)健康監(jiān)控模型用來建模操作系統(tǒng)的健康監(jiān)控表,分區(qū)健康監(jiān)控模型用來建模分區(qū)的健康監(jiān)控表,進程健康監(jiān)控模型用來建模進程通信監(jiān)控結(jié)構(gòu)和錯誤處理函數(shù)。
在自動生成代碼之前,需要相應(yīng)的軟件架構(gòu)模型,即包括上述的系統(tǒng)模型、分區(qū)模型和任務(wù)模型,自動生成代碼的裝置根據(jù)系統(tǒng)模型、分區(qū)模型和任務(wù)模型生成軟件架構(gòu),軟件架構(gòu)包括多個分區(qū)、多個任務(wù)、分區(qū)內(nèi)的通信機制以及分區(qū)間的通信機制。
系統(tǒng)模型是根據(jù)分區(qū)模型及設(shè)置分區(qū)間通信機制創(chuàng)建的,系統(tǒng)模型包括多個分區(qū)模型。其中,任務(wù)即為上述實施例中創(chuàng)建的任務(wù)模,此處不再贅述。各關(guān)系公式所屬的知識領(lǐng)域決定了包含該關(guān)系公式的任務(wù)所屬的知識領(lǐng)域,則該任務(wù)即被劃分為其所屬知識領(lǐng)域?qū)?yīng)的分區(qū)內(nèi),依此確定各任務(wù)所屬的分區(qū),并設(shè)置各分區(qū)內(nèi)任務(wù)的分區(qū)內(nèi)通信機制,一個分區(qū)可以包括多個任務(wù),根據(jù)該分區(qū)內(nèi)的任務(wù)及分區(qū)內(nèi)各任務(wù)之間的分區(qū)內(nèi)通信機制創(chuàng)建分區(qū)模型。。
在對任務(wù)分配分區(qū)過程中,根據(jù)需要的任務(wù)輸入概念和任務(wù)輸出概念確定分區(qū)的端口(即分區(qū)的輸入和輸出)。為分區(qū)中任務(wù)之間的通信指定具體的arinc653分區(qū)內(nèi)通信機制,如任務(wù)1和任務(wù)3通過黑板傳遞mach馬赫數(shù)數(shù)據(jù),任務(wù)2和任務(wù)5通過緩沖區(qū)傳遞壓力設(shè)置高度數(shù)據(jù)。配置通信資源的屬性,如緩沖區(qū)的長度、黑板中傳遞消息的最大字節(jié)數(shù)等。arinc653操作系統(tǒng)提供了緩沖區(qū)、黑板、信號量和事件四種分區(qū)內(nèi)通信方式。分區(qū)端口描述分區(qū)中進程在分區(qū)間通信時所用端口的具體信息,arinc653操作系統(tǒng)提供了隊列端口和采樣端口兩種端口類型。每個分區(qū)對應(yīng)一個知識領(lǐng)域,每個分區(qū)生成一個分區(qū)模型文件。
在創(chuàng)建軟件架構(gòu)過程中,為不同分區(qū)的任務(wù)之間的通信指定具體的arinc653分區(qū)間通信機制,如采樣通信和隊列通信。分區(qū)間的通信確定分區(qū)的端口連接,采樣通信連接源采樣端口和目的采樣端口,隊列通信連接源隊列端口和目的隊列端口。配置分區(qū)時間屬性、分區(qū)的運行周期和每次持續(xù)運行的時間、配置分區(qū)的調(diào)度次序。一個系統(tǒng)生成一個系統(tǒng)模型文件。系統(tǒng)模型文件描述了它包含的分區(qū)模型,分區(qū)間通信和分區(qū)調(diào)度。分區(qū)模型是應(yīng)用子系統(tǒng)的抽象。分區(qū)間通信描述軟件系統(tǒng)中不同應(yīng)用子系統(tǒng)之間的通信關(guān)系。分區(qū)調(diào)度描述了應(yīng)用子系統(tǒng)的執(zhí)行次序。
需要說明的是,機載應(yīng)用軟件的軟件架構(gòu)的創(chuàng)建是為了能夠提高機載應(yīng)用軟件的開發(fā)效率,例如能夠自動生成控制指令對應(yīng)的代碼。
本實施例的軟件架構(gòu)模型是為了將軟件架構(gòu)的構(gòu)件映射到arinc653操作系統(tǒng)中,比如,設(shè)置分區(qū)內(nèi)通信機制,即為將軟件架構(gòu)的分區(qū)內(nèi)通信機制設(shè)置為arinc653操作系統(tǒng)中的分區(qū)內(nèi)的任務(wù)之間通信的方式,使得根據(jù)軟件架構(gòu)模型生成的軟件架構(gòu)代碼符合arinc653操作系統(tǒng),進一步在此軟件架構(gòu)基礎(chǔ)上開發(fā)的機載應(yīng)用軟件對應(yīng)的代碼能夠在arinc653操作系統(tǒng)中運行。因此,關(guān)于上述的分區(qū)內(nèi)通信機制、分區(qū)間通信機制,包括其具體方式如事件、黑板、采樣通信等,分區(qū)調(diào)度,以及各種配置、基本屬性均與arinc653操作系統(tǒng)中的這些屬性相對應(yīng),此處不再贅述。
舉例來說,根據(jù)大氣計算領(lǐng)域的arinc706大氣計算標準、導(dǎo)航領(lǐng)域的導(dǎo)航數(shù)據(jù)、飛行控制領(lǐng)域的arinc701飛行控制標準和飛行管理領(lǐng)域的arinc702飛行管理標準建立知識圖文件。其中,大氣計算領(lǐng)域的知識概念有大氣總壓c1(totalpressure)、大氣靜壓c2(impactpressure)、壓力設(shè)置c24(pressuresetting)、比力c27(specificforce);導(dǎo)航領(lǐng)域的知識概念有陀螺儀數(shù)據(jù)c60(gyroscope)、地球旋轉(zhuǎn)角速度c69(earthrotationanglarvelocity),飛行管理領(lǐng)域的知識概念有飛行姿態(tài)數(shù)據(jù)c70(attitudematrixinitial),飛行控制領(lǐng)域的知識概念有俯仰伺服命令co1(pitchservocommand)和滾轉(zhuǎn)伺服命令co2(rollservocommand)。其中,大氣計算領(lǐng)域的知識概念大氣總壓c1、大氣靜壓c2、壓力設(shè)置c24、比力c27,導(dǎo)航領(lǐng)域的知識概念陀螺儀數(shù)據(jù)c60、地球旋轉(zhuǎn)角速度c69以及飛行管理領(lǐng)域的知識概念飛行姿態(tài)數(shù)據(jù)c70為源知識概念,飛行控制領(lǐng)域的知識概念俯仰伺服命令co1和滾轉(zhuǎn)伺服命令co2為目的知識概念。其中,源知識概念是機載計算機系統(tǒng)從傳感器采集得到的,目的知識概念俯仰伺服命令co1和滾轉(zhuǎn)伺服命令co2為由源知識概念經(jīng)過一系列關(guān)系公式計算得到的,這里的關(guān)系公式都是預(yù)先給定的。比如,源知識概念c24對應(yīng)的關(guān)系公式為公式18,經(jīng)公式18計算后得到一個中間知識概念c25(pressuresettingaltitude),源知識概念c2和c1經(jīng)過一系列關(guān)系公式計算得到一個中間知識概念c26(correctedstaticpressurealtitude),中間知識概念c25和c26又經(jīng)過公式6計算得到中間知識概念c19(barocorrectedaltitude),按照上述的過程,根據(jù)幾個源知識概念,經(jīng)過多個關(guān)系公式計算最終得到目的知識概念co1和co2。
假設(shè)如上獲取到的知識圖文件包括源知識概念有7個,目的知識概念有2個,中間知識概念有18個,關(guān)系公式有20個,生成了14個任務(wù),設(shè)置各任務(wù)的基本屬性,創(chuàng)建了14個任務(wù)模型,存儲為14個任務(wù)模型文件。比如,任務(wù)1、任務(wù)2、任務(wù)3和任務(wù)4中的關(guān)系公式屬于大氣計算領(lǐng)域,則將其劃分到大氣計算分區(qū),根據(jù)各任務(wù)的任務(wù)輸入概念和任務(wù)輸出概念確定該分區(qū)的端口(即對應(yīng)該分區(qū)的輸入概念和輸出概念),分區(qū)的端口類型包括采樣端口和隊列端口兩種端口類型,一個分區(qū)包括一個或多個源端口以及一個或多個目的端口,稱源端口為該分區(qū)的輸入端口,目的端口為該分區(qū)的輸出端口,每個源端口或目的端口可以為采樣端口或隊列端口,可以稱為源采樣端口、目的采樣端口或源隊列端口、目的隊列端口,端口類型也是arinc653系統(tǒng)現(xiàn)有的屬性,此處不再贅述,設(shè)置該分區(qū)中各任務(wù)的分區(qū)內(nèi)通信機制,比如任務(wù)1和任務(wù)3通過黑板傳遞mach馬赫數(shù)數(shù)據(jù),配置通信資源的屬性,如緩沖區(qū)的長度、黑板中傳遞消息的最大字節(jié)數(shù)等,根據(jù)該分區(qū)的四個任務(wù)及如上的一系列設(shè)置創(chuàng)建了大氣計算分區(qū)模型;任務(wù)5、任務(wù)6和任務(wù)7中的關(guān)系公式屬于導(dǎo)航領(lǐng)域,則將其劃分到導(dǎo)航分區(qū),創(chuàng)建導(dǎo)航分區(qū)模型,具體過程同大氣計算分區(qū)模型創(chuàng)建過程,此處不再贅述;任務(wù)8、任務(wù)9、任務(wù)10、任務(wù)11和任務(wù)12中個關(guān)系公式屬于飛行管理領(lǐng)域,則將其劃分為飛行管理分區(qū),創(chuàng)建飛行管理分區(qū)模型,具體過程同大氣計算分區(qū)模型創(chuàng)建過程,此處不再贅述;任務(wù)13和任務(wù)14中的關(guān)系公式屬于飛行控制領(lǐng)域,將其劃分到飛行控制分區(qū),創(chuàng)建飛行控制分區(qū)模型,具體過程同大氣計算分區(qū)模型創(chuàng)建過程,此處不再贅述。即總共有四個分區(qū),創(chuàng)建了四個分區(qū)模型,存儲為四個分區(qū)模型文件。然后根據(jù)四個分區(qū)模型文件,為不同分區(qū)的任務(wù)之間的通信指定具體的arinc653分區(qū)間通信機制,如采樣通信和隊列通信。分區(qū)間的通信確定分區(qū)的端口連接,采樣通信連接源采樣端口和目的采樣端口,隊列通信連接源隊列端口和目的隊列端口,并配置分區(qū)時間屬性、分區(qū)的運行周期和每次持續(xù)運行的時間、配置分區(qū)的調(diào)度次序,根據(jù)各分區(qū)及上述一系列設(shè)置創(chuàng)建軟件架構(gòu),并存儲為軟件系統(tǒng)模型。當創(chuàng)建軟件架構(gòu)后,根據(jù)軟件架構(gòu)模型生成代碼,還可以生成相應(yīng)的配置文件。由上述可知一個軟件系統(tǒng)的軟件架構(gòu)模型包括了系統(tǒng)模型、分區(qū)模型和任務(wù)模型,一個系統(tǒng)模型對應(yīng)多個分區(qū)模型,一個分區(qū)模型對應(yīng)多個任務(wù)模型,模型文件具有樹形關(guān)系結(jié)構(gòu)。具體可以將系統(tǒng)、每個分區(qū)和每個任務(wù)稱為軟件架構(gòu)的構(gòu)件,建立每個構(gòu)件模型在內(nèi)存中的對象,并關(guān)聯(lián)這些對象,建立模型在內(nèi)存中的樹結(jié)構(gòu)對象。樹的根節(jié)點是系統(tǒng)模型,系統(tǒng)模型的葉子節(jié)點是分區(qū)模型,分區(qū)模型的葉子節(jié)點是任務(wù)模型。采用深度遍歷的方式遍歷模型樹,一個系統(tǒng)模型生成一個系統(tǒng)配置文件,每個分區(qū)模型生成一個分區(qū)應(yīng)用c文件,每個任務(wù)模型生成分區(qū)中的一個進程,包括進程執(zhí)行的函數(shù)體。生成的代碼中包含arinc653apex函數(shù)調(diào)用,用來使用操作系統(tǒng)提供給應(yīng)用程序的服務(wù)。
需要說明的是arinc653的apex函數(shù)及其使用為現(xiàn)有技術(shù),此處不再贅述。
再舉例來說,根據(jù)軟件架構(gòu)模型生成的軟件架構(gòu)代碼包括分區(qū)應(yīng)用c代碼和模塊配置xml文檔。其中分區(qū)應(yīng)用c代碼包括分區(qū)初始化函數(shù)和分區(qū)中每個進程的執(zhí)行函數(shù)。分區(qū)初始化函數(shù)負責在分區(qū)初始化階段創(chuàng)建分區(qū)內(nèi)的資源,啟動分區(qū)中的進程,最后將分區(qū)置于normal模式。分區(qū)初始化代碼生成過程(如表1所示)包括:
對每個分區(qū)模型p,獲取它包含的任務(wù)模型集合t、分區(qū)的端口模型集合po、分區(qū)中的分區(qū)內(nèi)通信機制模型集合im(表1中2-5行);
生成創(chuàng)建分區(qū)內(nèi)端口資源的代碼(表1中6-10行):對分區(qū)中的每個端口模型po,若po為采樣端口,則生成該采樣端口的代碼,若po是隊列端口,則生成該隊列端口的代碼;
生成創(chuàng)建分區(qū)內(nèi)通信機制資源的代碼(表1中11-19行):對每個分區(qū)內(nèi)通信機制資源模型im,若im是緩沖區(qū),則生成該緩沖區(qū)資源的代碼,若im是黑板,則生成該黑板資源的代碼,若im是信號量,則生成該信號量資源的代碼,若im是事件,則生成該事件資源的代碼;
生成創(chuàng)建該分區(qū)內(nèi)的進程資源的代碼(表1中20-21行):對每個任務(wù)模型t,生成創(chuàng)建該進程的代碼;
生成啟動分區(qū)中的進程的代碼(表1中22-23行):對每個任務(wù)模型t,生成啟動該進程的代碼;
生成將分區(qū)模式設(shè)置為normal的代碼(表1中24行)。
表1
分區(qū)中的進程通過執(zhí)行定義在分區(qū)c文件中的函數(shù)代碼實現(xiàn)具體的功能。每個進程對應(yīng)自己的進程函數(shù)。進程函數(shù)由進程的通信行為代碼和進程的功能行為代碼組成。在分區(qū)模型中,通過分區(qū)間通信模型和分區(qū)內(nèi)通信模型描述了任務(wù)之間的通信結(jié)構(gòu),基于任務(wù)之間的通信結(jié)構(gòu)生成arinc653操作系統(tǒng)的應(yīng)用分區(qū)中進程的通信代碼。進程的通信包括接收消息和發(fā)送消息兩個過程。在接收消息過程中,若是分區(qū)間通信,進程從分區(qū)的端口中讀取消息,若是分區(qū)內(nèi)通信,進程從分區(qū)中的緩沖區(qū)或黑板讀取消息。在發(fā)送消息的過程中,若是分區(qū)間通信,進程向分區(qū)的端口中寫入消息;若是分區(qū)內(nèi)通信,進程向分區(qū)中的緩沖區(qū)或黑板寫入消息。進程通信行為代碼生成過程(如表2所示)包括:
獲取分區(qū)模型中的任務(wù)模型集合t、端口模型集合po,分區(qū)內(nèi)通信機制資源模型集合im(表2中2-4行);
然后遍歷每個任務(wù)模型,生成每個任務(wù)的通信行為代碼(表2中5-34行),具體包括:
對每個任務(wù)模型t,獲取任務(wù)的輸入集合i和任務(wù)的輸出集合o(表2中6-7行);
生成任務(wù)接收輸入消息的代碼(表2中8-20行),其中,對任務(wù)的每個輸入i,若該輸入是分區(qū)間通信,則獲取它對應(yīng)的分區(qū)端口po,若po是采樣端口,則生成從po讀取采樣消息的apex代碼,若po是隊列端口,則生成從po接收隊列消息的apex代碼;若該輸入i是分區(qū)內(nèi)通信,則獲取它對應(yīng)的分區(qū)內(nèi)通信機制資源im,若im是緩沖區(qū),則生成從im接收緩沖區(qū)消息的apex代碼;若im是黑板,則生成從im讀取黑板消息的apex代碼。
生成任務(wù)發(fā)送消息的代碼(表2中22-34行)。對任務(wù)的每個輸出o,若該輸出是分區(qū)間通信,則獲取它對應(yīng)的分區(qū)端口po,若po是采樣端口,則生成向po寫入采樣消息的apex代碼,若po是隊列端口,則生成向po發(fā)送隊列消息的apex代碼;若該輸出o是分區(qū)內(nèi)通信,則獲取它對應(yīng)的分區(qū)內(nèi)通信機制資源im,若im是緩沖區(qū),則生成向im發(fā)送緩沖區(qū)消息的apex代碼;若im是黑板,則生成向im寫入黑板消息的apex代碼。
表2
arinc653操作系統(tǒng)在啟動時讀取配置信息配置系統(tǒng)中的分區(qū)、分區(qū)調(diào)度、通道資源和健康監(jiān)控。在配置文件中設(shè)置分區(qū)的端口、分區(qū)之間的通道和分區(qū)的調(diào)度。配置文件以xml文件格式記錄這些配置信息。分區(qū)運行時配置生成的過程(如表3所示)包括:
從系統(tǒng)模型中獲取分區(qū)模型集合p、通道集合c、分區(qū)調(diào)度集合sc(表3中2-4行);
先生成應(yīng)用分區(qū)配置(表3中5-13行),具體包括:首先生成應(yīng)用分區(qū)配置的<applications>元素(5行),然后每個分區(qū)對應(yīng)生成子元素<application>。對每個分區(qū)p,獲取p的端口集合po,然后在<applications>元素下添加子元素<application>(6-8行);遍歷端口集合(9-13行):若端口是采樣端口,則在<application>子元素下生成端口的<sampleport>元素,若端口是隊列端口,則在<application>子元素下生成端口的<queueport>元素;
生成通道配置(表3中14-16行):首先生成通道配置的<connections>元素,然后遍歷通道模型集合c,對每個通道模型c,生成對應(yīng)的<channel>子元素;
生成分區(qū)調(diào)度配置(表3中17-19行):首先生成分區(qū)調(diào)度配置的<schedules>元素,然后遍歷調(diào)度模型集合sc,對每個分區(qū)調(diào)度項sc,生成對應(yīng)的<schedule>子元素。
最后調(diào)用generatehealthmonitor()生成健康監(jiān)控配置信息。
表3
需要說明的是,若輸入i是分區(qū)間通信,則獲取它對應(yīng)的分區(qū)端口po,若po是采樣端口,則生成從po讀取采樣消息的apex代碼,用到了函數(shù)read_sampling_message(po,i),通過該函數(shù)生成相應(yīng)的代碼,同樣的,在生成軟件架構(gòu)代碼過程中用到了多個用于生成代碼的函數(shù)。函數(shù)的功能具體的可以是預(yù)先將組成該任務(wù)的關(guān)系公式和知識概念及關(guān)系公式的連接關(guān)系相應(yīng)的代碼存儲在該任務(wù)所屬知識領(lǐng)域?qū)?yīng)的代碼庫中,在生成相應(yīng)的代碼時,通過函數(shù)調(diào)用在該代碼庫中獲取相應(yīng)的代碼??梢岳斫獾?,代碼庫中不僅可以存儲每個任務(wù)對應(yīng)的代碼,也可以存儲關(guān)于任務(wù)之間連接關(guān)系(即分區(qū)內(nèi)通信、分區(qū)間通信等)的代碼。按照上述代碼生成過程,獲取各目標代碼。
可選地,也可以自行設(shè)計上述用于生成代碼的函數(shù),來實現(xiàn)各部分代碼的生成,最終生成代碼。
本實施例提供的基于arinc653操作系統(tǒng)生成代碼的方法,對軟件架構(gòu)進行了分區(qū)設(shè)置,一個分區(qū)對應(yīng)一個知識領(lǐng)域的任務(wù),在生成代碼時可以到任務(wù)對應(yīng)的知識領(lǐng)域代碼庫中獲取目標代碼,避免了遍歷所有代碼庫中的代碼來獲取目標代碼,提高了生成代碼的效率,此外,應(yīng)用了分區(qū)的軟件架構(gòu),在同時每個分區(qū)都能運行一個進程,即一個操作系統(tǒng)可同時運行多個進程,進一步提高了代碼的生成效率。
實施例三
本實施例提供一種基于arinc653操作系統(tǒng)生成代碼的裝置,用于執(zhí)行實施例一的基于arinc653操作系統(tǒng)生成代碼的方法。
如圖4所述,為本實施例提供的基于arinc653操作系統(tǒng)生成代碼的裝置的結(jié)構(gòu)示意圖。本實施例的基于arinc653操作系統(tǒng)生成代碼的裝置30包括第一獲取模塊31、第一生成模塊32、第二獲取模塊33和第二生成模塊34。
其中,第一獲取模塊31用于獲取知識圖文件,知識圖文件包括至少一條知識路徑,每條知識路徑均包括至少兩個知識概念,每個知識概念均通過同一路徑中的上一知識概念和對應(yīng)的關(guān)系公式得到,各關(guān)系公式至少屬于兩個不同的知識領(lǐng)域,一個知識領(lǐng)域?qū)?yīng)arinc653操作系統(tǒng)的一個分區(qū);第一生成模塊32用于根據(jù)第一獲取模塊31獲取的知識圖文件生成多個任務(wù),并建立各任務(wù)之間的連接關(guān)系,每個任務(wù)至少包括一個目標關(guān)系公式以及目標關(guān)系公式對應(yīng)的目標知識概念,屬于同一任務(wù)的目標關(guān)系公式的知識領(lǐng)域相同;第二獲取模塊33用于根據(jù)第一生成模塊32生成的各任務(wù)所包括的目標關(guān)系公式和目標知識概念,在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取目標代碼;第二生成模塊34用于根據(jù)連接關(guān)系對第二獲取模塊33獲取的目標代碼排序,生成完整代碼。
可選地,第一獲取模塊31具體用于獲取各知識概念;根據(jù)各知識概念的因果關(guān)系構(gòu)建知識圖文件。
可選地,第二獲取模塊33具體用于:根據(jù)目標關(guān)系公式在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取待補充代碼,并根據(jù)目標知識概念和待補充代碼生成目標代碼。
可選地,知識領(lǐng)域至少包括以下的兩種領(lǐng)域:大氣計算領(lǐng)域、導(dǎo)航領(lǐng)域、飛行管理領(lǐng)域、飛行控制領(lǐng)域。
可選地,如圖5所示,基于arinc653操作系統(tǒng)生成代碼的裝置30還包括控制模塊35和發(fā)送模塊36。
其中,控制模塊35用于根據(jù)第二生成模塊34生成的完整代碼生成控制指令;發(fā)送模塊36用于向伺服控制器發(fā)送控制模塊35生成的控制指令,以使伺服控制器根據(jù)控制指令發(fā)送動作信號控制飛行器的飛行。
關(guān)于本實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
根據(jù)本實施例的基于arinc653操作系統(tǒng)生成代碼的裝置,通過獲取知識圖文件,根據(jù)知識圖文件生成多個任務(wù),并建立各任務(wù)之間的連接關(guān)系,再根據(jù)任務(wù)所包括的目標關(guān)系公式和目標知識概念,在所屬知識領(lǐng)域?qū)?yīng)的代碼庫中獲取目標代碼,并根據(jù)各任務(wù)的連接關(guān)系對目標代碼排序生成完整代碼,實現(xiàn)了自動生成代碼,提高了代碼的生成效率。
本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。