• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于Windows API編程技術(shù)的CIMISS氣象資料調(diào)用方法

      2018-07-09 02:26:50賈顯鋒劉洲榮
      氣象研究與應(yīng)用 2018年2期
      關(guān)鍵詞:編程語言調(diào)用編程

      賈顯鋒,劉洲榮

      (柳州市氣象局,廣西 柳州 545002)

      引言

      近年來,我國的氣象現(xiàn)代化建設(shè)成效顯著,建成了全國綜合氣象信息共享平臺(tái)(CIMISS),實(shí)現(xiàn)了氣象資料的實(shí)時(shí)收集、分發(fā)及規(guī)范化存儲(chǔ)管理,為各級(jí)氣象臺(tái)站共享氣象信息和業(yè)務(wù)應(yīng)用提供了便捷高效的服務(wù)手段[1]。

      CIMISS提供了氣象數(shù)據(jù)統(tǒng)一服務(wù)接口(MUSIC),從而為氣象數(shù)據(jù)應(yīng)用提供了解決方案,并為部分程序開發(fā)語言提供了開發(fā)接口和較為詳盡的應(yīng)用開發(fā)示例,這為基層臺(tái)站業(yè)務(wù)應(yīng)用開發(fā)和科研工作提供了良好的應(yīng)用開發(fā)環(huán)境[2-3],各級(jí)氣象部門利用CIMISS開發(fā)了多種業(yè)務(wù)應(yīng)用系統(tǒng)[4-10]。然而,作者在科研應(yīng)用開發(fā)過程中也發(fā)現(xiàn)MUSIC提供的開發(fā)接口并沒有完全覆蓋所有編程語言,對(duì)于一些目前仍作為主要開發(fā)工具的 BCB、Delphi、Visual Basic等編程語言并沒有提供相應(yīng)的開發(fā)示例Demo。作者嘗試使用Windows應(yīng)用程序編程接口(API)來編程調(diào)用CIMISS數(shù)據(jù),以期解決在CIMISS應(yīng)用中遇到的問題。Windows API是Windows自帶的應(yīng)用程序開發(fā)接口,理論上所有Windows平臺(tái)上的開發(fā)語言都支持 Windows API應(yīng)用[11-16],這為解決MUSIC不支持的編程語言提供了一種新的解決方案。

      1 利用Windows API編程實(shí)現(xiàn)HTTP請(qǐng)求功能

      MUSIC提供了客戶端、Web service和REST等三種編程服務(wù)方式[17-18],本文以REST服務(wù)方式為例,提出基于Windows API的CIMISS資料調(diào)用方案。

      利用REST服務(wù)方式,通過在客戶端發(fā)送符合REST風(fēng)格的HTTP請(qǐng)求,CIMISS服務(wù)器即可返回所請(qǐng)求的數(shù)據(jù)。可見,利用REST方式調(diào)用CIMISS資料,HTTP請(qǐng)求功能是關(guān)鍵。BCB6.0本身無現(xiàn)成的HTTP請(qǐng)求函數(shù),為了能實(shí)現(xiàn)HTTP請(qǐng)求功能,需要利用WINDOWS API函數(shù)來開發(fā)實(shí)現(xiàn)該功能。WINDOWS 提 供 了 InternetOpen、InternetOpenUrl、InternetReadFile、InternetCloseHandle等 4個(gè)函數(shù)可以實(shí)現(xiàn)HTTP請(qǐng)求相關(guān)操作,其中InternetOpen用于建立網(wǎng)絡(luò)連接,InternetOpenUrl用于打開網(wǎng)絡(luò)資源,InternetReadFile用于讀取服務(wù)器上的數(shù)據(jù),InternetCloseHandle用于關(guān)閉已建立的網(wǎng)絡(luò)連接。

      利用上述4個(gè)API函數(shù),我們可以自己設(shè)計(jì)一個(gè)HTTP請(qǐng)求函數(shù),用于從服務(wù)器獲取數(shù)據(jù):首先建立網(wǎng)絡(luò)連接,然后將HTTP請(qǐng)求串url發(fā)送到服務(wù)器打開網(wǎng)絡(luò)資源,接著循環(huán)讀取服務(wù)器發(fā)送回來的請(qǐng)求響應(yīng)數(shù)據(jù),直至完全讀完數(shù)據(jù),最后關(guān)閉網(wǎng)絡(luò)連接,釋放資源。HTTP請(qǐng)求函數(shù)流程圖如圖1所示,其完整代碼如下:1

      值得注意的是,上述自定義函數(shù)中在循環(huán)讀取數(shù)據(jù)的時(shí)候,必須每次都要在得到的數(shù)據(jù)后加入字符串結(jié)束符‘\0’,否則將導(dǎo)致數(shù)據(jù)異常。利用上述函數(shù),只要網(wǎng)絡(luò)正常連接且輸入的資源定位串(url)無誤即可返回所請(qǐng)求的資源。例如,我們要獲取百度的首頁數(shù)據(jù),調(diào)用 HttpRequest(“http://www.baidu.com”)即可。同樣地,只要我們給出正確的MUSIC的REST接口調(diào)用資源定位串url,就可以獲取相應(yīng)的CIMISS數(shù)據(jù)。

      2 CIMISS氣象資料的調(diào)用和處理

      有了自定義的HTTP請(qǐng)求函數(shù),我們就可以實(shí)現(xiàn)對(duì)CIMISS平臺(tái)的資料進(jìn)行讀取和處理。通過REST 方式獲得的數(shù)據(jù)有 xml、json、jsonp、html、text等五種格式,獲取數(shù)據(jù)后需要從相應(yīng)格式轉(zhuǎn)換為所需要的格式。下面給出BCB6.0編程的xml格式解碼函數(shù)代碼。

      有了HTTP請(qǐng)求函數(shù)和xml解碼函數(shù),我們就可自如地調(diào)取和應(yīng)用CIMISS數(shù)據(jù)了。下面以BCB6.0編程調(diào)用CIMISS地面氣象實(shí)時(shí)資料為例,給出一個(gè)完整的調(diào)用例子:

      需要注意的是,對(duì)于文件類的資料檢索,需要進(jìn)行兩次HTTP請(qǐng)求,第一次請(qǐng)求得到文件名、文件格式、文件大小、文件下載地址等相關(guān)信息后,再次利用文件下載地址進(jìn)行HTTP請(qǐng)求即可獲得文件數(shù)據(jù),將文件數(shù)據(jù)保存為指定的文件類型即可。

      通過多種應(yīng)用試驗(yàn),證實(shí)基于Windows API編程的CIMISS數(shù)據(jù)調(diào)用方式具有代碼簡(jiǎn)潔、運(yùn)行穩(wěn)定可靠、調(diào)取資料響應(yīng)迅速等特點(diǎn),可在業(yè)務(wù)系統(tǒng)中進(jìn)行實(shí)際應(yīng)用。

      3 CIMISS氣象資料應(yīng)用實(shí)例

      CIMISS提供了良好的數(shù)據(jù)環(huán)境,這為開發(fā)業(yè)務(wù)系統(tǒng)提供了便利條件。為了實(shí)現(xiàn)對(duì)災(zāi)害性天氣進(jìn)行自動(dòng)監(jiān)測(cè)預(yù)警,我們以基于Windows API的HTTP請(qǐng)求函數(shù)作為調(diào)用CIMISS資料的核心技術(shù),開發(fā)了“災(zāi)害天氣監(jiān)測(cè)預(yù)警業(yè)務(wù)系統(tǒng)”,系統(tǒng)主界面如圖2所示。該系統(tǒng)以CIMISS地面實(shí)時(shí)資料作為基礎(chǔ),實(shí)現(xiàn)對(duì)地面氣象觀測(cè)資料要素進(jìn)行實(shí)時(shí)自動(dòng)監(jiān)測(cè),當(dāng)監(jiān)測(cè)到降水、氣溫、風(fēng)速、能見度等要素達(dá)到設(shè)定閾值時(shí),自動(dòng)通過電腦語音、字幕、手機(jī)短信等方式發(fā)出告警信息,彌補(bǔ)了預(yù)報(bào)員人工監(jiān)測(cè)天氣上的不足,對(duì)災(zāi)害性天氣的監(jiān)測(cè)和防御起到重要作用。該系統(tǒng)在業(yè)務(wù)運(yùn)行中穩(wěn)定可靠,發(fā)揮了較大的效益。這也證實(shí)了Windows API編程調(diào)用CIMISS資料進(jìn)行業(yè)務(wù)應(yīng)用是可行的。

      圖2 “災(zāi)害天氣監(jiān)測(cè)預(yù)警業(yè)務(wù)系統(tǒng)”主界面

      4 小結(jié)

      本文從解決BCB6.0編程實(shí)現(xiàn)HTTP請(qǐng)求功能作為出發(fā)點(diǎn),成功解決了BCB6.0對(duì)CIMISS氣象資料的調(diào)用。其主要技術(shù)特點(diǎn)有:

      (1)Windows API編程技術(shù)兼容性強(qiáng),理論上所有基于Windows的編程語言都可支持此方案。

      (2)采用基于Windows API編程方式實(shí)現(xiàn)對(duì)CIMISS資料調(diào)用,有效解決了MUSIC對(duì)BCB6.0等一些編程語言兼容性不太好的問題,為CIMISS資料應(yīng)用提供了一種新的解決方案。

      (3)基于 Windows API的HTTP請(qǐng)求代碼簡(jiǎn)潔,穩(wěn)定性好,容易搭建CIMISS應(yīng)用架構(gòu),便于快速開發(fā)業(yè)務(wù)應(yīng)用系統(tǒng)。

      [1]季永華,孫超,劉一鳴,等.CIMISS中氣象觀測(cè)資料處理入庫效率優(yōu)化方法[J].氣象科技,2017,45(1):29-34.

      [2]熊劦,鄧衛(wèi)華,胡佳軍,等.基于CIMISS的區(qū)域?yàn)?zāi)害性天氣實(shí)時(shí)監(jiān)測(cè)與報(bào)警系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J].氣象科技,2017,45(3):453-458.

      [3]熊安元,趙芳,王穎,等.全國綜合氣象信息共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].應(yīng)用氣象學(xué)報(bào),2015,26(4):500-512.

      [4]李志鵬,胡佳軍,楊立苑,等.基于CIMISS的氣象數(shù)據(jù)處理時(shí)效監(jiān)視系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J].氣象與減災(zāi)研究,2016,39(4):309-113.

      [5]王旻燕,鄧?yán)?,趙芳,等.CIMISS中氣象衛(wèi)星數(shù)據(jù)存儲(chǔ)和服務(wù)模型[J].安徽農(nóng)業(yè)科學(xué),2012,40(8):4785-4789.

      [6]王宏記,楊代才.基于CIMISS的長(zhǎng)江流域氣象水文信息共享系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)研究 [J].安徽農(nóng)業(yè)科學(xué),2014,42(32):11565-11570.

      [7]楊潤(rùn)芝,馬強(qiáng),李德泉,等.內(nèi)存轉(zhuǎn)發(fā)模型在CIMISS數(shù)據(jù)收發(fā)系統(tǒng)中的應(yīng)用[J].應(yīng)用氣象學(xué)報(bào),2012,23(3):377-384.

      [8]王祝先.黑龍江省CIMISS前端通信系統(tǒng)設(shè)計(jì)[J].黑龍江科學(xué),2017,8(17):62-63.

      [9]潘雪,董洋,楊英奎.基于CIMISS報(bào)文快速處理系統(tǒng)設(shè)計(jì)[J].現(xiàn)代化農(nóng)業(yè),2017,12:62-63.

      [10]史彩霞,黎穎智,張?jiān)S斌.基于CIMISS的廣西氣象服務(wù)信息綜合業(yè)務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].氣象研究與應(yīng)用,2016,37(4):82-85.

      [11]劉波濤,馮翠麗.物聯(lián)網(wǎng)應(yīng)用中嵌入式HTTP協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)[J].佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,29(5):713-718.

      [12]呂浩勇,胡寅,張朝陽.一種基于HTTP協(xié)議的動(dòng)態(tài)Web資源緩存機(jī)制及實(shí)現(xiàn)[J].黃岡師范學(xué)院學(xué)報(bào),2014,34(6):65-66.

      [13]王艷萍,張銳.在Delphi下用Windows API函數(shù)實(shí)現(xiàn)串行通信[J].寧夏工程技術(shù),2003,2(2):141-143.

      [14]隋永朋,魏振鋼.Win32 Api函數(shù)的重要作用及調(diào)用[J].山東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),200620 (6):97-99,102.

      [15]AMARDEO C,SARMA,JG.Identitiesin the future lnternet of Things[J].Wireless Pers Commun 2009,49:353-363.

      [16]Intemational Telecommunication Union UIT.ITU Internet Reports 2005:The Internet of Things[R].2005.

      [17]國家氣象信息中心.全國綜合氣象信息共享平臺(tái)(CIMISS)總體設(shè)計(jì)總論卷[Z].2009.

      [18]國家氣象信息中心.全國綜合氣象信息共享平臺(tái)(CIMISS)總體設(shè)計(jì)架構(gòu)[Z].2011.

      猜你喜歡
      編程語言調(diào)用編程
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      我家有只編程貓
      壓力-體積轉(zhuǎn)換在CFC編程語言中的實(shí)現(xiàn)解析
      核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
      Java編程語言的特點(diǎn)與應(yīng)用
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      淺談不同編程語言對(duì)計(jì)算機(jī)軟件開發(fā)的影響
      電子制作(2018年1期)2018-04-04 01:48:36
      基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
      南皮县| 平舆县| 阳谷县| 鹤峰县| 盐池县| 兴仁县| 公主岭市| 阿克苏市| 通州市| 桃园市| 将乐县| 焦作市| 泸西县| 林口县| 湖州市| 罗定市| 沅陵县| 玉林市| 浠水县| 嘉荫县| 隆回县| 集贤县| 耒阳市| 卓尼县| 宁远县| 吐鲁番市| 华容县| 军事| 富阳市| 龙川县| 图们市| 沈阳市| 兰考县| 色达县| 乌兰浩特市| 高唐县| 巴彦淖尔市| 公安县| 镇安县| 茶陵县| 和硕县|