呂鎮(zhèn)邦 沈新剛 鄒會(huì)榮* 施伯樂(lè)
1(航空工業(yè)西安航空計(jì)算技術(shù)研究所 陜西 西安 710068)2(復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 上海 200433)
機(jī)載維護(hù)系統(tǒng)是從飛機(jī)的多個(gè)子系統(tǒng)和成員設(shè)備中獲取數(shù)據(jù)信息,并通過(guò)嵌入式計(jì)算機(jī)實(shí)現(xiàn)故障診斷與隔離、飛機(jī)狀態(tài)參數(shù)監(jiān)測(cè)和交互式維護(hù)等功能,為維護(hù)人員提供維修服務(wù)與技術(shù)支持[1-4]的專用系統(tǒng)。
交互式維護(hù)是機(jī)載維護(hù)系統(tǒng)的子系統(tǒng)和核心功能之一。它是由維護(hù)人員通過(guò)座艙顯示器或便攜式終端啟動(dòng)的,包含一系列連續(xù)測(cè)試步驟的成員設(shè)備狀態(tài)檢測(cè)過(guò)程。在不拆卸成員設(shè)備的情況下,通過(guò)交互式維護(hù)過(guò)程協(xié)助維護(hù)人員完成機(jī)載設(shè)備的系統(tǒng)測(cè)試、模糊組故障診斷與隔離、故障確認(rèn)、校準(zhǔn)和調(diào)零以及更換外場(chǎng)可替換單元(Line Replaceable Unit,LRU)之后的設(shè)備接口和性能測(cè)試。
目前,國(guó)內(nèi)飛機(jī)外場(chǎng)維護(hù)中存在著維護(hù)場(chǎng)景復(fù)雜、專用設(shè)備種類繁多、狀態(tài)轉(zhuǎn)換頻繁、維護(hù)過(guò)程不規(guī)范、智能化支持程度低、維護(hù)和維修活動(dòng)耗時(shí)長(zhǎng)、成本高昂等諸多問(wèn)題,常規(guī)系統(tǒng)設(shè)計(jì)方法難以解決。針對(duì)上述問(wèn)題,本文提出了一種基于有限狀態(tài)機(jī)的交互式維護(hù)系統(tǒng)開(kāi)發(fā)方法,描述了系統(tǒng)設(shè)計(jì)框架和通信協(xié)議,設(shè)計(jì)了符合飛機(jī)維護(hù)領(lǐng)域標(biāo)準(zhǔn)(ARINC624標(biāo)準(zhǔn),A624)的狀態(tài)機(jī)模型,并解決了狀態(tài)機(jī)模型的多線程設(shè)計(jì)和同步問(wèn)題,實(shí)現(xiàn)了人機(jī)交互維護(hù)過(guò)程,使得交互過(guò)程規(guī)范、通用和可控。
有限狀態(tài)機(jī)(Finite State Machine,FSM)簡(jiǎn)稱狀態(tài)機(jī),因狀態(tài)都是離散或可枚舉而得名。它是一種有限數(shù)目的狀態(tài)以及在這些狀態(tài)之間轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型[5],也是嵌入式系統(tǒng)設(shè)計(jì)中一種重要的、容易建立的、應(yīng)用較為廣泛的、以描述控制特性為主的建模方法。它貫穿了從系統(tǒng)分析到設(shè)計(jì)的所有階段,描述了研究對(duì)象在它的生命周期內(nèi)所經(jīng)歷的狀態(tài)序列,以及如何響應(yīng)來(lái)自外界的各種事件。
FSM一般定義[5]為:M=(Q,I,O,q0,δ,λ),其中:Q是狀態(tài)集合,包含模型中的所有狀態(tài);I是模型中的所有輸入;O表示狀態(tài)的所有輸出;q0表示初始狀態(tài);δ是狀態(tài)轉(zhuǎn)移函數(shù),QxI→Q;λ為輸出函數(shù),QxI→O。FSM由狀態(tài)集、事件集、行為及遷移四大要素組成。
交互式維護(hù)功能作為機(jī)載維護(hù)系統(tǒng)的子系統(tǒng)和核心功能之一,為維護(hù)人員和成員設(shè)備之間的交互式測(cè)試提供了幫助和服務(wù)。它由維護(hù)人員手動(dòng)操作座艙顯示器或便攜式維護(hù)終端(Portable Maintenance Access Terminal,PMAT)顯示屏上的可視化測(cè)試界面,選擇維護(hù)測(cè)試界面上所提供的菜單和消息指令,發(fā)送測(cè)試請(qǐng)求命令。交互式維護(hù)系統(tǒng)將會(huì)顯示合適的預(yù)定義測(cè)試條件和交互式的消息指令,并將測(cè)試請(qǐng)求命令轉(zhuǎn)發(fā)給指定的成員設(shè)備。當(dāng)成員設(shè)備接收到請(qǐng)求命令之后,需要作出響應(yīng)動(dòng)作,執(zhí)行合適的測(cè)試項(xiàng)。最后,利用相關(guān)的通用工具,根據(jù)響應(yīng)內(nèi)容,生成可視化的測(cè)試響應(yīng)界面及測(cè)試數(shù)據(jù),返回給兩種顯示屏顯示,供維護(hù)人員使用。這一過(guò)程可反復(fù)執(zhí)行,直到交互式測(cè)試過(guò)程結(jié)束為止。
交互式維護(hù)系統(tǒng)的設(shè)計(jì)框架包括6個(gè)功能單元,分別是:配置文件管理單元、A624管理單元、頁(yè)面管理單元、XML-RPC(XML-RPC,XML Remote Procedure Call)管理單元、網(wǎng)絡(luò)接口單元和公用庫(kù)。如圖1所示。
圖1 交互式維護(hù)系統(tǒng)的設(shè)計(jì)框架
圖1中,當(dāng)交互式維護(hù)系統(tǒng)開(kāi)始初始化時(shí),配置文件管理單元讀取由相關(guān)通用配置工具開(kāi)發(fā)的頁(yè)面配置數(shù)據(jù)庫(kù)、數(shù)據(jù)源配置文件。頁(yè)面配置數(shù)據(jù)庫(kù)定義了交互式頁(yè)面控件信息、成員設(shè)備信息、通信協(xié)議、成員設(shè)備自定義信息等,而數(shù)據(jù)源配置文件中定義了軟件接口信息等。
A624管理單元負(fù)責(zé)控制交互式狀態(tài)機(jī)模型,管理各個(gè)狀態(tài)之間的躍遷,和成員設(shè)備一起完成交互式測(cè)試與維護(hù)。當(dāng)A624管理單元監(jiān)聽(tīng)到來(lái)自Web人機(jī)界面的維護(hù)人員請(qǐng)求,且有請(qǐng)求事件發(fā)生時(shí),狀態(tài)機(jī)接收請(qǐng)求,根據(jù)請(qǐng)求類型作出相應(yīng)的處理,之后以XML-RPC的形式將結(jié)果進(jìn)行封裝并發(fā)送給成員設(shè)備。同時(shí),該管理單元還要監(jiān)聽(tīng)來(lái)自成員設(shè)備的響應(yīng)。當(dāng)成員設(shè)備接收到維護(hù)人員請(qǐng)求時(shí),成員設(shè)備作出響應(yīng),狀態(tài)機(jī)模型收到響應(yīng)之后,將其插入一個(gè)輸出隊(duì)列并設(shè)置輸出事件。A624管理單元必須按照ARINC624標(biāo)準(zhǔn)[6]的要求打包測(cè)試命令或響應(yīng)數(shù)據(jù)幀。
頁(yè)面管理單元負(fù)責(zé)控制交互式維護(hù)測(cè)試頁(yè)面,當(dāng)收到來(lái)自Web人機(jī)界面的測(cè)試請(qǐng)求命令后,向A624狀態(tài)機(jī)模型發(fā)送測(cè)試請(qǐng)求,從A624管理模塊獲取成員設(shè)備響應(yīng)信息,并從數(shù)據(jù)庫(kù)中獲取當(dāng)前頁(yè)面的控件信息,組織成可顯示的格式化頁(yè)面信息,通過(guò)XML-RPC管理單元把頁(yè)面內(nèi)容發(fā)往Web人機(jī)界面,并在座艙顯示器和PMAT屏幕上顯示相關(guān)頁(yè)面內(nèi)容。
XML-RPC管理單元負(fù)責(zé)各單元模塊的解析、處理從網(wǎng)絡(luò)接口發(fā)送和接收到的XML-RPC命令或頁(yè)面信息,它是維護(hù)系統(tǒng)和Web人機(jī)界面之間進(jìn)行交互的數(shù)據(jù)接口。
網(wǎng)絡(luò)接口單元負(fù)責(zé)套接字管理,為基于TCP、UDP的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送、接收提供接口函數(shù),為維護(hù)系統(tǒng)和Web人機(jī)界面、成員設(shè)備之間的通信提供便利。
公用庫(kù)主要提供多種函數(shù),用于支持交互式維護(hù)系統(tǒng)的其他功能。如線程函數(shù)、數(shù)據(jù)緩存函數(shù)、鏈表、隊(duì)列函數(shù)、校驗(yàn)等功能函數(shù)。
由于交互式維護(hù)過(guò)程比較復(fù)雜,3個(gè)狀態(tài)機(jī)模型之間進(jìn)行通信的協(xié)議都是定制協(xié)議。在定制過(guò)程中需要最大限度地提高靈活性,使其具有良好的增長(zhǎng)潛力。同時(shí),該通信協(xié)議的設(shè)計(jì)應(yīng)與機(jī)載系統(tǒng)的其他通信協(xié)議保持一致,應(yīng)完全符合飛機(jī)維護(hù)領(lǐng)域的標(biāo)準(zhǔn)。交互式維護(hù)系統(tǒng)的通信協(xié)議格式包含消息頭、消息標(biāo)識(shí)、消息狀態(tài)和消息內(nèi)容,共4部分組成。其中:消息頭記錄了發(fā)送消息的應(yīng)用程序ID,表示消息是由哪些功能軟件發(fā)出的,如故障診斷與報(bào)告或飛機(jī)狀態(tài)監(jiān)測(cè)等;消息標(biāo)識(shí)記錄了消息名稱和消息的傳送方向,如獲取測(cè)試進(jìn)行中的消息命令,是A624狀態(tài)機(jī)發(fā)送請(qǐng)求命令給成員設(shè)備;消息狀態(tài)記錄了4種狀態(tài):無(wú)數(shù)據(jù)、正常操作、功能測(cè)試和無(wú)需計(jì)算數(shù)據(jù);消息內(nèi)容以字符串的方式記錄了具體的傳送內(nèi)容。
由于交互式維護(hù)系統(tǒng)本身具有復(fù)雜的交互性和多樣的交聯(lián)性,系統(tǒng)共設(shè)計(jì)了3個(gè)狀態(tài)機(jī)模型,分別為:
1) 維護(hù)人員狀態(tài)機(jī)模型:負(fù)責(zé)向成員設(shè)備發(fā)起請(qǐng)求。
2) A624狀態(tài)機(jī)模型:負(fù)責(zé)接收維護(hù)人員發(fā)送的請(qǐng)求,并將請(qǐng)求協(xié)議封裝成測(cè)試命令,轉(zhuǎn)發(fā)給成員設(shè)備;根據(jù)成員設(shè)備響應(yīng)反饋,結(jié)合相關(guān)數(shù)據(jù)形成的頁(yè)面信息,將其發(fā)送給維護(hù)人員的顯示終端。
3) 成員設(shè)備狀態(tài)機(jī)模型:負(fù)責(zé)執(zhí)行消息命令,并將響應(yīng)反饋給A624狀態(tài)機(jī)模型。
在交互過(guò)程中,3個(gè)模型相互配合、協(xié)同工作才能完成整個(gè)請(qǐng)求響應(yīng)過(guò)程。為了滿足復(fù)雜的通信協(xié)議、豐富的消息類型、頻繁的請(qǐng)求響應(yīng),系統(tǒng)軟件設(shè)計(jì)以A624狀態(tài)機(jī)模型為核心,采用雙端設(shè)計(jì),既要考慮維護(hù)人員的操作請(qǐng)求狀態(tài),又要討論成員設(shè)備的響應(yīng)狀態(tài)。3個(gè)狀態(tài)機(jī)模型根據(jù)不同時(shí)刻不同請(qǐng)求命令和響應(yīng)消息,形成閉環(huán),完成人機(jī)交互過(guò)程。
為了明確各成員設(shè)備的具體行為,直觀清楚地表述狀態(tài)之間的關(guān)系,交互式維護(hù)系統(tǒng)應(yīng)用有限狀態(tài)機(jī)的基本原理,設(shè)計(jì)了數(shù)量較多的狀態(tài)集和事件集,通過(guò)當(dāng)前的一組輸入和已知的狀態(tài),根據(jù)不同的測(cè)試指令和反饋消息完成狀態(tài)遷移并進(jìn)行交互測(cè)試。
為了順利地完成維護(hù)人員和成員設(shè)備之間的交互式維護(hù)過(guò)程,需要維護(hù)人員狀態(tài)機(jī)模型、A624狀態(tài)機(jī)模型及成員設(shè)備狀態(tài)機(jī)模型三者之間的協(xié)同工作。它們?nèi)咧g通過(guò)事先約定的通信協(xié)議,采用請(qǐng)求命令和響應(yīng)命令(XML-RPC方式)的應(yīng)答模式,利用3個(gè)狀態(tài)機(jī)模型的狀態(tài)遷移,將維護(hù)人員的請(qǐng)求命令通過(guò)A624狀態(tài)機(jī)模型轉(zhuǎn)發(fā)給成員設(shè)備狀態(tài)機(jī)模型。當(dāng)成員設(shè)備接收到請(qǐng)求命令之后,首先響應(yīng)請(qǐng)求命令,然后進(jìn)行相應(yīng)動(dòng)作的處理,使用通用配置工具組織交互式維護(hù)測(cè)試頁(yè)面,獲取數(shù)據(jù)信息,最后將準(zhǔn)備好的頁(yè)面信息發(fā)送給A624狀態(tài)機(jī)模型,將頁(yè)面信息回顯到座艙顯示器和PMAT顯示屏上。3個(gè)狀態(tài)機(jī)模型之間的請(qǐng)求、響應(yīng)的交互關(guān)系如圖2所示。
圖2 狀態(tài)機(jī)模型之間的交互關(guān)系
交互式維護(hù)系統(tǒng)中設(shè)計(jì)了維護(hù)人員狀態(tài)機(jī)模型、A624狀態(tài)機(jī)模型和成員設(shè)備狀態(tài)機(jī)模型。此處著重講述A624狀態(tài)機(jī)模型的具體設(shè)計(jì)。為了符合飛機(jī)維護(hù)領(lǐng)域的業(yè)內(nèi)標(biāo)準(zhǔn),A624狀態(tài)機(jī)模型設(shè)計(jì)時(shí)完全遵循ARINC624協(xié)議[6-7]。該狀態(tài)機(jī)模型定義了6個(gè)測(cè)試狀態(tài),8個(gè)消息及命令,主要負(fù)責(zé)交互式測(cè)試過(guò)程中6個(gè)狀態(tài)之間的遷移,當(dāng)收到觸發(fā)事件,狀態(tài)機(jī)模型就根據(jù)事件集進(jìn)行狀態(tài)躍遷。
3.2.1 狀態(tài)集設(shè)計(jì)
在設(shè)計(jì)交互式維護(hù)系統(tǒng)中的狀態(tài)機(jī)模型前,首先需要確定維護(hù)人員的3個(gè)狀態(tài)和4個(gè)事件,完成維護(hù)人員狀態(tài)機(jī)模型的設(shè)計(jì)。然后,根據(jù)交互式維護(hù)系統(tǒng)的需求定義,確定A624狀態(tài)機(jī)模型的6個(gè)狀態(tài)和8個(gè)事件。最后,確定成員設(shè)備狀態(tài)機(jī)模型的3個(gè)狀態(tài)和7個(gè)事件,完成成員設(shè)備狀態(tài)機(jī)模型設(shè)計(jì)。
A624狀態(tài)機(jī)模型提取出如下的6個(gè)狀態(tài),形成狀態(tài)集合:
① 維護(hù)等待禁止響應(yīng)狀態(tài);
② 維護(hù)正常狀態(tài);
③ 維護(hù)等待測(cè)試狀態(tài);
④ 維護(hù)執(zhí)行測(cè)試狀態(tài);
⑤ 維護(hù)等待操作狀態(tài);
⑥ 維護(hù)等待終止響應(yīng)狀態(tài)。
3.2.2 事件集設(shè)計(jì)
通過(guò)狀態(tài)集可以設(shè)計(jì)出狀態(tài)轉(zhuǎn)換條件所需的事件。A624狀態(tài)機(jī)模型的設(shè)計(jì)過(guò)程中,事件集大致包含如下消息及命令:
① 發(fā)送維護(hù)測(cè)試運(yùn)行請(qǐng)求命令;
② 發(fā)送維護(hù)測(cè)試中止請(qǐng)求命令;
③ 發(fā)送顯示命令請(qǐng)求;
④ 發(fā)送維護(hù)測(cè)試?yán)^續(xù)請(qǐng)求命令;
⑤ 接收正在維護(hù)測(cè)試響應(yīng);
⑥ 指明當(dāng)前存在的禁止條件,接收禁止維護(hù)測(cè)試響應(yīng);
⑦ 確認(rèn)當(dāng)前維護(hù)測(cè)試中止命令;
⑧ 測(cè)試完成,發(fā)送維護(hù)測(cè)試完成命令。
3.2.3 事件和狀態(tài)轉(zhuǎn)換模型
當(dāng)交互式維護(hù)系統(tǒng)加電初始化之后,A624狀態(tài)機(jī)模型處于“正常狀態(tài)”,開(kāi)始監(jiān)聽(tīng)維護(hù)人員的請(qǐng)求命令及成員設(shè)備的響應(yīng)命令。當(dāng)維護(hù)人員發(fā)出維護(hù)測(cè)試請(qǐng)求命令,傳輸測(cè)試運(yùn)行命令操作,狀態(tài)機(jī)模型進(jìn)入“等待測(cè)試”命令狀態(tài)。若狀態(tài)機(jī)模型接收到成員設(shè)備的測(cè)試中響應(yīng)命令,則向Web人機(jī)界面顯示成員設(shè)備測(cè)試中,進(jìn)入“執(zhí)行測(cè)試”狀態(tài),等待成員設(shè)備狀態(tài)機(jī)模型響應(yīng),并生成具體的測(cè)試數(shù)據(jù)。如果狀態(tài)機(jī)模型接收到成員設(shè)備的狀態(tài)信息,且測(cè)試完成位有效,則向Web人機(jī)界面顯示測(cè)試結(jié)束命令,并返回“正常狀態(tài)”。若狀態(tài)機(jī)模型接收到維護(hù)人員的繼續(xù)請(qǐng)求命令,則向成員設(shè)備發(fā)送“繼續(xù)測(cè)試”命令,并返回“執(zhí)行測(cè)試”狀態(tài),重復(fù)上述過(guò)程。若狀態(tài)機(jī)模型接收到設(shè)備中止響應(yīng),則向Web人機(jī)界面顯示測(cè)試中止命令,并返回“正常狀態(tài)”。其狀態(tài)轉(zhuǎn)換模型如圖3所示。
圖3 A624事件和狀態(tài)轉(zhuǎn)換模型
3.2.4 狀態(tài)機(jī)多線程設(shè)計(jì)
為完成人機(jī)界面和成員設(shè)備之間的交互測(cè)試,交互式維護(hù)系統(tǒng)需要同時(shí)創(chuàng)建4個(gè)線程,實(shí)施A624狀態(tài)機(jī)多線程同步運(yùn)行管理模式。創(chuàng)建的4個(gè)線程分別是:網(wǎng)絡(luò)管理線程、A624狀態(tài)機(jī)線程、事件管理線程和XM-LRPC管理線程。其中,網(wǎng)絡(luò)管理線程和事件管理線程定義為周期性線程,其余的2個(gè)線程定義為非周期性線程。4個(gè)線程之間的運(yùn)行關(guān)系如圖4所示。
圖4 A624狀態(tài)機(jī)多線程運(yùn)行關(guān)系
圖4中,網(wǎng)絡(luò)管理線程主要負(fù)責(zé)實(shí)時(shí)監(jiān)聽(tīng)端口,接收來(lái)自成員設(shè)備的數(shù)據(jù)信息,解析A624命令或響應(yīng)消息,把消息加入A624輸入隊(duì)列,并設(shè)置消息事件。
A624狀態(tài)機(jī)線程主要負(fù)責(zé)狀態(tài)機(jī)的6種狀態(tài)之間的條件遷移。A624狀態(tài)機(jī)基于不同的輸入,包括維護(hù)人員的操作指示和成員設(shè)備的命令或響應(yīng)消息,在各個(gè)狀態(tài)之間躍遷,并向成員設(shè)備發(fā)送操作命令,向維護(hù)測(cè)試頁(yè)面反饋執(zhí)行結(jié)果。
事件管理線程主要負(fù)責(zé)檢索事件列表,當(dāng)發(fā)現(xiàn)有事件項(xiàng)被設(shè)置時(shí),觸發(fā)事件。事件管理線程是周期性線程,每秒執(zhí)行1次,它為網(wǎng)絡(luò)管理線程、A624狀態(tài)機(jī)線程、XML-RPC管理線程之間的同步提供支持。
XML-RPC管理線程主要負(fù)責(zé)接收來(lái)自Web人機(jī)界面的XML-RPC請(qǐng)求、創(chuàng)建A624狀態(tài)機(jī)請(qǐng)求,并設(shè)置請(qǐng)求事件,等待狀態(tài)機(jī)返回請(qǐng)求執(zhí)行結(jié)果,組織頁(yè)面控件信息,和執(zhí)行結(jié)果一起生成維護(hù)測(cè)試頁(yè)面,以XML-RPC的形式輸出到Web人機(jī)界面顯示。
3.2.5 狀態(tài)機(jī)多線程同步
A624狀態(tài)機(jī)的輸入、輸出數(shù)據(jù)必須同步,以確保機(jī)載設(shè)備測(cè)試狀態(tài)和維護(hù)終端顯示內(nèi)容的實(shí)時(shí)性和一致性。交互式維護(hù)系統(tǒng)采用4個(gè)線程同步運(yùn)行,并通過(guò)隊(duì)列事件實(shí)現(xiàn)各線程之間的數(shù)據(jù)同步。
當(dāng)交互式維護(hù)系統(tǒng)運(yùn)行時(shí),網(wǎng)絡(luò)管理線程和A624狀態(tài)機(jī)線程之間的同步需要A624輸入隊(duì)列作為接口。當(dāng)收到來(lái)自成員設(shè)備的命令或響應(yīng)后,網(wǎng)絡(luò)管理線程把A624命令或響應(yīng)消息加入A624輸入隊(duì)列。A624狀態(tài)機(jī)線程從A624輸入隊(duì)列取出命令或響應(yīng)消息,基于消息內(nèi)容產(chǎn)生狀態(tài)躍遷。
當(dāng)交互式維護(hù)系統(tǒng)運(yùn)行時(shí),XML-RPC管理線程和A624狀態(tài)機(jī)線程之間的同步需要A624請(qǐng)求隊(duì)列作為接口。當(dāng)收到來(lái)自Web人機(jī)界面的操作指示后,XML-RPC管理線程創(chuàng)建A624請(qǐng)求,并加入A624請(qǐng)求隊(duì)列。A624狀態(tài)機(jī)線程從A624請(qǐng)求隊(duì)列取出維護(hù)人員操作指示,根據(jù)指示內(nèi)容產(chǎn)生狀態(tài)躍遷。
當(dāng)交互式維護(hù)系統(tǒng)運(yùn)行時(shí),A624狀態(tài)機(jī)線程和XML-RPC管理線程之間的同步需要A624輸出隊(duì)列作為接口。當(dāng)收到成員設(shè)備命令或響應(yīng)后,A624狀態(tài)機(jī)把命令或響應(yīng)消息加入A624輸出隊(duì)列。XML-RPC管理線程從A624輸出隊(duì)列取出命令或響應(yīng)消息,同當(dāng)前頁(yè)面控件信息一起,組織成頁(yè)面信息輸出到Web人機(jī)界面。
網(wǎng)絡(luò)管理線程、XML-RPC管理線程通過(guò)事件列表和A624狀態(tài)機(jī)線程同步需要事件列表作為接口。運(yùn)行時(shí),當(dāng)網(wǎng)絡(luò)管理線程、XML-RPC管理線程、A624狀態(tài)機(jī)線程向各個(gè)同步隊(duì)列中插入命令或響應(yīng)消息后,設(shè)置隊(duì)列事件,事件管理線程周期性的檢索事件列表,當(dāng)發(fā)現(xiàn)某一同步隊(duì)列中的事件被設(shè)置后,觸發(fā)事件,通知其他線程從隊(duì)列中提取命令或響應(yīng)消息。
機(jī)載維護(hù)系統(tǒng)中交互式維護(hù)功能的實(shí)現(xiàn)是借助于SCADE、Eclipse、Java和VxWorks等開(kāi)發(fā)環(huán)境,以維護(hù)人員操作的測(cè)試頁(yè)面、交互式維護(hù)系統(tǒng)和成員系統(tǒng)數(shù)據(jù)仿真平臺(tái)所產(chǎn)生的數(shù)據(jù)信息組成,實(shí)現(xiàn)了維護(hù)人員和成員設(shè)備之間的交互式維護(hù)過(guò)程。并為維護(hù)人員呈現(xiàn)了可視化的測(cè)試界面,完成了維護(hù)人員、交互式維護(hù)系統(tǒng)和成員設(shè)備之間的數(shù)據(jù)請(qǐng)求和響應(yīng)功能,確認(rèn)了成員設(shè)備的正常狀態(tài)或故障狀態(tài),驗(yàn)證了3個(gè)有限狀態(tài)機(jī)模型在交互式維護(hù)系統(tǒng)開(kāi)發(fā)中的正確性。狀態(tài)機(jī)模型實(shí)現(xiàn)結(jié)果如圖5所示。
圖5 狀態(tài)機(jī)模型實(shí)現(xiàn)結(jié)果
通過(guò)在機(jī)載維護(hù)仿真平臺(tái)中的使用,具有狀態(tài)機(jī)模型的交互式維護(hù)功能符合飛機(jī)維護(hù)領(lǐng)域的規(guī)范,支持多種測(cè)試場(chǎng)景的用戶可配置操作,提供測(cè)試前置信息、測(cè)試抑制信息、測(cè)試干擾信息、測(cè)試交互信息、測(cè)試狀態(tài)信息和測(cè)試結(jié)果信息的規(guī)范化顯示;支持多線程處理機(jī)制,在每個(gè)線程中分別獨(dú)立運(yùn)行圖2中的3個(gè)狀態(tài)機(jī),同時(shí),并發(fā)管理多個(gè)成員設(shè)備的交互式測(cè)試,處理響應(yīng)速度快,并支持處理能力的進(jìn)一步擴(kuò)展。
本文提出了一種基于有限狀態(tài)機(jī)的交互式維護(hù)系統(tǒng)開(kāi)發(fā)方法,描述了系統(tǒng)設(shè)計(jì)框架和通信協(xié)議,設(shè)計(jì)了3個(gè)典型的符合飛機(jī)維護(hù)領(lǐng)域標(biāo)準(zhǔn)的狀態(tài)機(jī)模型,詳述了各狀態(tài)之間的狀態(tài)遷移,解決了狀態(tài)機(jī)多線程設(shè)計(jì)和同步問(wèn)題,實(shí)現(xiàn)了維護(hù)人員和成員設(shè)備之間的交互式維護(hù)過(guò)程。通過(guò)在機(jī)載維護(hù)仿真平臺(tái)中的實(shí)際應(yīng)用和檢驗(yàn),證實(shí)了采用有限狀態(tài)機(jī)的設(shè)計(jì)理念可準(zhǔn)確描述被測(cè)對(duì)象的行為,提高復(fù)雜軟件系統(tǒng)的通用性和健壯性。該設(shè)計(jì)理念完全可用于同類或其他相關(guān)系統(tǒng)的軟件設(shè)計(jì)與開(kāi)發(fā)中[8-9]。交互式維護(hù)功能作為機(jī)載維護(hù)系統(tǒng)的主要支撐技術(shù),為后續(xù)飛機(jī)型號(hào)的機(jī)載維護(hù)系統(tǒng)開(kāi)發(fā)奠定了良好的技術(shù)基礎(chǔ)。