《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 衛(wèi)星地面測試系統(tǒng)Android平臺客戶端研究
衛(wèi)星地面測試系統(tǒng)Android平臺客戶端研究
來源:微型機與應用2012年第24期
李博寧, 馮文全
(北京航空航天大學 電子信息工程學院,北京100191)
摘要: 基于ICE中間件的衛(wèi)星地面測試系統(tǒng)充分利用ICE中間件分布式、跨平臺和跨語言的特點,采用客戶端/服務器構架,實現(xiàn)了衛(wèi)星測試業(yè)務軟件部分的各項功能,提供對系統(tǒng)運行狀態(tài)的全面監(jiān)控。提出了一種Android平臺客戶端解決方案,運行于測試設備中獨立的嵌入式監(jiān)控板卡之上,通過與設備ARM-Linux平臺服務器端業(yè)務板卡的通信,實現(xiàn)對測試設備業(yè)務運行情況的監(jiān)視和控制。
Abstract:
Key words :

摘  要: 基于ICE中間件衛(wèi)星地面測試系統(tǒng)充分利用ICE中間件分布式、跨平臺和跨語言的特點,采用客戶端/服務器構架,實現(xiàn)了衛(wèi)星測試業(yè)務軟件部分的各項功能,提供對系統(tǒng)運行狀態(tài)的全面監(jiān)控。提出了一種Android平臺客戶端解決方案,運行于測試設備中獨立的嵌入式監(jiān)控板卡之上,通過與設備ARM-Linux平臺服務器端業(yè)務板卡的通信,實現(xiàn)對測試設備業(yè)務運行情況的監(jiān)視和控制。
關鍵詞: 衛(wèi)星地面測試; 嵌入式系統(tǒng); ICE中間件; Android 應用程序

    衛(wèi)星地面測試是衛(wèi)星研制過程中的重要環(huán)節(jié),對其系統(tǒng)功能驗證及性能評估具有重要作用。傳統(tǒng)的衛(wèi)星地面測試設備大多采用工控機平臺,其軟件部分運行于Windows操作系統(tǒng),通過PCI總線與硬件板卡進行通信,完成各種測試功能并對系統(tǒng)運行狀況進行監(jiān)控[1]。隨著嵌入式技術的不斷成熟與發(fā)展,采用ARM-Linux平臺的嵌入式系統(tǒng)取代原有工控機平臺,可實現(xiàn)測試設備的小型化和低功耗[2]。借助于ICE中間件的跨平臺、跨語言、屏蔽底層通信等特性,開發(fā)出一套適用于衛(wèi)星測試業(yè)務的軟件框架,采用客戶端/服務器構架,可組成一個分布式測試系統(tǒng)[3]。本文提出了一種Android平臺客戶端解決方案,運行于設備內部獨立的嵌入式監(jiān)控板卡之上,通過與設備ARM-Linux平臺服務器端業(yè)務板卡的通信,實現(xiàn)了對測試設備的監(jiān)控功能。
1 基于ICE中間件的衛(wèi)星地面測試系統(tǒng)
    基于ICE中間件的衛(wèi)星地面測試系統(tǒng)典型結構如圖1所示。服務器端按照面向服務(SOA)的思想設計,每個服務內部實現(xiàn)相對獨立的業(yè)務邏輯,并對外提供形式統(tǒng)一的功能調用接口,包括通信的機制和內容。客戶端可通過定義的標準方法獲取某個功能服務器所能提供的所有服務的列表,以及特定服務的使用方法。

    上述系統(tǒng)中,前端測試單元通過多樣的測試接口對衛(wèi)星遙測、遙控及姿勢等各種信號及數(shù)據(jù)進行測試和采集,并對測試數(shù)據(jù)分析整理形成各種主題的數(shù)據(jù)報告,供客戶端監(jiān)視。客戶端可對系統(tǒng)各工作參數(shù)進行設置,并發(fā)送遙控指令引導星上機構執(zhí)行相應動作。該系統(tǒng)依托ICE中間件技術,解耦合測試系統(tǒng)中各服務單元間的關聯(lián),從而實現(xiàn)數(shù)據(jù)的高效發(fā)布;同時利用ICEGrid實現(xiàn)目標服務器的動態(tài)定位、冗余及負載均衡。
    系統(tǒng)服務器端采用標準C++語言開發(fā),利用語言本身及ICE中間件的跨平臺特性,可運行于X86、ARM等不同平臺,通過底層驅動程序實現(xiàn)與硬件模塊的通信,完成特定業(yè)務功能??蛻舳瞬糠滞ㄟ^對服務器端各服務對象的訪問,實現(xiàn)對服務器端的監(jiān)控功能。借助于ICE跨語言的特性,可采用不同編程語言開發(fā)客戶端接口,并進一步封裝實現(xiàn)與服務器端通信,進而采用不同的界面開發(fā)技術實現(xiàn)不同的用戶體驗。例如,若采用PC機作為監(jiān)控終端,則可選擇C++、python等語言開發(fā)客戶端接口,采用VC++、wxpython等工具實現(xiàn)人機交互界面,組成分布式監(jiān)控終端。
    對于嵌入式測試設備,也希望提供類似于工控機設備的液晶屏顯示面板,對系統(tǒng)的運行狀況進行實時監(jiān)控。液晶屏程序最直觀的實現(xiàn)方式仍然是作為系統(tǒng)的客戶端部分運行,相對于上述的分布式監(jiān)控終端,液晶屏程序由于與服務器端運行在同一臺測試設備,因此可看做本地客戶端。
    具體實現(xiàn)過程中,采用Android應用程序進行客戶端界面開發(fā),調用Java版客戶端接口完成與服務器端的通信[4]。由于Android平臺對處理器要求較高,故采用獨立的嵌入式板作為客戶端運行平臺,選用三星S5PV210處理器,液晶屏采用7寸多點觸控電容屏。服務器端運行于ARM-Linux平臺,處理器為三星S3C6410,兩塊嵌入式板在機箱內部用網(wǎng)線連接。相比于傳統(tǒng)的工控機平臺,此設計不僅從邏輯上將監(jiān)控部分與業(yè)務處理邏輯分離,更從硬件角度將二者分開,進一步降低了不同功能模塊間的耦合。設備對外提供標準測試接口、網(wǎng)口以及觸摸屏,實現(xiàn)了更加優(yōu)質的人機交互和用戶體驗。
2 關鍵技術應用
2.1 Java語言客戶端接口

    Slice(Specification Language for ICE) 是一種使對象接口與其實現(xiàn)相分離的基礎性抽象機制[5]。它定義了ICE對象接口、操作,以及客戶端與服務器間交換的數(shù)據(jù)類型。編譯生成的Java版客戶端接口還需要進一步完成其功能的實現(xiàn),主要包括客戶端對服務器端對象代理的訪問、對服務功能的調用以及注冊到中心的數(shù)據(jù)報告等。對客戶端而言,代理即ICE對象的本地代表。代理所封裝的信息包括:(1)尋址信息:用于讓客戶端運行時聯(lián)系正確的服務器。(2)對象標識:用于確定服務器中的哪一個對象是請求的目標可選標識符[6]。
    服務器端與客戶端的連接關系如圖2所示,客戶端接口通過服務對象管理器實現(xiàn)對遠程服務對象的訪問。經(jīng)過封裝的接口部分,對外提供客戶端連接管理、服務對象列表、各服務的功能調用以及各服務數(shù)據(jù)報告的處理函數(shù)等功能,供各種基于Java語言的界面開發(fā)技術(如Android、JSP+HTML+JavaScript)調用。

2.2 可定制Android界面
    客戶端為界面開發(fā)人員提供各種類型的常用控件,開發(fā)人員可根據(jù)需要定制不同的監(jiān)控頁面。頁面信息采用XML格式存儲,每一個標簽頁節(jié)點內可定義各種不同的控件,每個控件節(jié)點內包含該控件的類型、位置、尺寸、顏色、數(shù)制等信息。每一個控件需要分配一個唯一的ID??蛻舳丝蚣茉趩右粋€項目時將根據(jù)從上述配置文件中解析出的信息繪制界面內容,并通過控件ID完成與邏輯部分所調用控件資源的映射。
2.3 客戶端框架設計

 


    客戶端軟件作為一個相對獨立的框架,其本身并不提供某種特定的業(yè)務邏輯功能。開發(fā)人員可根據(jù)各自業(yè)務的不同需求,編寫相應的邏輯功能代碼。代碼中需定義一套本地資源列表,以完成對遠程服務的功能調用,并接收來自不同服務的各種數(shù)據(jù)報告;代碼中還應定義一套顯示界面列表,用于指定與業(yè)務邏輯相關的界面控件資源。上述代碼以JAR包的形式生成,供客戶端框架調用??蛻舳说墓δ転椋?1)將上述本地資源列表與服務器端提供的資源列表進行映射; (2)將上述界面資源列表與本地控件ID進行映射; (3)通過項目名稱加載并運行相應的JAR包,實現(xiàn)特定的邏輯功能。
    上述映射列表以及服務器端連接信息存儲于不同的項目文件當中,用戶可根據(jù)需要,運行不同的項目。這種方法將顯示界面與業(yè)務邏輯分離,通過項目配置將二者整合在一起,實現(xiàn)了客戶端的框架化設計。
    本文介紹了一種基于ICE中間件的Android平臺客戶端解決方案。該方案通過與服務器端程序的通信,實現(xiàn)了對衛(wèi)星地面測試設備的監(jiān)視與控制。該客戶端采用框架化設計,可定制顯示界面,適用于不同業(yè)務需求,為實現(xiàn)嵌入式測試設備的監(jiān)控功能提供了一種可選方案。
參考文獻
[1] 楊柳青.衛(wèi)星數(shù)管分系統(tǒng)地面設備總控軟件的設計與實現(xiàn)[D].北京:北京航空航天大學,2010.
[2] 李善平,劉文峰,王煥龍,等. Linux與嵌入式系統(tǒng)[M].北京:清華大學出版社,2006.
[3] 蔡佳成.基于ICE中間件的分布式網(wǎng)絡安全系統(tǒng)的研究與設計[D]. 北京:北京郵電大學,2009.
[4] 王向輝,張國印,沈潔.Android應用程序開發(fā)[M].北京:清華大學出版社,2010.
[5] MICHI H. A new approach to object-oriented middleware[J]. IEEE Computer Society, January~February 2004:66-75.
[6] ZeroC. Distributed programming with Ice 3.4.2[M/OL].http:
     //zeroc.com/doc/index.html.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。