亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        地震前兆設(shè)備接口軟件的設(shè)計(jì)與研究

        2019-02-12 04:02:00李貴元何思源鐘李彬劉華姣徐文海
        四川地震 2019年4期
        關(guān)鍵詞:前兆臺網(wǎng)數(shù)據(jù)包

        李貴元,何思源,鐘李彬,劉華姣,徐文海

        (四川省地震局成都地震基準(zhǔn)臺,四川 成都 611730)

        《地震前兆臺網(wǎng)專用設(shè)備網(wǎng)絡(luò)通信》規(guī)定了中國地震前兆臺網(wǎng)專用設(shè)備基于以太網(wǎng)接口網(wǎng)絡(luò)化功能的技術(shù)要求,包括前兆臺網(wǎng)專用設(shè)備的通信接口、設(shè)備信息、運(yùn)行功能、數(shù)據(jù)格式、通信協(xié)議和訪問安全控制的約定,以太網(wǎng)接口是設(shè)備通信的必備標(biāo)準(zhǔn)接口。規(guī)程是“中國數(shù)字地震觀測網(wǎng)絡(luò)”分項(xiàng)“中國地震前兆臺網(wǎng)”之《中國地震前兆臺網(wǎng)技術(shù)規(guī)程》的組成部分,適用于“中國地震前兆臺網(wǎng)”建設(shè)。地震前兆臺網(wǎng)設(shè)備是指可用于測量重力、地磁、地殼形變、地電和地下流體各個學(xué)科的觀測對象的設(shè)備以及臺站輔助觀測設(shè)備。地震前兆設(shè)備接口軟件的設(shè)計(jì)需嚴(yán)格遵守地震前兆臺網(wǎng)專用設(shè)備網(wǎng)絡(luò)通信規(guī)定,主要針對地電和地磁的設(shè)備接入進(jìn)行研究。本文主要采用基于TCP/IP協(xié)議的SOCKET連接技術(shù),設(shè)計(jì)能夠在行業(yè)網(wǎng)絡(luò)環(huán)境下實(shí)現(xiàn)對儀器控制與參數(shù)讀取的接口軟件,主要功能有收集測量數(shù)據(jù)、設(shè)定工作參數(shù)、查看狀態(tài)信息、調(diào)取工作日志等。軟件數(shù)據(jù)通信通過以太網(wǎng)、采用基于TCP/IP協(xié)議的SOCKET連接的前兆臺網(wǎng)專用設(shè)備與客戶端的數(shù)據(jù)信息交換。客戶端通過上傳命令字和相關(guān)參數(shù),設(shè)備端解析原語后執(zhí)行相應(yīng)動作,返回執(zhí)行結(jié)果。接口軟件可在地震前兆設(shè)備調(diào)試、教學(xué)實(shí)踐、儀器故障原因判定等工作中應(yīng)用。

        1 前兆設(shè)備接口軟件系統(tǒng)設(shè)計(jì)

        1.1 軟件需求分析

        圖1 前兆設(shè)備網(wǎng)絡(luò)連接示意圖

        成都地震臺有GM-4磁通門磁力儀、FHDZ-M15自動化地磁臺站系統(tǒng)、ZD8M地電儀、ZD9A地電場儀等數(shù)字化前兆設(shè)備,各前兆設(shè)備的網(wǎng)絡(luò)連接如圖1所示。成都地震臺作為地球物理學(xué)實(shí)踐教育基地,承擔(dān)教學(xué)實(shí)踐的工作,如何在實(shí)習(xí)教學(xué)中,對重力、地磁、地電儀器狀態(tài)信息進(jìn)行教學(xué)演示,使實(shí)踐人員更清楚設(shè)備如何進(jìn)行通信、如何進(jìn)行數(shù)據(jù)傳輸以及在故障中如何對指定IP地址的服務(wù)器告警,了解SNTP協(xié)議在儀器校時的工作機(jī)制具有重要意義。前兆設(shè)備接口軟件主要從儀器數(shù)據(jù)、儀器參數(shù)、參數(shù)設(shè)置等幾方面進(jìn)行設(shè)計(jì),使軟件能應(yīng)用于監(jiān)測人員與設(shè)備交互的日常工作之中,輔助監(jiān)測人員深入了解前兆儀器在通信、數(shù)據(jù)存儲、遠(yuǎn)程控制等方面的原理。

        1.2 軟件總體設(shè)計(jì)

        軟件主要通過TCP/IP協(xié)議連接前兆設(shè)備,對每一套接入的設(shè)備分配對應(yīng)內(nèi)存和軟件資源,利用Socket(IP:Port)對設(shè)備發(fā)起連接請求,儀器做出應(yīng)答,使用設(shè)置好的用戶名和密碼登陸設(shè)備。軟件依照規(guī)程的協(xié)議實(shí)現(xiàn)監(jiān)測數(shù)據(jù)、工作參數(shù)、設(shè)備告警、參數(shù)設(shè)定(何案華等,2008)等4個模塊。軟件流程圖如圖2所示??紤]到連接設(shè)備時,設(shè)備同時也承擔(dān)著數(shù)據(jù)采集任務(wù),規(guī)程規(guī)定在連接儀器30 s后沒有操作,連接自動斷開,以保障整個觀測系統(tǒng)的穩(wěn)定運(yùn)行。在軟件設(shè)計(jì)中,各個功能操作應(yīng)在登錄后30 s內(nèi)完成操作,若需要持續(xù)連接,可以考慮以合法的空操作指令作為心跳幀,在30 s內(nèi)向設(shè)備發(fā)起請求來維持連接。在讀取監(jiān)測數(shù)據(jù)時,存在數(shù)據(jù)量過大的問題,對于秒采樣的磁通門磁力儀單測項(xiàng)的數(shù)據(jù)量一天是86 400字節(jié)(王秀英等,2009),在同時讀取15天的數(shù)據(jù)時要考慮速度較慢的問題。在數(shù)據(jù)傳輸過程中,軟件發(fā)送數(shù)據(jù)傳輸指令,設(shè)備端響應(yīng)數(shù)據(jù)傳輸命令,依據(jù)命令將相應(yīng)的測量數(shù)據(jù)發(fā)送到接口軟件(王秀英等,2008)。軟件再接收數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。獲取工作參數(shù)、告警信息、設(shè)定儀器參數(shù)功能與數(shù)據(jù)傳輸過程類似。

        1.3 關(guān)鍵技術(shù)分析

        圖2 通用接口軟件流程圖

        在連接設(shè)備中,值得注意的是,在設(shè)備連接中一定要保證正確的設(shè)備ID號和上位機(jī)運(yùn)行所應(yīng)用的端口號。根據(jù)規(guī)程,設(shè)備ID由12個字符表示,一般前4個字符為“X”加設(shè)備的測項(xiàng)代碼,中間4個字符為廠家自定義標(biāo)志,后4個字符為設(shè)備序列號。測項(xiàng)代碼遵照《地震及地震前兆測項(xiàng)分類與代碼(DB/T 3-2011)》的規(guī)定,設(shè)備序列號由4個阿拉伯?dāng)?shù)字組成。連接成功后使用缺省的用戶名和密碼即可登錄設(shè)備。在選用Socket時,主要比較了CAsyncSocket類和CSocket類之間的區(qū)別,其中在CAsyncSocket類中逐個封裝了WinSock API,這個類基于非常了解網(wǎng)絡(luò)通信,目的是為了在MFC中使用WinSock,開發(fā)者有能力處理諸如阻塞、字節(jié)順序和在Unicode與MBCS間轉(zhuǎn)換字符的任務(wù)。提供更方便的接口以自動處理這些任務(wù),CSocket類是由CAsyncSocket類繼承下來的,它提供了比CAsyncSocket類更高的WinSock API接口。CSocket類和CSocketFile類可以與CArchive類合作起來管理發(fā)送和接收的數(shù)據(jù),這使得管理數(shù)據(jù)收發(fā)更加便利。CAsyncSocket類是異步通信,CSocket類是同步通信;前者是非阻塞模式,后者是阻塞模式。CAsyncSocket類異步效率高,但是更容易出錯,而內(nèi)置了多線程機(jī)制的CSocket類能夠保證數(shù)據(jù)的順序交付,提高了效率。在接口軟件的設(shè)計(jì)中,最終采用了CSocket類作為核心組件實(shí)現(xiàn)與前兆設(shè)備的數(shù)據(jù)收發(fā)管理機(jī)制。

        2 軟件編碼分析

        2.1 通訊協(xié)議分析

        數(shù)據(jù)傳輸協(xié)議采用基于SOCKET連接的HTTP(Hyper Text Transfer Protocol)協(xié)議,支持指令方式和網(wǎng)頁方式。本文中僅使用了指令方式,通信協(xié)議采用的是HTTP 1.1版本,相較于HTTP 1.0,HTTP 1.1支持持久連接,在一個TCP連接上可以傳送多個HTTP請求和響應(yīng),減少了建立和關(guān)閉連接的消耗和延遲,允許客戶端不用等待上一次請求結(jié)果返回就可發(fā)送下一次請求,能有效降低系統(tǒng)交互時間,提高效率。客戶端發(fā)送一個請求消息到設(shè)備端包含請求行、請求頭部、空行和請求數(shù)據(jù)4個部分(見圖3)。使用HTTP請求消息結(jié)構(gòu)分析來解析用戶登錄設(shè)備過程,用戶登錄設(shè)備端的協(xié)議定義如圖4所示。

        圖3 HTTP請求消息結(jié)構(gòu)

        圖4 用戶登錄協(xié)議結(jié)構(gòu)

        使用HTTP的GET請求,前兩個字段分別為請求方法名和固定的空格,第三個字段是除指令原語固有格式外指令的字節(jié)數(shù)總和,ID字段需要的唯一的設(shè)備ID參數(shù),lin字段是命令字,表示協(xié)議功能,取login的lin為用戶登錄功能,username和password表示用戶登錄的參數(shù)。最后為固定格式空格加上協(xié)議版本號。客戶端發(fā)送請求后,設(shè)備端驗(yàn)證登錄連接正常,返回$ack 。驗(yàn)證登錄連接不正常,返回$nak 。若儀器端接收到錯誤指令,返回$err 。對于更復(fù)雜一點(diǎn)的協(xié)議,協(xié)議的固定格式還是一致,唯一的區(qū)別在于參數(shù)列表發(fā)生了變化,比如獲取整體觀測數(shù)據(jù),最多可以獲取15天的觀測數(shù)據(jù),協(xié)議結(jié)構(gòu)如圖5所示。

        圖5 獲取整體測量數(shù)據(jù)協(xié)議結(jié)構(gòu)

        協(xié)議的主體結(jié)構(gòu)與上一協(xié)議一致,此處不再贅述,主要分析協(xié)議功能和參數(shù)列表,該協(xié)議的命令字是dat,表示功能為獲取觀測數(shù)據(jù),n是獲取數(shù)據(jù)的天數(shù),最大取值為15,只能獲取的觀測數(shù)據(jù)為15天,day0即獲取當(dāng)天的數(shù)據(jù),day1為前一天數(shù)據(jù),以此類推。雖m可以取值到255,但最多到day14為有效參數(shù)。在客戶端發(fā)出請求后,正常執(zhí)行返回信息格式,格式為:$第一個數(shù)據(jù)包信息長度 第一個數(shù)據(jù)包內(nèi)容 第二個數(shù)據(jù)包信息長度 第二個數(shù)據(jù)包內(nèi)容 ……最后一個數(shù)據(jù)包信息長度 最后一個數(shù)據(jù)包內(nèi)容 ack 。其中$為返回信息起始符。信息長度是指數(shù)據(jù)包的具體內(nèi)容的字節(jié)總數(shù),不含“信息長度”本身和以“ ”表示的分隔符。數(shù)據(jù)包內(nèi)容是以天為單位的測量數(shù)據(jù), 為換行符,用于分隔各個信息。若數(shù)據(jù)傳輸參數(shù)指定的某天數(shù)據(jù)不存在,則將對應(yīng)天的數(shù)據(jù)包信息長度置為0,不傳輸該天數(shù)據(jù)包內(nèi)容。若儀器端接收到錯誤指令,返回$err 。

        2.2 核心模塊

        使用了封裝的SocketClient實(shí)現(xiàn)數(shù)據(jù)通信,分別設(shè)置了Socket連接、Socket重新連接、Socket斷開連接等函數(shù)。在新建的線程中間接收并分發(fā)數(shù)據(jù)給指定的函數(shù)處理。下例是線程中處理數(shù)據(jù)的代碼:

        DWORD WINAPI MyThreadFunction1(LPVOID lpParam)

        {

        SocketClient* c = (SocketClient*)lpParam; //取得SocketClient類的對象

        memset(recvBuff, 0, sizeof(recvBuff));

        while (c->isConnected){ //連接可用的時候

        int ret, num = 100, err;

        ret = recv(c->sockClient, recvBuff, num, 0); //接收Socket數(shù)據(jù)

        if (ret == SOCKET_ERROR)

        {

        err = WSAGetLastError();

        if (err == WSAEWOULDBLOCK)

        { continue; }

        else if (err == WSAETIMEDOUT){} //超時。

        else if (err == WSAENETDOWN){} //連接斷開。

        else //其他錯誤。

        break;

        }

        else {

        isGetData = TRUE;

        //break; //接受成功,退出線程

        }

        }

        return 0;

        }

        數(shù)據(jù)發(fā)送模塊使用的發(fā)送函數(shù)的代碼:

        int SocketClient::sendData(char *data, int length)

        {

        hThread1 = CreateThread( // 開啟接收線程

        NULL, // 默認(rèn)安全屬性

        0, // 使用默認(rèn)棧大小

        MyThreadFunction1, // 線程函數(shù)名稱

        this, // 線程函數(shù)參數(shù)

        0, // 使用默認(rèn)創(chuàng)建標(biāo)志

        NULL); // 返回函數(shù)標(biāo)識符

        int res = send(this->sockClient, data, length, 0); //數(shù)據(jù)發(fā)送

        return res;

        }

        圖6 軟件主界面

        2.3 軟件實(shí)現(xiàn)

        前兆設(shè)備接口軟件主要分為4個模塊(見圖6),分別是數(shù)據(jù)獲取、設(shè)備控制、設(shè)備監(jiān)視、工作參數(shù)。首先是Socket連接設(shè)備,連接成功后,才能使用賬號信息登錄設(shè)備。之后才能實(shí)現(xiàn)對設(shè)備的管理控制。

        2.4 軟件測試

        軟件使用了臺站代碼為51×××、設(shè)備ID為3120IGEA××××的崇州地震臺的GM-4磁通門磁力儀為例,對軟件進(jìn)行測試,該軟件完成了預(yù)期的效果,能夠獲取準(zhǔn)確的設(shè)備狀態(tài)信息、設(shè)備網(wǎng)絡(luò)參數(shù)以及相應(yīng)的各項(xiàng)功能。圖7、圖8為軟件在獲取設(shè)備信息的測試情形。

        圖7 設(shè)備狀態(tài)信息獲取

        圖8 設(shè)備網(wǎng)絡(luò)參數(shù)獲取

        3 認(rèn)識與討論

        在使用地震觀測網(wǎng)絡(luò)技術(shù)規(guī)程開發(fā)前兆設(shè)備接口軟件中,有以下幾點(diǎn)認(rèn)識:(1)地震前兆設(shè)備支持多種傳輸協(xié)議,實(shí)現(xiàn)了FTP,HTTP1.1等通用的應(yīng)用層傳輸協(xié)議,為用戶多渠道獲取觀測數(shù)據(jù)提供了方法。(2)地震觀測網(wǎng)絡(luò)技術(shù)規(guī)程為前兆設(shè)備遠(yuǎn)程監(jiān)控提供了解決方案,可以實(shí)現(xiàn)多平臺、多終端的數(shù)據(jù)監(jiān)控和故障處理判定。(3)地震接口軟件的實(shí)現(xiàn)為Android/iOS移動設(shè)備接入地震專用儀器驗(yàn)證了技術(shù)可行性,為地震數(shù)據(jù)在移動終端展示提供了解決方案。(4)本次研制的接口軟件能夠獲取設(shè)備的狀態(tài)信息、網(wǎng)絡(luò)信息、供電狀況,能在設(shè)備原理案例學(xué)習(xí)、儀器故障判定等工作中發(fā)揮作用,以期前兆設(shè)備接口軟件能在后續(xù)工作中有更大范圍的推廣應(yīng)用。

        猜你喜歡
        前兆臺網(wǎng)數(shù)據(jù)包
        地球物理臺網(wǎng)儀器維修信息管理的研究與實(shí)現(xiàn)
        地震研究(2021年1期)2021-04-13 01:05:30
        推進(jìn)報臺網(wǎng)深度融合 做強(qiáng)區(qū)級融媒體中心
        傳媒評論(2018年10期)2019-01-17 01:33:16
        哪些現(xiàn)象是地震前兆
        SmartSniff
        西藏地震應(yīng)急流動臺網(wǎng)淺析
        西藏科技(2016年9期)2016-09-26 12:21:39
        MRG9000媒資衛(wèi)士在市級電視臺全臺網(wǎng)的應(yīng)用
        右肝區(qū)不適或疼痛是肝癌表現(xiàn)的前兆嗎
        肝博士(2015年2期)2015-02-27 10:49:46
        基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
        騰沖地電場震前的前兆異常分析
        地震研究(2014年3期)2014-02-27 09:30:57
        全國前兆臺網(wǎng)“九五”系統(tǒng)臺站接入的設(shè)計(jì)與實(shí)施*
        地震研究(2013年3期)2013-12-14 09:30:56
        精品国产粉嫩内射白浆内射双马尾 | 无码AV午夜福利一区| 国产精品又污又爽又色的网站| 人妻少妇被猛烈进入中文字幕| 久久精品国产成人| 五十路熟久久网| 男人的天堂av一二三区| 亚洲av综合色一区二区| 国产成人av综合色| 国产小受呻吟gv视频在线观看| www.av在线.com| 一区二区三区四区亚洲免费| 久久久久久久极品内射| 亚洲自偷自偷偷色无码中文| 精品系列无码一区二区三区| 日本免费精品一区二区| 亚洲国产精品无码专区| 无码少妇一级AV便在线观看| 搡老女人老妇女老熟妇69| 亚洲av一区二区三区色多多| 欧美 国产 综合 欧美 视频| 亚洲毛片在线播放| 亚洲第一页在线观看视频网站| 色偷偷激情日本亚洲一区二区| 人妻丝袜无码国产一区| 老汉tv永久视频福利在线观看| 日本一区二区偷拍视频| 日日摸日日碰人妻无码 | 成品人视频ww入口| 亚洲av无码一区二区三区在线| 亚洲中文字幕不卡无码| 91视色国内揄拍国内精品人妻 | 初尝黑人巨砲波多野结衣| 久久久久亚洲AV无码去区首| 中文字幕亚洲综合久久综合| 日韩一区av二区三区| 欧美亚洲色综久久精品国产| 亚洲乱码一区二区三区成人小说| 国产精品久久三级精品| 私人vps一夜爽毛片免费| 亚洲av无码专区亚洲av桃|