朱 偉,許春雷,孔 軍
(江蘇自動化研究所,江蘇 連云港 222006)
指揮控制系統(tǒng)作為作戰(zhàn)系統(tǒng)的核心子系統(tǒng),是作戰(zhàn)信息處理中心和指揮員實施指揮的直接部位,通常需要同時完成情報綜合處理、作戰(zhàn)輔助決策、武器綜合控制等多個獨立功能[1]。實時多任務(wù)VxWorks操作系統(tǒng)以其卓越的多任務(wù)事務(wù)處理能力已成為軍事指控控制領(lǐng)域中使用最廣泛的系統(tǒng)。近年來,由于指揮控制系統(tǒng)功能日趨復(fù)雜,對人機交互界面的實時性、靈活性、擴展性等提出了更高的要求。另一方面,所見即所得的Tilcon人機交互界面開發(fā)工具為嵌入式系統(tǒng)下的人機交互界面開發(fā)提供了簡便快捷的界面設(shè)計方式[2],但也存在著人機交互處理集中、任務(wù)之間耦合性強,無法兼容其他人機交互方式、實時性難以保證等不足。如何應(yīng)用Tilcon設(shè)計多任務(wù)人機交互軟件,對于確保指控系統(tǒng)的實時性、擴展性,提高任務(wù)的可靠性、可移植性,促進指控系統(tǒng)下功能任務(wù)的構(gòu)件化設(shè)計均具有重要意義。
Tilcon是wind River推出的多平臺用戶界面開發(fā)工具,具有功能齊全、界面美觀、使用方便的特點,支持Windows、VxWorks、Linux、QNX 等多種平臺。Tilcon人機交互界面開發(fā)環(huán)境提供了常用界面控件,用戶可以直接拖放控件到窗口上構(gòu)造自己的圖形、表頁界面,實現(xiàn)了所見即所得的人機界面開發(fā)方式[3],已成為嵌入式系統(tǒng)下主流的人機交互界面開發(fā)工具。
Tilcon主要由三個組件構(gòu)成[4],即人機交互界面運行引擎EVE、應(yīng)用程序API接口函數(shù)和可視化人機交互界面開發(fā)環(huán)境,其組成及關(guān)系如圖1所示[5][6]。
圖1 Tilcon構(gòu)成及關(guān)系圖
運行在嵌入式系統(tǒng)之上的EVE 是一個獨立于用戶應(yīng)用程序的微內(nèi)核, 以兩種方式管理所有的用戶界面顯示及人機交互事件: 1)執(zhí)行應(yīng)用程序的API 命令進行屏幕繪制;2)以事件、回調(diào)函數(shù)等形式處理操控消息,驅(qū)動應(yīng)用程序運行。
API 是供用戶應(yīng)用程序調(diào)用的一組基本函數(shù),為EVE和用戶程序之間提供交互接口,用戶可以通過它動態(tài)地創(chuàng)建對象、修改對象屬性。
Tilcon 可視化界面開發(fā)環(huán)境集成了大量常用控件, 用戶通過拖拉控件來設(shè)計界面, tilcon界面采用平臺無關(guān)的二進制資源形式存儲,具有較好的移植性。
Tilcon通過一個循環(huán)任務(wù)來處理人機交互事件。任務(wù)初始化需要先后完成:1)調(diào)用TRT_Start接口函數(shù)來啟動tilcon圖形引擎;2)調(diào)用TRT_WindowLoad函數(shù)來加載 twd界面資源文件;3)調(diào)用TRT-WindowDisplay 函數(shù)人機交互圖形界面。初始化完成后調(diào)用 TRT_Getlnput函數(shù)建立主框架循環(huán)。TRT_Getlnput 函數(shù)處于等待狀態(tài)并實時接收、處理來自于Tilcon 引擎所傳遞的界面操控事件。Tilcon人機交互事件處理流程如圖2所示[7]。
圖2 Tilcon人機交互事件處理流程
從Tilcon的人機交互事件處理方式來看,所有Tilcon的控件交互事件在一個循環(huán)任務(wù)中來完成,無論系統(tǒng)中有多少個任務(wù)、多少窗口和控件。Tilcon人機交互處理方式如圖3所示。如果基于Tilcon建立多任務(wù)系統(tǒng),每個任務(wù)多個窗口,每個窗口包含多個控件的話,具有以下明顯不足:
1)體系結(jié)構(gòu)不好,由于所有任務(wù)的人機交互處理在Tilcon主任務(wù)中完成,功能任務(wù)之間耦合緊密,不利于任務(wù)的獨立設(shè)計、維護和移植。
2)Tilcon人機交互處理任務(wù)軟件規(guī)模將過于龐大,人機交互事件的處理過于復(fù)雜。
3)由于Tilcon采用循環(huán)方式來處理人機交互事件,所以從本質(zhì)上來說Tilcon串行處理所有的人機交互事件。如果前面的人機交互處理時間較長,則直接影響到后續(xù)人機交互響應(yīng)的實時性。
4)在Tilcon人機交互處理任務(wù)中完成各個任務(wù)的人機交互處理,如圖3所示。人機交互處理在Tilcon任務(wù)中,其他功能模塊在任務(wù)中,不利于任務(wù)的模塊后、構(gòu)件化設(shè)計,不便于系統(tǒng)的功能擴展和伸縮配置。
指控系統(tǒng)顯控設(shè)備一般都配置專用功能鍵、非標數(shù)字小鍵盤、專用觸摸屏/觸摸板等人機交互設(shè)備,作為窗口控件操作的快捷或備用輸入手段。但由于Tilcon主任務(wù)無法處理這些設(shè)備操控事件,需重復(fù)配置這些操控事件的處理模塊,帶來了系統(tǒng)功能代碼的重復(fù)。
圖3 Tilcon多任務(wù)人機交互處理示意圖
軟件架構(gòu)反映了軟件系統(tǒng)構(gòu)成要素、構(gòu)成要素之間的相互關(guān)系。好的軟件架構(gòu)應(yīng)用以下幾個基本特征[8]:
1)結(jié)構(gòu)清晰、易于理解。軟件架構(gòu)具有層次性,不同層次組件具有依賴關(guān)系,同層組件關(guān)系簡單,耦合松散。
2)易于維護、升級。同層組件之間的松耦合特性使得應(yīng)用需求發(fā)生變化、需要升級或增加新的組件時,不會對整個架構(gòu)和其他組件帶來影響。
3)具有較好的移植性。層次化軟件架構(gòu)帶來了軟件較好的適應(yīng)性。軟件從一個平臺移植到另一個平臺時,只需把平臺緊密相關(guān)的層次升級或替換即可,不會影響業(yè)務(wù)處理層次的組件。
在對指控系統(tǒng)任務(wù)和人機交互事件進行深入分析基礎(chǔ)上,采用層次化、組件件化設(shè)計思想,建立了基于Tilcon的多輸入、多任務(wù)人機交互處理模型,如圖4所示。
該模型最上層為功能任務(wù)層。任務(wù)功能完整、可獨立設(shè)計、開發(fā)和維護,便于采用構(gòu)件化思想進行開發(fā)。各任務(wù)可通過信號量、事件或消息通信等方式響應(yīng)人機交互通用中間件的人機交互輸入命令。
人機交互通用中間件位于功能任務(wù)和交互設(shè)備預(yù)處理中間層,響應(yīng)Tilcon、數(shù)字小鍵盤、觸摸屏等人機交互輸入事件,并規(guī)范化交互方式,匹配人機交互輸入和相應(yīng)的任務(wù),啟動任務(wù)進行處理人機交互事件。中間件和功能任務(wù)之間采用規(guī)范化交互方式,可以屏蔽底層人機交互輸入的差異性,方便系統(tǒng)功能的擴展和功能任務(wù)的移植,具有較好的開放性和兼容性。
圖4 基于Tilcon的多輸入、多任務(wù)人機交互處理模型
層次化的人機交互模型把人機交互處理功能模塊配置在對應(yīng)的任務(wù)中,輸入設(shè)備預(yù)處理和人機交互中間件只是簡單處理、分發(fā)人機交互信息,整個系統(tǒng)結(jié)構(gòu)清晰,人機交互效率較高,可有效保證系統(tǒng)人機交互的實時性。
不失一般性,利用信號量同步機制[9],給出了基于Tilcon的人機交互設(shè)計實例。信號量機制不具備參數(shù)傳遞能力,所以設(shè)計了一個規(guī)范化的信息交互數(shù)據(jù)結(jié)構(gòu),實現(xiàn)人機交互中間件和功能任務(wù)之間的事件信息的交互。信息交互數(shù)據(jù)結(jié)構(gòu)C語言定義示例如下:
為規(guī)范信息交互結(jié)構(gòu)中各參數(shù)含義,可以使用宏方式定義,在人機交互中間件和各服務(wù)模塊中包含此宏定義。如果參數(shù)含義改變,只需要直接改變宏定義即可。
Tilcon任務(wù)(或其他輸入設(shè)備)預(yù)處理完畢后,啟動人機交互中間件,人機交互中間件完成交互信息的規(guī)范化后,釋放信號量啟動功能任務(wù)處理模塊:
Tilcon是嵌入式系統(tǒng)下主流的人機交互界面設(shè)計工具,由于Tilcon在主任務(wù)中完成人機交互事件的處理,不適于實現(xiàn)多輸入、多任務(wù)人機交互界面的設(shè)計。通用多輸入、多任務(wù)人機交互處理模型降低了功能任務(wù)和Tilcon處理任務(wù)的耦合度,提高了系統(tǒng)的結(jié)構(gòu)化水平和人機交互實時性,有利于實現(xiàn)功能任務(wù)的構(gòu)件化設(shè)計,下一步有待開展指控系統(tǒng)下功能任務(wù)的構(gòu)件化實現(xiàn)研究。
[1]趙祖銘.潛艇指控系統(tǒng)技術(shù)和發(fā)展分析[J].指揮控制與仿真,2007,29(2):1-8.
[2]侯小鵬,譚顯春,秦克.基于Tilcon 的交互式多頁面的設(shè)計[J]. 微計算機信息,2010, 26 (52):84-85.
[3]張加林,李松,汪高武,等. 基于Tilcon的VxWorks圖形界面開發(fā)技術(shù)[J].指揮控制與仿真,2007,29(5):100-103.
[4]劉炳鋒,李江紅,等.基于Tilcon的某武器顯控系統(tǒng)界面設(shè)計[J]. 計算機測量與控制,2008,16(8):1153-1154.
[5]Wind River Systems Inc. WindML DDK 3.0 PROGRAMMER’S GUIDE[R]. 2002.
[6]Tilcon SoftWare White Paper[Z]. Canada: Tilcon Software Ltd,2003.
[7]韓改寧,李永鋒.基于嵌入式的Tilcon 用戶圖形界面設(shè)計與開發(fā)[J]. 現(xiàn)代電子技術(shù),2009,16(3):51-53.
[8]祖兆研.基于插件技術(shù)的軟件架構(gòu)設(shè)計及應(yīng)用[D].南京:河海大學(xué)碩士學(xué)位論文, 2007.
[9]孔祥營,柏桂枝.嵌入式實時操作系統(tǒng) VxWork及其開發(fā)環(huán)境[M]. 北京: 中國電力出版社,2002.