王百彥,李超,趙淑敏,李明亮,劉生雲(yún)
(西昌衛(wèi)星發(fā)射中心,西昌615000)
近年來,隨著航天發(fā)射任務(wù)密度持續(xù)新高,在發(fā)射周期多則一個(gè)月,少則15 天的狀態(tài)下,數(shù)據(jù)處理軟件技術(shù)狀態(tài)轉(zhuǎn)換頻繁,維護(hù)周期短,對(duì)崗位人員的能力素質(zhì)提出了更高的要求,人員壓力日益增大,軟件質(zhì)量要求越來越高。如何能夠利用計(jì)算機(jī)輔助平臺(tái)實(shí)現(xiàn)軟件配置的自動(dòng)識(shí)別和一鍵化維護(hù)顯得尤為重要。本文根據(jù)自身多年航天發(fā)射數(shù)據(jù)處理軟件運(yùn)維經(jīng)驗(yàn),在熟知數(shù)據(jù)處理軟件運(yùn)維特點(diǎn)的基礎(chǔ)上,使用Microsoft Visual Studio 平臺(tái)中的Microsoft.Office.Interop.Word 組件,實(shí)現(xiàn)對(duì)任務(wù)資料的狀態(tài)變化識(shí)別和特征提取,完成數(shù)據(jù)處理軟件的運(yùn)維工作。
目前,航天發(fā)射數(shù)據(jù)處理軟件的狀態(tài)變化識(shí)別所依據(jù)的資料主要有5 份,且均為Word 文檔,具體如表1 所示。
表1 數(shù)據(jù)處理軟件狀態(tài)變化識(shí)別依據(jù)資料表
(1)資料1:主要約定本次任務(wù)的任務(wù)標(biāo)志、信息標(biāo)識(shí)、火箭型號(hào)、衛(wèi)星狀態(tài)、火箭發(fā)射軌道主要特征點(diǎn)參數(shù)等。
(2)資料2:主要約定本次任務(wù)遙測參數(shù)的處理方法、碼速率、波道號(hào)、位序等。
(3)資料3:主要約定本次任務(wù)的任務(wù)代號(hào)、發(fā)射工位、火箭型號(hào)、遙測參數(shù)、參試設(shè)備站址坐標(biāo)等。
(4)資料4:主要約定本次任務(wù)的任務(wù)標(biāo)志、信息標(biāo)識(shí)、設(shè)備選優(yōu)組合等。
(5)資料5:主要約定本次任務(wù)中心機(jī)發(fā)往顯示系統(tǒng)的數(shù)據(jù)包協(xié)議、信息傳輸格式等。
在Microsoft Visual Studio 2010 平臺(tái)中,通過加載Microsoft.Office.Interop.Word 組件可以實(shí)現(xiàn)對(duì)Word 文檔內(nèi)容的讀取工作,具體實(shí)施步驟如下:
(1)在工程項(xiàng)目的引用中單擊鼠標(biāo)右鍵,選擇“添加引用”選項(xiàng),在彈出的對(duì)話框中選擇“Microsoft.Office.Interop.Word”,如圖1 所示。
圖1 添加Word組件
(2)在頭文件中添加Word 引用。
using Microsoft.Office.Interop.Word;
通過分析5 份資料的內(nèi)容發(fā)現(xiàn),所有信息點(diǎn)均以文本和表格兩種形式存在,為了便于后期對(duì)特征點(diǎn)的提取,首先將資料中的內(nèi)容以文本和表格兩種形式進(jìn)行讀取。Word 組件中提供了讀取這兩種數(shù)據(jù)的方法,具體如表2 所示。
表2 Word 文檔讀取方法表
通過以上方法可以實(shí)現(xiàn)資料內(nèi)容的讀取。
將以上讀取方法進(jìn)行封裝,方便對(duì)多個(gè)任務(wù)資料讀取時(shí)使用。
由于目前資料有5 份,通過定義數(shù)組類型,實(shí)現(xiàn)對(duì)多個(gè)資料內(nèi)容的讀取工作。
2.3.1 文本內(nèi)容識(shí)別
文本內(nèi)容可以通過匹配關(guān)鍵字進(jìn)行識(shí)別,例如要查找任務(wù)標(biāo)志碼,在資料4 的文本內(nèi)容中必有“任務(wù)標(biāo)志”關(guān)鍵字出現(xiàn),具體如圖2 所示。
圖2 任務(wù)資料文本內(nèi)容中的關(guān)鍵字
在程序中通過查找這樣的關(guān)鍵字,即可以找到任務(wù)標(biāo)志碼。
2.3.2 表格內(nèi)容識(shí)別
程序中讀取表格的功能屬性如表3 所示。
表3 讀取表格功能屬性表
一個(gè)標(biāo)準(zhǔn)的m*n 表格使用Cells 方法讀取的格式如圖3 所示,使用Cell 方法讀取的格式如圖4 所示。一個(gè)合并單元格的m*n 表格使用Cells 方法讀取的格式如圖5 所示,使用Cell 方法讀取的格式如圖6 所示。
圖3 標(biāo)準(zhǔn)表格使用Cells 方法讀取的格式
圖4 標(biāo)準(zhǔn)表格使用Cell 方法讀取的格式
圖5 合并單元格表格使用Cells 方法讀取的格式使用
圖6 合并單元格表格Cell 方法讀取的格式
從表可以看出一個(gè)m*n 的表格讀取時(shí)有如下特點(diǎn):
(1)單元格總數(shù)Cells.Count 小于或等于m*n,當(dāng)Cells.Count 等于m*n 時(shí),則該表格為標(biāo)準(zhǔn)表格;當(dāng)Cells.Count 小于m*n 時(shí),則該表格中有合并單元格格式;
(2)使用Cell(i,j)方法時(shí),需要配合表格行數(shù)Rows.Count 和表格列數(shù)Columns.Count 使用;
(3)按順序查找單元格時(shí),Cells[i]方法和Cell(i,j)的復(fù)雜度相同;
(4)當(dāng)Cells.Count 小于m*n 時(shí),使用Cell(i,j)方法通過行列循環(huán)查找時(shí),會(huì)出現(xiàn)數(shù)組越界錯(cuò)誤。
通過對(duì)所有任務(wù)資料中的表格分析發(fā)現(xiàn),需要識(shí)別的表格格式有3 種類型,具體詳見圖7 所示。
圖7 任務(wù)資料中表格樣式
針對(duì)不同的類型采用不同的方法,操作步驟如下:
(1)查找相關(guān)表
通過識(shí)別表中的特定格式、特定字符、唯一標(biāo)識(shí)等。a)~d)的識(shí)別點(diǎn)如表4 所示。
表4 表格內(nèi)關(guān)鍵字識(shí)別表
以查找a)表為例,查詢代碼如下:
(2)識(shí)別表格中內(nèi)容
a)表是將T 前面的序號(hào)按照大小順序提取出來。讀取方法如下:
b)表是通過參數(shù)代號(hào)提取理論值。讀取方法如下:
c)表是提取設(shè)備的站址坐標(biāo)。讀取方法如下:
本文介紹了航天發(fā)射數(shù)據(jù)處理軟件維護(hù)依據(jù)任務(wù)資料情況及Word 文檔加載讀取方法,通過研究各配置項(xiàng)配置文件的特點(diǎn)和維護(hù)點(diǎn)需求,采用程序直接讀取任務(wù)文書的方式實(shí)現(xiàn)配置文件的一鍵化維護(hù),有效地提高了軟件維護(hù)效率和維護(hù)質(zhì)量,極大的節(jié)約了人力資源成本,也為其他有軟件維護(hù)需求的單位提供借鑒。