• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    承德地震監(jiān)測中心站數(shù)字觀測儀器原始數(shù)據(jù)實(shí)時(shí)繪圖APP研發(fā)

    2021-12-18 11:20:50馬廣慶張玉林郭亞亞魏婭玲
    四川地震 2021年4期
    關(guān)鍵詞:監(jiān)測中心服務(wù)端服務(wù)器端

    馬廣慶,張玉林,郭亞亞,魏婭玲

    (1.河北省地震局,河北 石家莊050021;2.河北省地震局承德地震監(jiān)測中心站,河北 承德067000;3.四川省地震局,四川 成都610041)

    目前,承德地震監(jiān)測中心站的形變、地磁觀測儀器已更新為數(shù)字化觀測儀,如承德、豐寧和寬城地震臺的VP型寬頻帶傾斜儀、FHD-2B質(zhì)子矢量磁力儀、SQ-70D數(shù)字水平擺、DSQ型水管傾斜儀和SS-Y型銦瓦棒伸縮儀等。使用者需要通過這些觀測儀器自帶的軟件(或儀器網(wǎng)址)才可以查看儀器記錄的原始數(shù)據(jù),且操作過程繁瑣(張玉林等,2018)?;谏鲜鰡栴},承德地震監(jiān)測中心站擬研發(fā)一個(gè)基于Windows界面的實(shí)時(shí)監(jiān)控系統(tǒng),該系統(tǒng)能夠使承德地震監(jiān)測中心站所有觀測儀器記錄的原始數(shù)據(jù)可以通過一個(gè)Windows界面進(jìn)行實(shí)時(shí)查看,在此基礎(chǔ)上進(jìn)一步研發(fā)基于Andriod系統(tǒng)的原始數(shù)據(jù)實(shí)時(shí)顯示系統(tǒng),使原始數(shù)據(jù)實(shí)時(shí)查看界面從計(jì)算機(jī)界面變更為手機(jī)界面,實(shí)現(xiàn)隨時(shí)隨地均可查看儀器記錄數(shù)據(jù)的功能,為臺站儀器運(yùn)維遠(yuǎn)程監(jiān)控提供軟件支撐。

    1 軟件架構(gòu)設(shè)計(jì)

    應(yīng)用程序需要并行獲取和顯示多臺儀器的記錄數(shù)據(jù),因此需要并行調(diào)度各個(gè)并行的線程(程巖等,2010)。由于臺站觀測儀器分布在各處,不夠集中,為了臺站值守人員能夠更加方便地查看各個(gè)臺站儀器的運(yùn)行狀態(tài),將各個(gè)分散網(wǎng)址的臺站觀測儀器數(shù)據(jù)進(jìn)行集中匯集,然后通過手機(jī)APP將分散的各個(gè)臺站觀測數(shù)據(jù)展現(xiàn)到手機(jī)界面中。該軟件采用C/S架構(gòu)設(shè)計(jì):C端即客戶端(即手機(jī)APP),負(fù)責(zé)展現(xiàn)儀器數(shù)據(jù);S端即服務(wù)端,負(fù)責(zé)收集數(shù)據(jù)。服務(wù)端每一分鐘向各個(gè)儀器請求一次數(shù)據(jù),并將數(shù)據(jù)保存起來,服務(wù)端會保存720分鐘(即12小時(shí))的實(shí)時(shí)觀測數(shù)據(jù)。APP每分鐘向服務(wù)端請求指定儀器的數(shù)據(jù),然后將數(shù)據(jù)以折線圖的形式展示。

    手機(jī)APP不直接向儀器申請數(shù)據(jù),其原因主要有三:一是儀器原因,為保證手機(jī)拿到的是最近12小時(shí)內(nèi)的數(shù)據(jù),而不只是當(dāng)前或當(dāng)天的數(shù)據(jù),不僅可以避免凌晨查看到的數(shù)據(jù)曲線過短,還可以避免有的儀器因只能查看當(dāng)前數(shù)據(jù)而導(dǎo)致手機(jī)APP需要等待很長時(shí)間才能看到波形圖;二是儀器有的時(shí)候會更新,手機(jī)APP也要隨著更新,這樣就需要將每個(gè)APP的用戶進(jìn)行更新,故采用服務(wù)端,只需要更新服務(wù)端,讓服務(wù)端與更新的儀器進(jìn)行適配就可以了;三是與APP的設(shè)計(jì)有關(guān),可以僅通過服務(wù)端的修改而改變APP上儀器數(shù)據(jù)的展示方式。

    1.1 服務(wù)器端

    承德地震監(jiān)測中心站擁有14套觀測儀器,包括地磁絕對觀測FHD-2B儀器2套,VP型寬頻帶傾斜儀3套,SQ-70D水平擺觀測儀1套,DSQ型水管傾斜儀2套、SS-Y型銦瓦棒伸縮儀2套,TJ-II型體應(yīng)變儀1套和WYY-1\RTP-II\ZKGD-3000M型氣象三要素儀各1套,共計(jì)45個(gè)測項(xiàng)。儀器拓?fù)浣Y(jié)構(gòu)如圖1所示。

    圖1 承德地震監(jiān)測中心站前兆儀器結(jié)構(gòu)拓?fù)鋱D

    儀器種類不同,數(shù)據(jù)來源也各不相同,這些儀器有的使用http協(xié)議在SVN內(nèi)網(wǎng)發(fā)布數(shù)據(jù),如FHD-2B等,有的需要使用Socket發(fā)送指令后再接收數(shù)據(jù),如豐寧臺SQ-70D水平擺傾斜儀。數(shù)據(jù)來源多樣,形式變化多樣,應(yīng)用程序需要不同命令來實(shí)現(xiàn)相應(yīng)儀器的數(shù)據(jù)采集。利用http發(fā)布數(shù)據(jù)的儀器,應(yīng)用程序需要使用http協(xié)議與觀測儀器進(jìn)行通信,獲取儀器記錄數(shù)據(jù),其主要過程是應(yīng)用程序向儀器地址發(fā)送索取數(shù)據(jù)的“請求”,接收儀器收到請求之后返回“響應(yīng)”和各種異常、錯(cuò)誤情況。利用tcp發(fā)布數(shù)據(jù)的儀器,應(yīng)用程序需要使用tcp協(xié)議與儀器建立Socket連接,通過Socket連接獲取數(shù)據(jù),其主要過程是通過IP和端口與儀器建立連接,向儀器發(fā)送“請求”,接收儀器返回“響應(yīng)”和各種異常、錯(cuò)誤情況。儀器返回的數(shù)據(jù)都是混雜在通信協(xié)議各種表意符號中的,數(shù)據(jù)解析模塊可以將關(guān)注的數(shù)據(jù)解析出來。數(shù)據(jù)解析模塊分為兩個(gè)部分:處理html數(shù)據(jù)(即http協(xié)議返回的數(shù)據(jù))和處理tcp協(xié)議返回?cái)?shù)據(jù)。

    為了降低儀器之間的影響,例如一臺儀器通信出問題而影響其它儀器數(shù)據(jù)的接收,各數(shù)據(jù)模塊運(yùn)行于不同線程之中。通過數(shù)據(jù)鎖保證數(shù)據(jù)同步技術(shù)對系統(tǒng)性能造成較大影響,現(xiàn)代線程技術(shù)多采用Actor模型實(shí)現(xiàn)線程的調(diào)度,研究者利用這一技術(shù)實(shí)現(xiàn)各個(gè)線程通過相互傳遞消息來完成調(diào)度,這個(gè)消息多是通過原子(程序設(shè)計(jì)上通過底層保證同一時(shí)刻只有一個(gè)線程能訪問的變量)來實(shí)現(xiàn)線程間的過渡。因此系統(tǒng)采用Channel技術(shù)來實(shí)現(xiàn)Actor模型,在無鎖情況下通過消息傳遞,把數(shù)據(jù)從一個(gè)線程傳到其它線程(秦虹,2014)。

    服務(wù)端設(shè)計(jì)為多個(gè)線程協(xié)同工作的模式,具體分為主線程、UI線程、計(jì)時(shí)線程、服務(wù)線程和下載線程。主線程負(fù)責(zé)服務(wù)各部分的協(xié)同調(diào)度工作及產(chǎn)生各個(gè)工作。UI線程是負(fù)責(zé)服務(wù)界面顯示的,服務(wù)對于界面的需求不大,但考慮使用方便性,還是制作了一個(gè)界面。計(jì)時(shí)線程是為了每間隔一分鐘向各個(gè)儀器請求數(shù)據(jù)的計(jì)時(shí)而設(shè)計(jì)的。服務(wù)線程是提供響應(yīng)web請求的。下載線程是從各個(gè)儀器上下載數(shù)據(jù)信息的。當(dāng)主線程啟動(dòng)UI線程、計(jì)時(shí)線程和服務(wù)線程后,計(jì)時(shí)便開始了。然后主線程會每分鐘啟動(dòng)下載線程一次,每臺儀器運(yùn)行著一個(gè)下載線程。在下載線程中,數(shù)據(jù)從儀器中請求,并解析出其中的數(shù)據(jù)。解析出數(shù)據(jù)之后,下載線程通過Channel把數(shù)據(jù)傳遞給主線程,然后下載線程結(jié)束工作,直到下次再由主線程啟動(dòng)。主線程會把數(shù)據(jù)轉(zhuǎn)發(fā)給UI線程,UI線程顯示數(shù)據(jù)并保存數(shù)據(jù)。服務(wù)線程接到Web請求后,通過Channel向UI線程發(fā)消息,然后UI將所請求的數(shù)據(jù)回復(fù)給服務(wù)線程。線程之間通過Channel技術(shù)運(yùn)行數(shù)據(jù)交換。服務(wù)端保存著各個(gè)儀器720分鐘(即12個(gè)小時(shí))的數(shù)據(jù),這樣每次APP打開就能有完整的圖形出現(xiàn)。

    1.2 手機(jī)APP客戶端

    手機(jī)APP端模塊在Android開發(fā)應(yīng)用程序時(shí)主要使用Java語言。在采集數(shù)據(jù)過程中,需要網(wǎng)絡(luò)模塊和數(shù)據(jù)解析模塊(彭宏偉等,2010)。APP能夠?qū)崿F(xiàn)導(dǎo)航條、菜單、儀器切換等功能,通過嵌入瀏覽器控件,打開對應(yīng)的Web頁面,實(shí)現(xiàn)數(shù)據(jù)展現(xiàn)等功能,這種混合開發(fā)的技術(shù)路線也是目前軟件開發(fā)的主流選擇。

    軟件展示數(shù)據(jù)的實(shí)現(xiàn):WebView組件是專門用來瀏覽網(wǎng)頁的,在APP界面上添加WebView組件后,就可通過WebView的loadUrl方法來加載指定的網(wǎng)頁,同時(shí)將WebView的JavaScript的支持打開。通過:webview.getSettings().setJavaScriptEnabled(true)和webview.setWebChromeClient(new WebChromeClient())這兩個(gè)函數(shù)來獲得WebView的JavaScript的支持。

    前端繪圖主要使用Ajax技術(shù)和ECharts組件。Ajax即“Asynchronous Javascript And XML”(異步JavaScript和XML),是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。Ajax在瀏覽器與Web服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP請求),這樣就可使網(wǎng)頁從服務(wù)器請求少量的信息,而不是整個(gè)頁面。ECharts是一款由百度前端技術(shù)部開發(fā)的,基于Javascript的數(shù)據(jù)可視化圖表庫,提供直觀、生動(dòng)、可交互、可個(gè)性化定制的數(shù)據(jù)可視化圖表。前端頁面使用Ajax向儀器數(shù)據(jù)服務(wù)發(fā)數(shù)據(jù)請求,當(dāng)數(shù)據(jù)從儀器數(shù)據(jù)服務(wù)那里傳過來后,頁面再使用ECharts將其繪制到屏幕上。

    2 程序主要代碼

    2.1 服務(wù)器端主要代碼

    數(shù)據(jù)下載//使用http協(xié)議下:

    void httpDownload(std::string&url,std::string&target,(void*)(parseFunc*)(std::string&body));spawn httpDownload("http://儀器IP/html/DTSJ.HTM"

    接收下載信號,并分發(fā)下載到各個(gè)儀器的下載線程:

    void downloadData();

    數(shù)據(jù)流控制主要有兩方面工作:一方面是通過上面的下載函數(shù),在下達(dá)下載命令時(shí)將各個(gè)儀器處理分開;另一方面是通過函數(shù)實(shí)現(xiàn)在UI無事件時(shí)執(zhí)行int idleActionCB()函數(shù)。

    2.2 基于Android系統(tǒng)APP客戶端主要代碼

    對于手機(jī)軟件開發(fā)來說,大小各異的手機(jī)屏幕尺寸帶來的麻煩不少。Web技術(shù)屏幕適配方面比較復(fù)雜。本研究采用MediaQueries(屏幕自適應(yīng))這種方法,在CSS中寫下不同屏幕下使用不同的CSS來實(shí)現(xiàn)屏幕適配,這個(gè)方式不但可以進(jìn)行字體的適配還能實(shí)現(xiàn)不同界面顯示不同的樣式,多個(gè)屏幕(600px-900px)自適應(yīng)代碼:<link rel="style sheet"media="screen and(min-width:600px)and(max-width:900px)"href="style.css"type="text/css"/>。用em和rem來代替px(像素點(diǎn)),em根據(jù)父標(biāo)簽的字體大小來設(shè)置當(dāng)前標(biāo)簽的寬高或字體大小,rem是根據(jù)跟標(biāo)簽的字體大小來適配當(dāng)前標(biāo)簽的寬高或字體大小,多用百分比來作為寬高的值。

    3 效果圖展示

    系統(tǒng)以Windows64位系統(tǒng)為基礎(chǔ),實(shí)現(xiàn)原始數(shù)據(jù)的實(shí)時(shí)采集、傳輸與存儲。系統(tǒng)軟件目前已經(jīng)在承德地震監(jiān)測中心站三個(gè)直屬臺站(寬城、豐寧、承德)投入使用,運(yùn)行狀態(tài)良好,在河北省地震局無線內(nèi)網(wǎng)范圍內(nèi)可以隨時(shí)隨地查看原始數(shù)據(jù)運(yùn)行狀態(tài)。該系統(tǒng)由基于Windows系統(tǒng)服務(wù)器端與基于Android系統(tǒng)APP端兩部分組成。服務(wù)器端提供整個(gè)承德地震監(jiān)測中心站的所有數(shù)字化儀器原始數(shù)據(jù)采集、傳輸與存儲。手機(jī)APP端可根據(jù)臺站需要,生成三個(gè)直屬臺的手機(jī)APP軟件,每個(gè)臺值班員工安裝本臺相應(yīng)的手機(jī)APP軟件,便可以在本單位內(nèi)網(wǎng)范圍內(nèi)隨時(shí),隨地查看12小時(shí)內(nèi)的原始數(shù)據(jù)實(shí)時(shí)監(jiān)控曲線。服務(wù)器端運(yùn)行效果如圖2所示。手機(jī)客戶端運(yùn)行效果如圖3所示。

    圖2 基于Windows系統(tǒng)服務(wù)器端運(yùn)行效果

    圖3 手機(jī)端儀器切換與部分原始數(shù)據(jù)實(shí)時(shí)監(jiān)控曲線

    4 結(jié)論

    本研究采用C/S架構(gòu),利用Java語言進(jìn)行程序研發(fā),以分為時(shí)間單位進(jìn)行數(shù)據(jù)采集,利用channel技術(shù)進(jìn)行數(shù)據(jù)流向控制,服務(wù)器端顯示實(shí)時(shí)原始數(shù)據(jù)的同時(shí)保存12小時(shí)內(nèi)的原始數(shù)據(jù),在手機(jī)APP端采用數(shù)據(jù)瀏覽器,可以隨時(shí)瀏覽原始數(shù)據(jù)實(shí)時(shí)曲線,目前已投入使用,系統(tǒng)有幾個(gè)優(yōu)點(diǎn):1)可以在內(nèi)網(wǎng)覆蓋的范圍內(nèi)隨時(shí)瀏覽本臺儀器原始數(shù)據(jù)觀測曲線及原始數(shù)據(jù)變化范圍。2)手機(jī)客戶端可以自由切換儀器類型,實(shí)現(xiàn)坐標(biāo)系實(shí)時(shí)轉(zhuǎn)換,更好地展示12小時(shí)內(nèi)原始數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài)。3)軟件設(shè)計(jì)過程中,沒有設(shè)計(jì)觀測曲線放縮功能,但在旋轉(zhuǎn)屏幕時(shí),可以看到更好的曲線形態(tài),缺點(diǎn)是截取完整的圖片比較困難。

    軟件只能用于原始數(shù)據(jù)實(shí)時(shí)監(jiān)控,不能對原始數(shù)據(jù)進(jìn)行預(yù)處理,伴隨首都圈安全保障力度加大,原始數(shù)據(jù)需要隨時(shí)轉(zhuǎn)換以應(yīng)用于分析會商,因此開發(fā)帶數(shù)據(jù)預(yù)處理的原始數(shù)據(jù)實(shí)時(shí)監(jiān)控系統(tǒng)是未來發(fā)展的方向。

    猜你喜歡
    監(jiān)測中心服務(wù)端服務(wù)器端
    黑龍江省節(jié)能監(jiān)測中心
    云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
    新時(shí)期《移動(dòng)Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
    淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
    成功(2018年10期)2018-03-26 02:56:14
    砥礪奮進(jìn)的五年
    在Windows Server 2008上創(chuàng)建應(yīng)用
    國家無線電監(jiān)測中心檢測中心
    責(zé)任源于使命——訪遼寧省環(huán)保廳核與輻射監(jiān)測中心副主任林殿科
    在Windows中安裝OpenVPN
    網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
    建瓯市| 五华县| 睢宁县| 和平区| 贵定县| 广南县| 无棣县| 军事| 卢湾区| 浮梁县| 华蓥市| 镇沅| 托克托县| 威远县| 松桃| 水富县| 淮南市| 疏勒县| 莲花县| 云阳县| 商都县| 西峡县| 秀山| 象山县| 揭东县| 正阳县| 平果县| 南涧| 台南县| 东丰县| 新巴尔虎左旗| 新乐市| 武乡县| 武功县| 河北区| 瓦房店市| 津南区| 怀安县| 全椒县| 紫云| 托里县|