朱 偉,許春雷,孔 軍
(江蘇自動化研究所,江蘇 連云港 222006)
指揮控制系統作為作戰系統的核心子系統,是作戰信息處理中心和指揮員實施指揮的直接部位,通常需要同時完成情報綜合處理、作戰輔助決策、武器綜合控制等多個獨立功能[1]。實時多任務VxWorks操作系統以其卓越的多任務事務處理能力已成為軍事指控控制領域中使用最廣泛的系統。近年來,由于指揮控制系統功能日趨復雜,對人機交互界面的實時性、靈活性、擴展性等提出了更高的要求。另一方面,所見即所得的Tilcon人機交互界面開發工具為嵌入式系統下的人機交互界面開發提供了簡便快捷的界面設計方式[2],但也存在著人機交互處理集中、任務之間耦合性強,無法兼容其他人機交互方式、實時性難以保證等不足。如何應用Tilcon設計多任務人機交互軟件,對于確保指控系統的實時性、擴展性,提高任務的可靠性、可移植性,促進指控系統下功能任務的構件化設計均具有重要意義。
Tilcon是wind River推出的多平臺用戶界面開發工具,具有功能齊全、界面美觀、使用方便的特點,支持Windows、VxWorks、Linux、QNX 等多種平臺。Tilcon人機交互界面開發環境提供了常用界面控件,用戶可以直接拖放控件到窗口上構造自己的圖形、表頁界面,實現了所見即所得的人機界面開發方式[3],已成為嵌入式系統下主流的人機交互界面開發工具。
Tilcon主要由三個組件構成[4],即人機交互界面運行引擎EVE、應用程序API接口函數和可視化人機交互界面開發環境,其組成及關系如圖1所示[5][6]。

圖1 Tilcon構成及關系圖
運行在嵌入式系統之上的EVE 是一個獨立于用戶應用程序的微內核, 以兩種方式管理所有的用戶界面顯示及人機交互事件: 1)執行應用程序的API 命令進行屏幕繪制;2)以事件、回調函數等形式處理操控消息,驅動應用程序運行。
API 是供用戶應用程序調用的一組基本函數,為EVE和用戶程序之間提供交互接口,用戶可以通過它動態地創建對象、修改對象屬性。
Tilcon 可視化界面開發環境集成了大量常用控件, 用戶通過拖拉控件來設計界面, tilcon界面采用平臺無關的二進制資源形式存儲,具有較好的移植性。
Tilcon通過一個循環任務來處理人機交互事件。任務初始化需要先后完成:1)調用TRT_Start接口函數來啟動tilcon圖形引擎;2)調用TRT_WindowLoad函數來加載 twd界面資源文件;3)調用TRT-WindowDisplay 函數人機交互圖形界面。初始化完成后調用 TRT_Getlnput函數建立主框架循環。TRT_Getlnput 函數處于等待狀態并實時接收、處理來自于Tilcon 引擎所傳遞的界面操控事件。Tilcon人機交互事件處理流程如圖2所示[7]。

圖2 Tilcon人機交互事件處理流程
從Tilcon的人機交互事件處理方式來看,所有Tilcon的控件交互事件在一個循環任務中來完成,無論系統中有多少個任務、多少窗口和控件。Tilcon人機交互處理方式如圖3所示。如果基于Tilcon建立多任務系統,每個任務多個窗口,每個窗口包含多個控件的話,具有以下明顯不足:
1)體系結構不好,由于所有任務的人機交互處理在Tilcon主任務中完成,功能任務之間耦合緊密,不利于任務的獨立設計、維護和移植。
2)Tilcon人機交互處理任務軟件規模將過于龐大,人機交互事件的處理過于復雜。
3)由于Tilcon采用循環方式來處理人機交互事件,所以從本質上來說Tilcon串行處理所有的人機交互事件。如果前面的人機交互處理時間較長,則直接影響到后續人機交互響應的實時性。
4)在Tilcon人機交互處理任務中完成各個任務的人機交互處理,如圖3所示。人機交互處理在Tilcon任務中,其他功能模塊在任務中,不利于任務的模塊后、構件化設計,不便于系統的功能擴展和伸縮配置。
指控系統顯控設備一般都配置專用功能鍵、非標數字小鍵盤、專用觸摸屏/觸摸板等人機交互設備,作為窗口控件操作的快捷或備用輸入手段。但由于Tilcon主任務無法處理這些設備操控事件,需重復配置這些操控事件的處理模塊,帶來了系統功能代碼的重復。

圖3 Tilcon多任務人機交互處理示意圖
軟件架構反映了軟件系統構成要素、構成要素之間的相互關系。好的軟件架構應用以下幾個基本特征[8]:
1)結構清晰、易于理解。軟件架構具有層次性,不同層次組件具有依賴關系,同層組件關系簡單,耦合松散。
2)易于維護、升級。同層組件之間的松耦合特性使得應用需求發生變化、需要升級或增加新的組件時,不會對整個架構和其他組件帶來影響。
3)具有較好的移植性。層次化軟件架構帶來了軟件較好的適應性。軟件從一個平臺移植到另一個平臺時,只需把平臺緊密相關的層次升級或替換即可,不會影響業務處理層次的組件。
在對指控系統任務和人機交互事件進行深入分析基礎上,采用層次化、組件件化設計思想,建立了基于Tilcon的多輸入、多任務人機交互處理模型,如圖4所示。
該模型最上層為功能任務層。任務功能完整、可獨立設計、開發和維護,便于采用構件化思想進行開發。各任務可通過信號量、事件或消息通信等方式響應人機交互通用中間件的人機交互輸入命令。
人機交互通用中間件位于功能任務和交互設備預處理中間層,響應Tilcon、數字小鍵盤、觸摸屏等人機交互輸入事件,并規范化交互方式,匹配人機交互輸入和相應的任務,啟動任務進行處理人機交互事件。中間件和功能任務之間采用規范化交互方式,可以屏蔽底層人機交互輸入的差異性,方便系統功能的擴展和功能任務的移植,具有較好的開放性和兼容性。

圖4 基于Tilcon的多輸入、多任務人機交互處理模型
層次化的人機交互模型把人機交互處理功能模塊配置在對應的任務中,輸入設備預處理和人機交互中間件只是簡單處理、分發人機交互信息,整個系統結構清晰,人機交互效率較高,可有效保證系統人機交互的實時性。
不失一般性,利用信號量同步機制[9],給出了基于Tilcon的人機交互設計實例。信號量機制不具備參數傳遞能力,所以設計了一個規范化的信息交互數據結構,實現人機交互中間件和功能任務之間的事件信息的交互。信息交互數據結構C語言定義示例如下:

為規范信息交互結構中各參數含義,可以使用宏方式定義,在人機交互中間件和各服務模塊中包含此宏定義。如果參數含義改變,只需要直接改變宏定義即可。
Tilcon任務(或其他輸入設備)預處理完畢后,啟動人機交互中間件,人機交互中間件完成交互信息的規范化后,釋放信號量啟動功能任務處理模塊:

Tilcon是嵌入式系統下主流的人機交互界面設計工具,由于Tilcon在主任務中完成人機交互事件的處理,不適于實現多輸入、多任務人機交互界面的設計。通用多輸入、多任務人機交互處理模型降低了功能任務和Tilcon處理任務的耦合度,提高了系統的結構化水平和人機交互實時性,有利于實現功能任務的構件化設計,下一步有待開展指控系統下功能任務的構件化實現研究。
[1]趙祖銘.潛艇指控系統技術和發展分析[J].指揮控制與仿真,2007,29(2):1-8.
[2]侯小鵬,譚顯春,秦克.基于Tilcon 的交互式多頁面的設計[J]. 微計算機信息,2010, 26 (52):84-85.
[3]張加林,李松,汪高武,等. 基于Tilcon的VxWorks圖形界面開發技術[J].指揮控制與仿真,2007,29(5):100-103.
[4]劉炳鋒,李江紅,等.基于Tilcon的某武器顯控系統界面設計[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 用戶圖形界面設計與開發[J]. 現代電子技術,2009,16(3):51-53.
[8]祖兆研.基于插件技術的軟件架構設計及應用[D].南京:河海大學碩士學位論文, 2007.
[9]孔祥營,柏桂枝.嵌入式實時操作系統 VxWork及其開發環境[M]. 北京: 中國電力出版社,2002.