国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

三維雷電探測系統(tǒng)監(jiān)視軟件設(shè)計(jì)與實(shí)現(xiàn)

2022-03-17 01:45李力聶成彭軍
關(guān)鍵詞:探測儀雷電定位

李力,聶成,彭軍

(1.湖北省氣象信息與技術(shù)保障中心,湖北 武漢 430074;2.襄陽市氣象局,湖北 襄陽 441021)

0 引言

雷電屬于氣象領(lǐng)域中的強(qiáng)放電現(xiàn)象,至今依然對森林防火和生命財(cái)產(chǎn)等社會安全領(lǐng)域構(gòu)成極大挑戰(zhàn),也對航空、航天、供電、通訊等諸多社會生產(chǎn)部門帶來重大影響.雷電探測儀目前已經(jīng)大面積部署于氣象、部隊(duì)、電力、電信等國民安全骨干行業(yè),組網(wǎng)后構(gòu)成雷電探測系統(tǒng)通過監(jiān)測雷電活動的范圍和頻度對重點(diǎn)目標(biāo)進(jìn)行預(yù)警預(yù)報(bào),在氣象防災(zāi)減災(zāi)、衛(wèi)星火箭發(fā)射、雷擊定點(diǎn)監(jiān)測等諸多領(lǐng)域發(fā)揮著關(guān)鍵作用.傳統(tǒng)的二維雷電探測儀只能探測云地閃和二維定位,無法測量云內(nèi)閃電,而且二維時(shí)差雷電探測系統(tǒng)使用的數(shù)據(jù)處理中心軟件定位算法簡單,監(jiān)視功能不全,數(shù)據(jù)處理量小,結(jié)果解算較慢[1-4].

三維雷電探測儀使用時(shí)差定位法,通過接收云閃、云地閃輻射的閃電回?fù)裘}沖信號,可以解算出閃電輻射源的時(shí)間、位置、高度、強(qiáng)度、極性等重要參數(shù)信息,是目前升級傳統(tǒng)二維雷電探測系統(tǒng)的最佳方案[5-8].針對三維雷電探測系統(tǒng)接收處理數(shù)據(jù)量相比二維雷電探測系統(tǒng)增加數(shù)倍,定位算法相較二維系統(tǒng)復(fù)雜許多的狀況,使用C++ builder編程與C/S架構(gòu)開發(fā)三維雷電監(jiān)測和綜合分析系統(tǒng).重點(diǎn)闡明系統(tǒng)監(jiān)視軟件的功能模塊與關(guān)鍵處理設(shè)計(jì),并通過湖北省三維雷電探測系統(tǒng)的實(shí)際運(yùn)行分析,期望實(shí)現(xiàn)設(shè)計(jì)合理、信息及時(shí)、功能齊全、移植性強(qiáng)、友好直觀的三維雷電探測系統(tǒng)監(jiān)視軟件.

1 系統(tǒng)監(jiān)視軟件

1.1 軟件功能需求系統(tǒng)監(jiān)視子系統(tǒng)(system monitoring subsystem,SMS)在省級臺站雷電監(jiān)測與綜合分析系統(tǒng)中發(fā)揮核心作用.監(jiān)視子系統(tǒng)收到數(shù)據(jù)接收處理子系統(tǒng)(data accepting and processing subsystem,DAPS)從內(nèi)部傳輸控制協(xié)議(transmission control protocol,TCP)發(fā)來的探測子站配置與狀態(tài)信息,雷電回?fù)襞c定位結(jié)果等數(shù)據(jù)[9-11].收到的信息數(shù)據(jù)先分類再儲存,顯示為列表方式,并使用狀態(tài)信息判別此刻探測子站的狀態(tài)情況;還通過公共廣域網(wǎng)以用戶數(shù)據(jù)包協(xié)議(user datagram protocol,UDP)接收DAPS、數(shù)據(jù)存儲子系統(tǒng)(data storage subsystem,DSS)發(fā)來的回?fù)魯?shù)據(jù)、狀態(tài)數(shù)據(jù)、三維定位結(jié)果等統(tǒng)計(jì)信息和DAPS、DSS軟件的狀態(tài)信息.

1.2 軟件運(yùn)行組成系統(tǒng)監(jiān)視子系統(tǒng)與數(shù)據(jù)存儲子系統(tǒng)、數(shù)據(jù)接收子系統(tǒng)(data accepting subsystem,DAS)、數(shù)據(jù)處理子系統(tǒng)(data processing subsystem,DPS)的運(yùn)行環(huán)境關(guān)系如圖1所示.

圖1 系統(tǒng)監(jiān)視軟件運(yùn)行環(huán)境圖

根據(jù)系統(tǒng)監(jiān)視軟件的功能,設(shè)計(jì)軟件由TCP網(wǎng)絡(luò)數(shù)據(jù)接收、UDP組播數(shù)據(jù)收發(fā)、系統(tǒng)運(yùn)行狀態(tài)監(jiān)視、探測儀狀態(tài)監(jiān)視、數(shù)據(jù)文件存儲等5個模塊組成,系統(tǒng)監(jiān)視軟件組成如圖2所示.

圖2 系統(tǒng)監(jiān)視軟件部件組成圖

1)TCP網(wǎng)絡(luò)數(shù)據(jù)接收模塊:通過網(wǎng)絡(luò)TCP協(xié)議建立與DAS、DPS的功能連接.接收DAS發(fā)送的探測站配置信息、回?fù)魯?shù)據(jù)、狀態(tài)數(shù)據(jù),接收DPS發(fā)送的三維定位結(jié)果信息.

2)UDP組播數(shù)據(jù)收發(fā)模塊:通過網(wǎng)絡(luò)UDP協(xié)議定時(shí)向DAS、DPS、DSS發(fā)送軟件狀態(tài)巡檢信息,接收軟件返回的運(yùn)行狀態(tài)、回?fù)魯?shù)據(jù)統(tǒng)計(jì)、狀態(tài)數(shù)據(jù)統(tǒng)計(jì)、三維定位結(jié)果統(tǒng)計(jì)信息.

3)系統(tǒng)運(yùn)行狀態(tài)監(jiān)視模塊:以列表方式實(shí)時(shí)顯示系統(tǒng)最新接收的回?fù)魯?shù)據(jù)、狀態(tài)數(shù)據(jù)、三維定位結(jié)果數(shù)據(jù),以場景方式顯示與其他功能的交互狀態(tài).

4)探測儀狀態(tài)監(jiān)視模塊:根據(jù)接收到的探測儀狀態(tài)數(shù)據(jù),判斷當(dāng)前探測儀的狀態(tài),提供人機(jī)交互界面,對探測儀的狀態(tài)進(jìn)行監(jiān)視.

5)數(shù)據(jù)文件存儲模塊:存儲收到的回?fù)魯?shù)據(jù)、狀態(tài)數(shù)據(jù)、三維定位結(jié)果數(shù)據(jù)和DAS、DPS、DSS的運(yùn)行狀態(tài)信息,每天分別生成一個回?fù)魯?shù)據(jù)文件、狀態(tài)數(shù)據(jù)文件、三維定位結(jié)果信息文件以及日志文件,每月形成一個獨(dú)立文件夾.系統(tǒng)監(jiān)視軟件的數(shù)據(jù)流程和控制流程如圖3所示.

圖3 系統(tǒng)監(jiān)視軟件數(shù)據(jù)流程和控制流程圖

2 軟件模塊設(shè)計(jì)

2.1 TCP網(wǎng)絡(luò)數(shù)據(jù)接收模塊系統(tǒng)監(jiān)視軟件的身份為TCP服務(wù)器,其他軟件均作為客戶端與之連接;TCP交互雙方設(shè)計(jì)并實(shí)現(xiàn)各自軟件,發(fā)送方不會考慮由于發(fā)送數(shù)據(jù)速度過快造成的數(shù)據(jù)粘包,系統(tǒng)監(jiān)視軟件的TCP網(wǎng)絡(luò)數(shù)據(jù)接收模塊需要對可能的沾包進(jìn)行處理,做到網(wǎng)絡(luò)數(shù)據(jù)不多、不少、不丟失、不增加.對于TCP交互可能出現(xiàn)的沾包現(xiàn)象,系統(tǒng)所做關(guān)鍵處理設(shè)計(jì)為:系統(tǒng)啟動時(shí),構(gòu)造緩沖用于TCP數(shù)據(jù)接收和處理,同時(shí)創(chuàng)建一個整形變量,記錄處理后剩余的數(shù)據(jù)長度[11-13].TCP數(shù)據(jù)的接收和處理設(shè)計(jì)描述如下:

/*

接收網(wǎng)絡(luò)數(shù)據(jù),注意新接收的數(shù)據(jù)放在接收緩沖后面,其中_revlength為本次接收的數(shù)據(jù)長度,m_pTCPReceiveCache為系統(tǒng)設(shè)計(jì)的接收和處理緩沖,m_TcpProcessLeftDataLength為處理剩余的數(shù)據(jù);

*/

_revlength=recv(_socket,(LPSTR)m_pTCPReceiveCache+m_TcpProcessLeftDataLength,MAX_LENGTH_TCPRECV,0);

m_TcpProcessLeftDataLength+=_ revlength;//剩余數(shù)據(jù)增加

_thisLength=GetFirstFrmLength();//獲取第一幀TCP數(shù)據(jù)的長度

/*如果剩余數(shù)據(jù)中有一個完整合法的數(shù)據(jù),則對該完整消息進(jìn)行處理*/

while(_thisLength !=-1 && m_TcpProcessLeftDataLength>=_thisLength)

{

…//根據(jù)消息的種類對合法消息進(jìn)行處理

Switch(接收數(shù)據(jù)種類)

{

Case 探測站配置信息:

對探測站配置信息進(jìn)行解析,交由探測儀狀態(tài)監(jiān)視模塊對模塊進(jìn)行初始化;

Break;

Case 回?fù)魯?shù)據(jù):

對回?fù)魯?shù)據(jù)進(jìn)行解析,交由數(shù)據(jù)文件存儲模塊存儲回?fù)魯?shù)據(jù)

交由系統(tǒng)運(yùn)行狀態(tài)監(jiān)視模塊以列表方式進(jìn)行顯示;

Break;

Case 狀態(tài)數(shù)據(jù):

對狀態(tài)數(shù)據(jù)進(jìn)行解析,根據(jù)狀態(tài)數(shù)據(jù)判斷探測儀當(dāng)前工作狀態(tài);

交由數(shù)據(jù)文件存儲模塊存儲狀態(tài)數(shù)據(jù)

交由探測儀狀態(tài)監(jiān)視模塊進(jìn)行顯示;

Break;

Case 三維定位結(jié)果數(shù)據(jù):

對三維定位結(jié)果數(shù)據(jù)進(jìn)行解析,交由數(shù)據(jù)文件存儲模塊存儲三維定位結(jié)果數(shù)據(jù)

交由系統(tǒng)運(yùn)行狀態(tài)監(jiān)視模塊以列表方式進(jìn)行顯示;

Break;

default:

Break;

}

m_TcpProcessLeftDataLength-=_thisLength;//剩余數(shù)據(jù)減少

if(m_TcpProcessLeftDataLength>0) //數(shù)據(jù)恢復(fù)

{

memcpy(m_pTCPReceiveCache,m_pTCPReceiveCache+_thisLength,

m_TcpProcessLeftDataLength);

_thisLength=GetFirstFrmLength();//獲取第一幀TCP數(shù)據(jù)的長度

}

}

2.2 UDP組播數(shù)據(jù)收發(fā)模塊UDP信息處理是UDP組播數(shù)據(jù)收發(fā)模塊的關(guān)鍵.由于每一種消息數(shù)據(jù)字段的意義和格式不同,需要根據(jù)消息的種類進(jìn)行不同處理,程序關(guān)鍵處理設(shè)計(jì)主流程如下:

//廣播數(shù)據(jù)處理

Void HandleUdpData(UCHAR* buffer,unsigned short len)

{

if(接收數(shù)據(jù)為DAS運(yùn)行狀態(tài))

{

//殺掉DAS運(yùn)行超時(shí)時(shí)鐘;

//交由數(shù)據(jù)文件存儲模塊存儲DAS的運(yùn)行日志到日志文件

//交由系統(tǒng)監(jiān)視模塊以列表形式顯示DAS的運(yùn)行日志;

}

else if(接收數(shù)據(jù)為DPS運(yùn)行狀態(tài))

{

//殺掉DPS運(yùn)行超時(shí)時(shí)鐘;

//交由數(shù)據(jù)文件存儲模塊存儲DPS的運(yùn)行日志到日志文件

//交由系統(tǒng)監(jiān)視模塊以列表形式顯示DPS的運(yùn)行日志;

}

else if(接收數(shù)據(jù)為DSS運(yùn)行狀態(tài))

{

//殺掉DSS運(yùn)行超時(shí)時(shí)鐘;

//交由數(shù)據(jù)文件存儲模塊存儲DSS的運(yùn)行日志到日志文件

//交由系統(tǒng)監(jiān)視模塊以列表形式顯示DSS的運(yùn)行日志;

}

}

2.3 系統(tǒng)運(yùn)行狀態(tài)監(jiān)視模塊以列表方式實(shí)時(shí)顯示系統(tǒng)新接收的回?fù)魯?shù)據(jù)、狀態(tài)數(shù)據(jù)、三維定位結(jié)果數(shù)據(jù),以樹形結(jié)構(gòu)顯示各探測站點(diǎn),并用圖標(biāo)方式顯示當(dāng)前探測儀的狀態(tài)信息[14-15].

1)回?fù)魯?shù)據(jù)顯示字段包括:探測儀名稱,接收事件時(shí)間,地理位置,角度,強(qiáng)度,電磁場強(qiáng)度值,最陡點(diǎn)強(qiáng)度值,起點(diǎn)到峰點(diǎn)時(shí)間差,最陡點(diǎn)到峰點(diǎn)時(shí)間差,峰點(diǎn)到半周過零點(diǎn)時(shí)間差.

2)狀態(tài)數(shù)據(jù)顯示字段包括:探測儀,地理位置,最近一次自檢開始時(shí)間,最近一次自檢通過標(biāo)志,當(dāng)前閾值,當(dāng)前閾值平均通過率,最近一次自檢開始時(shí)GPS信息,10 MHz恒溫槽石英晶振頻率值的偏差.

3)三維定位結(jié)果信息顯示字段包括:時(shí)間,地理位置,峰值強(qiáng)度,最大陡度,誤差,定位方式,處理標(biāo)志,定位站信息.

2.4 探測儀狀態(tài)監(jiān)視模塊根據(jù)收到的探測儀狀態(tài)數(shù)據(jù),判斷當(dāng)前探測儀狀態(tài),探測儀狀態(tài)異常的可能原因:

1)長時(shí)間(暫定10分鐘)收不到探測儀發(fā)送的狀態(tài)數(shù)據(jù);

2)狀態(tài)數(shù)據(jù)中參數(shù)值不合法,包括自檢通過值不等于1 024,GPS閾值不在[-10,10]的區(qū)間內(nèi),晶振偏差閾值不在[-10,10]的區(qū)間內(nèi),當(dāng)前閾值不等于100,背景噪聲超過了1 000等;

3)發(fā)送的探測儀狀態(tài)數(shù)據(jù)時(shí)間碼沒有更新.根據(jù)上述原則,判斷探測儀狀態(tài)的關(guān)鍵設(shè)計(jì)如下:

Bool JudgeState(STATEDATA _statedata, STATEDATA _lastStateData)

{

//如果參數(shù)的值不合法則認(rèn)為狀態(tài)異常

if(_statedata.resultofselftest!=1024||_statedata.DOP>10||_statedata.DOP<-10||_statedata.

DOP==0||_statedata.frequencyerr>10||||_statedata.frequencyerr<-10||_statedata.threshold!

=100||_statedata.TCR>1000)

return false;

if(本次狀態(tài)數(shù)據(jù)的時(shí)間碼和上一次的時(shí)間碼一致)

return false;

//備份本次狀態(tài)數(shù)據(jù),把本次狀態(tài)數(shù)據(jù)賦值給備份狀態(tài)

//殺掉故障探測儀的狀態(tài)超時(shí)時(shí)鐘(在指定時(shí)間內(nèi)沒有收到狀態(tài)數(shù)據(jù),則認(rèn)為該探測儀故障)

//重新啟動超時(shí)時(shí)鐘

}

2.5 數(shù)據(jù)文件存儲模塊為確保每種文件每天生成一個,每月形成一個單獨(dú)的文件夾,系統(tǒng)設(shè)計(jì)軟件啟動時(shí)或每日凌晨零點(diǎn)(使用定時(shí)時(shí)鐘)創(chuàng)建回?fù)魯?shù)據(jù)文件、狀態(tài)數(shù)據(jù)文件、三維定位結(jié)果數(shù)據(jù)文件和日志文件.以2021年7月為例,其目錄組織結(jié)構(gòu)如下:

Data

├─back//回?fù)魯?shù)據(jù)目錄

│ └─202107//2021年7月目錄

├─log//日志數(shù)據(jù)目錄

│ └─202107//2021年7月目錄

├─pos//三維定位結(jié)果數(shù)據(jù)目錄

│ └─202107//2021年7月目錄

└─state//狀態(tài)數(shù)據(jù)目錄

└─202107//2021年7月目錄

回?fù)魯?shù)據(jù)、狀態(tài)數(shù)據(jù)、三維定位結(jié)果數(shù)據(jù)、日志文件均以“某參數(shù)列”+“tab”+“其他參數(shù)列”的形式提供,以便使用Excel查看文件.

3 軟件系統(tǒng)應(yīng)用

針對本文中所述的三維雷電探測系統(tǒng)監(jiān)視軟件,專門開發(fā)了功能齊備、簡潔友好、面向用戶的雷電監(jiān)測和綜合分析系統(tǒng)界面,并與數(shù)據(jù)接收處理、系統(tǒng)監(jiān)視、數(shù)據(jù)存儲和數(shù)據(jù)再處理子系統(tǒng)構(gòu)成的省級臺站雷電探測系統(tǒng)進(jìn)行數(shù)據(jù)關(guān)聯(lián),實(shí)現(xiàn)了軟件系統(tǒng)的狀態(tài)監(jiān)視查詢、采集數(shù)據(jù)分析以及其他功能模塊集成應(yīng)用[13-14],驗(yàn)證了上述系統(tǒng)軟件開發(fā)設(shè)計(jì)的可行性.

3.1 運(yùn)行監(jiān)視功能將雷電監(jiān)測和綜合分析系統(tǒng)安裝部署于省級平臺,軟件可監(jiān)視接收處理后的湖北省三維雷電定位儀回?fù)襞c定位結(jié)果數(shù)據(jù),如圖4所示.

圖4 軟件監(jiān)視回?fù)魯?shù)據(jù)與定位結(jié)果

軟件系統(tǒng)用列表方式實(shí)時(shí)顯示最新接收的回?fù)魯?shù)據(jù)和三維定位結(jié)果.站名、日期、時(shí)刻、緯度、經(jīng)度、強(qiáng)度、陡度、誤差和高度等信息排列于界面右側(cè),數(shù)據(jù)信息用黑色與紅色表示探測結(jié)果可信與不可信.

3.2 狀態(tài)監(jiān)視功能三維雷電探測系統(tǒng)監(jiān)視軟件通過接收的狀態(tài)數(shù)據(jù),判斷當(dāng)前探測儀狀態(tài),使用交互界面進(jìn)行設(shè)備狀態(tài)監(jiān)視,如圖5所示.

圖5 軟件監(jiān)視探測儀狀態(tài)

軟件系統(tǒng)以場景方式展示與TCP數(shù)據(jù)接收、UDP數(shù)據(jù)收發(fā)等其他功能的交互狀態(tài).探測站、IP地址、端口號,狀態(tài)數(shù)據(jù)、云地回?fù)?、云間回?fù)舻男畔l數(shù)顯示于界面左側(cè),設(shè)備狀態(tài)用綠色與紅色表示正常與異常.站名、地理位置、最近一次自檢開始時(shí)間、自檢通過標(biāo)志、當(dāng)前閾值、當(dāng)前閾值平均通過率、自檢開始時(shí)GPS誤差值、定位儀編號、10 MHz恒溫槽石英晶振頻率值的偏差等實(shí)時(shí)信息顯示于界面右側(cè).

4 總結(jié)

本文中針對組網(wǎng)之后的三維雷電探測系統(tǒng)監(jiān)視功能需求,開發(fā)了省級臺站雷電監(jiān)測和綜合分析系統(tǒng)監(jiān)視軟件,設(shè)計(jì)了TCP網(wǎng)絡(luò)數(shù)據(jù)接收、UDP組播數(shù)據(jù)收發(fā)、系統(tǒng)運(yùn)行狀態(tài)監(jiān)視、探測儀狀態(tài)監(jiān)視、數(shù)據(jù)文件存儲5個模塊,實(shí)現(xiàn)了通過列表方式實(shí)時(shí)顯示系統(tǒng)最新接收的回?fù)魯?shù)據(jù)、狀態(tài)數(shù)據(jù)、三維定位結(jié)果數(shù)據(jù).通過場景方式顯示與其他功能的交互情況;通過接收的狀態(tài)數(shù)據(jù),判斷當(dāng)前探測儀狀態(tài),并提供人機(jī)交互界面,對探測儀狀態(tài)進(jìn)行監(jiān)視;通過分類存儲收到的相關(guān)探測數(shù)據(jù)和運(yùn)行狀態(tài)信息,每天生成獨(dú)立的文件,每月形成獨(dú)立文件夾.利用湖北省三維雷電探測網(wǎng)構(gòu)建實(shí)驗(yàn)平臺測試驗(yàn)證系統(tǒng)運(yùn)行與軟件功能的穩(wěn)定性和全面性,結(jié)果表明,系統(tǒng)監(jiān)視軟件設(shè)計(jì)合理、信息及時(shí)、功能齊全、移植性強(qiáng)、友好直觀,滿足三維雷電探測系統(tǒng)的監(jiān)視需求,對其他類型探測設(shè)備系統(tǒng)監(jiān)視軟件的設(shè)計(jì)與開發(fā)具有廣泛參考價(jià)值.

猜你喜歡
探測儀雷電定位
避雷妙招
危險(xiǎn)探測儀
日本查酒駕不許再聞
筆記本雷電接口究竟有何用?
少兒智能定位鞋服成新寵
把握新定位、新要求 推動人大工作創(chuàng)新發(fā)展
難與易
嫦娥四號將載4臺外國設(shè)備登月
雷電能治病嗎?/自殺疑云
台湾省| 微博| 卢氏县| 石门县| 邳州市| 马山县| 迁安市| 滕州市| 沾益县| 奎屯市| 寻甸| 平泉县| 永吉县| 兴安盟| 五台县| 铁岭县| 衢州市| 朔州市| 彰化市| 普定县| 四川省| 永新县| 太原市| 金塔县| 上饶市| 哈密市| 益阳市| 吉林市| 白河县| 宁海县| 开平市| 孟村| 白城市| 洛宁县| 柳州市| 凌云县| 南华县| 景东| 郁南县| 湘阴县| 蓬莱市|