劉竹濤
(民航黑龍江空中交通管理分局,黑龍江 哈爾濱 150079)
基于Delphi的航空氣象設(shè)備管理系統(tǒng)開發(fā)
劉竹濤
(民航黑龍江空中交通管理分局,黑龍江 哈爾濱 150079)
本文介紹了D e l p h i數(shù)據(jù)庫的體系結(jié)構(gòu),闡述了基于D e l p h i開發(fā)平臺對航空氣象設(shè)備管理系統(tǒng)的設(shè)計思路、開發(fā)過程以及關(guān)鍵功能的技術(shù)實現(xiàn)。
D e l p h i;數(shù)據(jù)庫;航空氣象設(shè)備
目前,航空氣象事業(yè)正處于快速發(fā)展階段,多種氣象探測技術(shù)的應(yīng)用使得航空氣象設(shè)備呈多元化發(fā)展趨勢,這給航空氣象設(shè)備的維護人員提出了更高的挑戰(zhàn)。當(dāng)前,所投入運行的航空氣象設(shè)備涵蓋面很廣,包括自動氣象觀測系統(tǒng)、氣象數(shù)據(jù)庫系統(tǒng)、多普勒天氣雷達、衛(wèi)星云圖接收系統(tǒng)、風(fēng)廓線雷達等多套大型系統(tǒng)[1],涉及到多種專業(yè)學(xué)科,設(shè)備維護人員很難全面掌握所有系統(tǒng)的專業(yè)知識,這給航空運輸帶來一定的安全隱患。因此根據(jù)自身的需要,設(shè)備維護人員利用Delphi平臺開發(fā)了航空氣象設(shè)備管理系統(tǒng),該系統(tǒng)可以高效快捷地管理航空氣象設(shè)備,為設(shè)備維護人員提供強有力的技術(shù)支持。該系統(tǒng)是基于Delphi開發(fā)數(shù)據(jù)庫應(yīng)用程序來完成的。
Delphi具有強大的數(shù)據(jù)庫應(yīng)用程序開發(fā)功能,它能適應(yīng)各種大型數(shù)據(jù)庫。Delphi數(shù)據(jù)庫應(yīng)用程序基于Borland強大的數(shù)據(jù)庫引擎(BDE),流行的數(shù)據(jù)庫接口和豐富的數(shù)據(jù)庫組件,利用Delphi開發(fā)數(shù)據(jù)庫應(yīng)用程序,非常高效方便。Delphi的數(shù)據(jù)庫應(yīng)用程序不能直接訪問數(shù)據(jù),而是使用附帶的BDE、ADO接口或ODBC接口等來對數(shù)據(jù)庫資源進行訪問。
開發(fā)Delphi數(shù)據(jù)庫應(yīng)用程序主要是掌握數(shù)據(jù)庫組件的使用方法,這些組件可以分為兩類:一類是數(shù)據(jù)庫的數(shù)據(jù)訪問組件(Data Access組件);另一類是數(shù)據(jù)庫的數(shù)據(jù)控制組件(Data Control類組件)。Data Access組件負責(zé)與BDE(或ADO等)進行數(shù)據(jù)交換,它首先通過BDE(或ADO等)將數(shù)據(jù)庫文件的數(shù)據(jù)提供給應(yīng)用程序,然后將被修改過的數(shù)據(jù)經(jīng)BDE(或ADO等)傳送到數(shù)據(jù)庫文件中。與BDE(或ADO等)直接打交道的是DataSet組件(如Table、Query等),每個DataSet組件都與一個數(shù)據(jù)庫文件鏈接,并且為DataSource組件提供數(shù)據(jù)。DataSource組件負責(zé)將DataSet組件與Data Control類組件鏈接起來,它首先從DataSet組件中接收數(shù)據(jù),然后再傳遞給Data Control類組件,待用戶查詢或修改完數(shù)據(jù)后,再把被修改的數(shù)據(jù)經(jīng)DataSet組件傳給BDE(或ADO等),由BDE(或ADO等)將數(shù)據(jù)返回到數(shù)據(jù)庫文件。
該系統(tǒng)采用前臺設(shè)備拓撲圖與后臺數(shù)據(jù)庫相連接的設(shè)計理念,通過點擊拓撲圖中的設(shè)備圖標(biāo)來從后臺的數(shù)據(jù)庫中調(diào)取該設(shè)備的所有技術(shù)資料,從而非常直觀高效地管理設(shè)備。
3.1 前臺設(shè)備拓撲圖的設(shè)計
前臺設(shè)備拓撲圖的展示采用單窗體多頁面設(shè)計,分為整體氣象設(shè)備綜合拓撲圖顯示和各分系統(tǒng)單獨拓撲圖顯示的結(jié)構(gòu)。綜合顯示分頁將所有的機場氣象設(shè)備以及線路連接展現(xiàn)在設(shè)備維護人員面前,可以非常直觀地詮釋各套氣象設(shè)備之間的相關(guān)性、各系統(tǒng)之間調(diào)用數(shù)據(jù)的流程以及線路的走向,這樣為設(shè)備維護人員提供了強有力的技術(shù)支持。為了能更加清晰地反映出各分系統(tǒng)的獨立性,設(shè)計者用8個分頁面分別顯示8套獨立的氣象設(shè)備的拓撲圖,如圖1,這樣可以使維護人員更加快捷地找到自己所需要的技術(shù)資料。
拓撲圖的繪制采用管理系統(tǒng)與用戶交互方式,利用空白底圖作為交互界面,用戶通過交互界面進入繪制模式,將Delphi的Image控件的屬性數(shù)據(jù)和所要繪制線段的屬性數(shù)據(jù)寫入后臺數(shù)據(jù)庫中,啟動程序后通過對數(shù)據(jù)庫的循環(huán)讀取動態(tài)加載設(shè)備圖片和連接線路,并賦值所生成圖片的各種操作屬性,如OnClick屬性、OnMouseDown屬性、OnMouseEnter屬性、OnMouseLeave屬性等。動態(tài)加載生成圖片是為了依照用戶的不同需求更加靈活地繪制拓撲圖,因此該軟件可以用于不同機場不同氣象設(shè)備的拓撲圖的繪制,從而增強了該軟件的可移植性,可以在多個機場進行推廣使用。
圖1 民航氣象設(shè)備拓撲圖
3.2 后臺數(shù)據(jù)庫的設(shè)計
后臺數(shù)據(jù)庫采用的是Access數(shù)據(jù)庫[3]。在后臺數(shù)據(jù)庫中建立9個設(shè)備列表和9個線路列表來對應(yīng)前臺的1個綜合系統(tǒng)拓撲圖分頁面和8個分系統(tǒng)拓撲圖分頁面,如圖2。以設(shè)備綜合列表為例,該表結(jié)構(gòu)有90多個字段,這些字段分為幾類:第一類是拓撲圖中與實際設(shè)備對應(yīng)的設(shè)備圖片屬性的字段,如圖片在程序中的Name值、Left值、Top值、Width值、Height值、實際加載圖片的文件名,這些值的類型都有嚴(yán)格的規(guī)定,否則程序會出錯;第二類是圖片對應(yīng)設(shè)備的屬性字段:如設(shè)備的名稱、所屬系統(tǒng)的名稱、IP地址、是否監(jiān)控、繪圖策略(多項,用于故障分析時設(shè)備的標(biāo)識);第三類是設(shè)備的故障分析和技術(shù)檔案內(nèi)容的存儲字段。
圖2 后臺數(shù)據(jù)庫
在8套分系統(tǒng)對應(yīng)的每個分頁面中,設(shè)計了“故障處理”、“案例分析”、“應(yīng)急預(yù)案”、“備件管理”和“設(shè)備履歷”等欄目,這樣與后臺數(shù)據(jù)庫中的40個列表相對應(yīng)。
3.3 前臺拓撲圖與后臺數(shù)據(jù)庫相連接
首先,創(chuàng)建一個ADOConnection組件ADOConnection1,在程序中將數(shù)據(jù)庫的地址動態(tài)賦給ADOConnection1的ConnectionString屬性值,這樣在程序啟動時ADOConnection1就可以連接到數(shù)據(jù)庫上;第二,創(chuàng)建若干個ADOQuery組件ADOQuery1、ADOQuery2…,ADOQuery組件的Connection屬性值設(shè)置為ADOConnection1,這樣若干個ADOQuery組件就與ADOConnection1相連接,使用ADOQuery.SQL.Add()語句將某個ADOQuery組件與數(shù)據(jù)庫中的某個列表相連接,例如ADOQuery1.SQL.Add('select*from設(shè)備列表'),ADOQuery1就與“設(shè)備列表”相連接了;第三,創(chuàng)建若干Data-Source組件DataSource1、DataSource2…,將DataSource1的DataSet屬性值設(shè)置為ADOQuery1,這樣DataSource1就與ADOQuery1相連接了,其余以此類推;第四,在分頁面上創(chuàng)建Data Control類組件若干DBGrid和若干DBMemo,將DBGrid1的DataSource屬性設(shè)置為DataSource1,這樣DBGrid1就與DataSource1相連接了,這樣通過數(shù)據(jù)傳遞,DBGrid1中就可以顯示出“設(shè)備列表”的數(shù)據(jù)了,將DBMemo1的Data-Source屬性設(shè)置為DataSource1,將DBMemo1的DataField屬性設(shè)置成“設(shè)備列表”中某一字段的名稱(該字段為備注類型),這樣DBMemo1就可以顯示“設(shè)備列表”中備注類型字段的文字說明部分了。
3.4 設(shè)備管理輔助功能的實現(xiàn)
3.4.1 快速查找設(shè)備技術(shù)資料
該管理系統(tǒng)可以更加直觀快速地查找設(shè)備技術(shù)資料。在Image組件的Onclick事件中寫入語句調(diào)取該設(shè)備在數(shù)據(jù)庫中的相應(yīng)記錄,并在DBGrid中定位在該記錄上,同時DBMemo中顯示該記錄備注字段的信息。點擊設(shè)備拓撲圖中的設(shè)備圖片,直接跳轉(zhuǎn)到DBGrid顯示與該圖片對應(yīng)的當(dāng)前記錄,同時DBMemo顯示與圖片對應(yīng)設(shè)備的詳細技術(shù)資料。
3.4.2 設(shè)備的網(wǎng)絡(luò)實時監(jiān)控的實現(xiàn)
將需要網(wǎng)絡(luò)監(jiān)控的設(shè)備記錄在“是否監(jiān)控”字段置為1,應(yīng)用Timer組件定時進行網(wǎng)絡(luò)掃描,判斷被監(jiān)控設(shè)備的網(wǎng)絡(luò)連接情況。在Timer組件的OnTimer事件中寫入語句,對全體設(shè)備列表做循環(huán)判斷,當(dāng)某條記錄的“是否監(jiān)控”字段為1時,讀取該條記錄的“IP地址”字段值,應(yīng)用PingServer()函數(shù)對該IP地址的網(wǎng)絡(luò)連接情況進行判斷,如果網(wǎng)絡(luò)連接異常,則通過圖片標(biāo)注、文字和聲音進行提示。
3.4.3 拓撲圖中線路連接與數(shù)據(jù)走向的顯示
在復(fù)雜的網(wǎng)絡(luò)拓撲圖中,如果要想清晰地反映一套分系統(tǒng)在拓撲圖中的數(shù)據(jù)走向,則需要在連接設(shè)備之間的線路上增加箭頭標(biāo)識來指示數(shù)據(jù)的走向。該程序設(shè)計了6種箭頭標(biāo)識,分別是向左、向右、向上、向下、左右雙向和上下雙向(分別對應(yīng)數(shù)值0-5)。線路列表中設(shè)計了線路名稱、起點左坐標(biāo)、起點上坐標(biāo)、終點左坐標(biāo)、終點上坐標(biāo)、線路顏色、線路寬度、線路風(fēng)格(實線或虛線)以及數(shù)據(jù)流向等字段。當(dāng)程序啟動時,循環(huán)讀取線路列表中的每條記錄,將每條記錄中各字段的值賦值到以下各語句中Image.Canvas.MoveTo(起點左坐標(biāo),起點上坐標(biāo))、Image.Canvas.LineTo(終點左坐標(biāo),終點上坐標(biāo))、Image.Canvas.Pen.Style、Image.Canvas.Pen.Width、Image.Canvas.Pen.Color等來繪制線路。在繪制線路的同時,判斷該條記錄中“數(shù)據(jù)流向”字段的數(shù)值在該線路上繪制相應(yīng)方向的箭頭標(biāo)識。
航空氣象設(shè)備管理系統(tǒng)的開發(fā)對氣象設(shè)備維護人員意義重大,它為氣象設(shè)備維護人員提供了強有力的技術(shù)支持。目前,國內(nèi)各機場氣象臺還沒有相關(guān)系統(tǒng)實施,該系統(tǒng)填補了這項空白,該系統(tǒng)可移植性強,可在各地機場氣象設(shè)備部門推廣使用,為航空氣象服務(wù)提供更加可靠的保障。
[1]劉竹濤.航空氣象信息系統(tǒng)的構(gòu)建方法[J].計算機與網(wǎng)絡(luò),2012 (22):54-56.
[2]張世明.D e l p h i程序設(shè)計基礎(chǔ)[M].北京:電子工業(yè)出版社,2010.
[3]Michael Alexander,Dick Kusleika.中文版Access2016 寶典[M].張洪波譯.北京:清華大學(xué)出版社,2016.
The Development of theAviation Meteorological Equipment Management System Based on Delphi
Liu Zhutao
(CivilAviation of HeilongjiangAir Traffic Management Bureau,Harbin 150079,Heilongjiang)
tract】 This paper introduces the system structure of Delphi database;elaborates the design ideas,development process and the realization of key functions of the aviation meteorological equipment management system based on Delphi.
words】 Delphi;database;aviation meteorological equipment
TP393
A
1008-6609(2017)04-0041-03
劉竹濤(1971-),男,福建福州人,碩士,高級工程師,研究方向為計算機應(yīng)用。