仲崇文 宋永鵬
摘要 信息中心網(wǎng)絡(luò)運(yùn)行監(jiān)控崗位擔(dān)負(fù)著全省氣象信息資料收集上傳工作,國(guó)家站、區(qū)域站、高空資料、城鎮(zhèn)報(bào)等資料實(shí)時(shí)性、準(zhǔn)確性、及時(shí)性要求高,傳統(tǒng)人工查詢(xún)方式工作量大且易漏忘,為了簡(jiǎn)化工作量,提高上行資料傳輸?shù)目煽啃?、?zhǔn)確性開(kāi)發(fā)了本系統(tǒng)。本系統(tǒng)的開(kāi)發(fā)使用Delphi語(yǔ)言和Mysql數(shù)據(jù)庫(kù)的開(kāi)發(fā)環(huán)境,能夠及時(shí)準(zhǔn)確的提醒值班人員對(duì)各類(lèi)上行資料進(jìn)行監(jiān)控。
【關(guān)鍵詞】氣象信息 上行資料 監(jiān)控
目前,各類(lèi)氣象資料種類(lèi)日益增多,每個(gè)時(shí)次均有十幾種資料需要監(jiān)控,特別是國(guó)家站、高空?qǐng)?bào)、城鎮(zhèn)報(bào)等資料,實(shí)時(shí)性、可靠性、準(zhǔn)確性要求高,依靠人工監(jiān)控工作繁瑣,因此急需開(kāi)發(fā)一套能夠自動(dòng)對(duì)各類(lèi)氣象上行資料進(jìn)行監(jiān)控的系統(tǒng)。
1 界面和功能設(shè)計(jì)
Asm代表土壤水分資料;Dqcf代表大氣成分資料;Aws代表國(guó)家站資料;Caws代表區(qū)域站資料;Gps代表GPS資料;18Up代表高空資料2ISpce代表凌晨5點(diǎn)的城鎮(zhèn)報(bào)資料Radar代表雷達(dá)資料。
如果想查詢(xún)某種資料的到報(bào)情況,直接點(diǎn)擊該資料的按鈕即可顯示。當(dāng)某種資料告警時(shí),點(diǎn)擊“關(guān)閉”按鈕即可關(guān)閉該告警。
2 系統(tǒng)實(shí)現(xiàn)的流程
2.1 國(guó)家站數(shù)據(jù)的監(jiān)控
國(guó)家站數(shù)據(jù)監(jiān)控流程:Timer控件每分鐘執(zhí)行一次,當(dāng)時(shí)間指向每小時(shí)(世界時(shí))的08分時(shí),自動(dòng)觸發(fā)國(guó)家站數(shù)據(jù)監(jiān)控函數(shù)AwsCheck,并將AwsCheck函數(shù)的執(zhí)行結(jié)果取否返回給國(guó)家站數(shù)據(jù)監(jiān)控的Bo01類(lèi)型變量AwsBooI,這個(gè)Bo01類(lèi)型的變量就是決定監(jiān)控系統(tǒng)是否給出聲音報(bào)警的變量。
AwsCheck函數(shù)實(shí)現(xiàn)了如下功能:數(shù)據(jù)庫(kù)連接、Sql語(yǔ)句查詢(xún)、判斷到報(bào)數(shù)量、判斷是否達(dá)到聲音報(bào)警、將AwsCheck函數(shù)的結(jié)果返回給AwsBoo1變量、系統(tǒng)文本框提示到報(bào)情況等功能。
2.1.1數(shù)據(jù)庫(kù)的連接
CTS數(shù)據(jù)庫(kù)使用的是Mysql數(shù)據(jù)庫(kù),ADO連接Mysql數(shù)據(jù)庫(kù)是微軟提供的最有效和直接的方式。
連接在Open的時(shí)候會(huì)先執(zhí)行一個(gè)exception,如果連接失敗,說(shuō)明系統(tǒng)和數(shù)據(jù)庫(kù)的連接出現(xiàn)了問(wèn)題,就會(huì)終止AwsClleck函數(shù)后續(xù)的執(zhí)行,直接將AwsCheck函數(shù)的返回值設(shè)為False,進(jìn)行聲音的報(bào)警提示;如果連接成功才會(huì)執(zhí)行函數(shù)體后面的步驟。
2.1.2 數(shù)據(jù)庫(kù)的查詢(xún)
數(shù)據(jù)庫(kù)連接成功后,下一步驟就是編寫(xiě)Sql語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)。國(guó)家站數(shù)據(jù)的Sql語(yǔ)句的編寫(xiě)要實(shí)現(xiàn)的查詢(xún)條件包括:報(bào)文類(lèi)型編碼、發(fā)報(bào)目的地和發(fā)報(bào)時(shí)間。對(duì)應(yīng)到數(shù)據(jù)庫(kù)表的字段就是DATA TYPE C字段、SENDUSER字段和DETAIL HOUR字段。
2.1.3 到報(bào)數(shù)的判斷
數(shù)據(jù)庫(kù)查詢(xún)控件ADOQuery的RecordCount屬性的值,是符合Sql查詢(xún)語(yǔ)句條件的全部數(shù)據(jù)的數(shù)量。山東省考核的國(guó)家站是123個(gè)站,如果當(dāng)前時(shí)次的全部國(guó)家站數(shù)據(jù)都正常上傳國(guó)家局,經(jīng)由Sql語(yǔ)句返回的RecordCount的值就是123,通過(guò)RecordCount的值確定上傳國(guó)家局的臺(tái)站數(shù);但是并不只是通過(guò)這個(gè)值確定監(jiān)控系統(tǒng)是否需要聲音報(bào)警,有時(shí)個(gè)別氣象臺(tái)站會(huì)因?yàn)槌霈F(xiàn)機(jī)器故障或網(wǎng)絡(luò)故障,而在一段時(shí)間無(wú)法上傳氣象數(shù)據(jù),考慮到這些突發(fā)情況,就需要監(jiān)控系統(tǒng)做出提前的配置,監(jiān)控系統(tǒng)在初始化的時(shí)候會(huì)讀取ini.txt配置文件。
2.1.4 聲音報(bào)警的啟動(dòng)和關(guān)閉
Aws后面的數(shù)字3代表當(dāng)數(shù)據(jù)庫(kù)中符合條件的數(shù)據(jù)數(shù)量比全部考核站數(shù)少3個(gè)以上,就會(huì)發(fā)出聲音報(bào)警的提示。監(jiān)控系統(tǒng)在啟動(dòng)的時(shí)候會(huì)讀取ini.txt配置文件中的參數(shù),是在啟動(dòng)進(jìn)程FormCreate中編寫(xiě)代碼實(shí)現(xiàn)的,其中國(guó)家站的mi參數(shù)是3,為方便程序的使用,將國(guó)家站的參數(shù)賦值給count Aws。當(dāng)返回的RecordCount值和全部考核站數(shù)差值大于count Aws時(shí),AwsCheck函數(shù)會(huì)返回False,監(jiān)控系統(tǒng)就會(huì)啟動(dòng)聲音報(bào)警。
2.2 除國(guó)家站外多種數(shù)據(jù)的監(jiān)控
本系統(tǒng)除了國(guó)家站數(shù)據(jù)外,還對(duì)土壤水分、大氣成分、雷達(dá)、區(qū)域站、高空?qǐng)?bào)、城鎮(zhèn)報(bào)和GPS數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控。
2.2.1 土壤水分、區(qū)域站、大氣成分、高空?qǐng)?bào)和城鎮(zhèn)報(bào)數(shù)據(jù)的數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)句
2.1.2 小節(jié)中提出過(guò),不同的數(shù)據(jù)有不同的報(bào)文類(lèi)型編碼,土壤水分、城鎮(zhèn)報(bào)、大氣成分和區(qū)域站數(shù)據(jù)的報(bào)文類(lèi)型編碼分別是E.0001.0003.ROO1、M.0012.0002.ROO1、G.0002.0008.ROOI年口A.0001.0028.ROO1,SEND__ USER。發(fā)報(bào)目的地字段和DETAILHOUR發(fā)報(bào)時(shí)間字段與國(guó)家站數(shù)據(jù)的數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)句相同,也即上述數(shù)據(jù)的數(shù)據(jù)庫(kù)查詢(xún)Sql語(yǔ)句與國(guó)家站數(shù)據(jù)的查詢(xún)語(yǔ)句相比較,只是DATA TYPE C報(bào)文類(lèi)型編碼字段的差別。
2.2.2 雷達(dá)和GPS數(shù)據(jù)的數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)句
這兩種數(shù)據(jù)查詢(xún)的數(shù)據(jù)表不同于上述數(shù)據(jù),使用的不是站號(hào)級(jí)的發(fā)送表,而是文件級(jí)的發(fā)送表TB SEND FILE;文件級(jí)發(fā)送表表結(jié)構(gòu)不同于站號(hào)級(jí)發(fā)送表TB SEND REPT,因此Sql查詢(xún)語(yǔ)句的編寫(xiě)也不同于上述數(shù)據(jù),需要FILE NAME文件名字段和SEND__ USER發(fā)報(bào)目的地字段為查詢(xún)條件。其中SENDUSER發(fā)報(bào)目的地字段依然是國(guó)家局BABJ,F(xiàn)ILE NAME文件名字段需要系統(tǒng)在編寫(xiě)Sql查詢(xún)語(yǔ)句之前就進(jìn)行賦值操作。
FILE NAME文件名是在系統(tǒng)啟動(dòng)初始化時(shí)進(jìn)行的賦值,在FormCreate進(jìn)程中進(jìn)行的編寫(xiě),考核的雷達(dá)站和GPS站數(shù)分別為8和25個(gè)。
雷達(dá)數(shù)據(jù)和GPS數(shù)據(jù)的文件名分別賦值給了兩個(gè)數(shù)組,編寫(xiě)Sql查詢(xún)語(yǔ)句時(shí),使用For循環(huán)分別對(duì)這兩種數(shù)據(jù)的每一個(gè)站進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)。GPS數(shù)據(jù)根據(jù)不同的臺(tái)站文件名分別進(jìn)行了25次數(shù)據(jù)庫(kù)查詢(xún)。相應(yīng)的,雷達(dá)數(shù)據(jù)需要進(jìn)行8次數(shù)據(jù)庫(kù)查詢(xún)。
參考文獻(xiàn)
[1]蘭旭輝,基于MySQL的應(yīng)用程序設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004 (03).
[2]郭驊麟,淺論基于Delphi的數(shù)據(jù)庫(kù)開(kāi)發(fā)[J].信息與電腦,2010 (01).