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

?

基于MFC的AIS解析服務(wù)器軟件程序設(shè)計(jì)

2022-10-20 03:40張亞寧劉春光吳詩(shī)帆
現(xiàn)代信息科技 2022年13期
關(guān)鍵詞:報(bào)文軟件測(cè)試艦船

張亞寧,劉春光,吳詩(shī)帆

(92124 部隊(duì),遼寧 大連 116023)

0 引 言

在海上靶場(chǎng)進(jìn)行武器試驗(yàn)的過程中,艦船自動(dòng)識(shí)別系統(tǒng)(AIS)可以協(xié)助安控人員進(jìn)行海上目標(biāo)識(shí)別,尤其是對(duì)目標(biāo)飛行器雷達(dá)鎖定漁船、商船等非靶目標(biāo)進(jìn)行及時(shí)有效的安控尤為重要。AIS 報(bào)文一般采取可見字符的方式進(jìn)行傳輸,接收機(jī)收到報(bào)文后需按照ITU-1371-4 協(xié)議進(jìn)行解析,解析之后的數(shù)據(jù)才能供作業(yè)人員使用。目前市面上商用的AIS 解析軟件較多,可以實(shí)現(xiàn)報(bào)文解析、艦船信息顯示等功能,但此類軟件一般不具備直接兼容安控顯示軟件的功能。本文基于MFC 平臺(tái)設(shè)計(jì)了AIS 報(bào)文解析軟件,實(shí)現(xiàn)了將AIS信息融入安控顯示軟件的功能。

1 設(shè)計(jì)流程

AIS 報(bào)文解析軟件的信號(hào)流程如圖1所示,首先啟動(dòng)AIS 報(bào)文接收線程,實(shí)時(shí)接收?qǐng)?bào)文數(shù)據(jù);然后進(jìn)行報(bào)文內(nèi)容的判定,對(duì)其中的AIS 報(bào)文進(jìn)行解析(對(duì)非AIS 報(bào)文不做處理);最后將解析之后的報(bào)文結(jié)果以安控顯示軟件的格式進(jìn)行打包發(fā)送,使AIS 信息在安控顯示軟件上實(shí)時(shí)顯示。

圖1 AIS 報(bào)文解析軟件信號(hào)流程

2 功能實(shí)現(xiàn)

本文基于MFC 平臺(tái)設(shè)計(jì)AIS 解析軟件,程序界面如圖2所示,界面分為數(shù)據(jù)接收區(qū)、監(jiān)視區(qū)、接收設(shè)置區(qū)、記錄區(qū)、發(fā)送區(qū)五個(gè)區(qū)域。“數(shù)據(jù)接收區(qū)”用于實(shí)時(shí)顯示接收的AIS 原始報(bào)文和解析之后的艦船信息;“監(jiān)視區(qū)”對(duì)解析軟件的工作情況進(jìn)行監(jiān)視,主要顯示解析報(bào)文狀態(tài)、數(shù)量等內(nèi)容;“接收設(shè)置區(qū)”設(shè)置本地接收AIS 報(bào)文的IP地址、端口信息、組播地址等信息;“記錄區(qū)”以新建文本的方式保存接收到的AIS 原始報(bào)文和解析之后的結(jié)果,可以通過按鍵的方式選擇是否保存;“發(fā)送區(qū)”設(shè)置發(fā)送目的端的IP 地址和端口,進(jìn)而將解析之后的結(jié)果實(shí)時(shí)發(fā)送至安控顯示工作站。

圖2 AIS 解析軟件程序界面

2.1 AIS 報(bào)文接收

為了實(shí)現(xiàn)AIS 報(bào)文接收功能,需要正確加載套接字庫(kù),創(chuàng)建套接字,綁定接收端口,啟動(dòng)接收線程等步驟,關(guān)鍵代碼為:

WSAStartup(MAKEWORD(2,2),&wsaData);// 加載套接字庫(kù)

m_RecvSocket=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,0);//創(chuàng)建套接字

bind(m_RecvSocket,(SOCKADDR*)&addrSock,sizeof(SO CKADDR));//綁定端口

WSARecvFrom(m_RecvSocket,&wsabufRcev,1,&dwread,&dwflag,(SOCKADDR*)&addr_from,&len0,NULL,NULL));//實(shí)時(shí)接收

考慮到不同計(jì)算機(jī)的IP 地址不同,利用本軟件綁定地址信息時(shí)支持配置文件讀取和手動(dòng)更改兩種方式,軟件啟動(dòng)后直接從配置文件讀取IP、端口、組播信息至“接收設(shè)置區(qū)”并進(jìn)行顯示,如果綁定端口情況臨時(shí)有變可以在“接收設(shè)置區(qū)”手動(dòng)更改,然后點(diǎn)擊“綁定”按鍵進(jìn)行最終綁定。

2.2 AIS 報(bào)文判定和解析

AIS 報(bào)文共有27 類(ID 號(hào)為1~27),不同類別的報(bào)文可以提供艦船標(biāo)識(shí)碼MMSI、經(jīng)度L、緯度B、航向COG、航速SOG、船名NAME、呼號(hào)CALL、艦船尺寸等信息。鑒于安控顯示軟件只需顯示艦船標(biāo)識(shí)碼、位置和航行狀態(tài),故僅需解析包含識(shí)別碼MMSI、經(jīng)度L、緯度B、航向COG、航速SOG 等信息的5 類報(bào)文,分別為:1 類、2 類、3 類、18 類、19 類,對(duì)于其他類型的報(bào)文不做解析,減少了數(shù)據(jù)處理量,提高了報(bào)文解析效率。

在有效性的判定上,AIS 報(bào)文采取幀頭識(shí)別的方式進(jìn)行判定,即收到的報(bào)文以“!AIVDM”“!AIVDO”“!AIVDM”等字符開頭;在報(bào)文類別(ID 號(hào))的判定上,采取提取報(bào)文數(shù)據(jù)段首字符的方式進(jìn)行判定,僅解析上面提到的5 類報(bào)文。

篩選出需要解析的報(bào)文后,按照ITU-1371-4 協(xié)議對(duì)數(shù)據(jù)段內(nèi)容進(jìn)行解析,有關(guān)報(bào)文解析的方法參考本文作者曾發(fā)表的文獻(xiàn)——一種AIS 報(bào)文解析方法,此文獻(xiàn)中論述了AIS 報(bào)文解析的詳細(xì)過程。在本文中,將此解析方法封裝成函數(shù)使用,代碼為:

bool OnDecodeAIS(char *p,int len,AisData &AisResult);

在此函數(shù)中p 為AIS 報(bào)文數(shù)據(jù)段的字符串指針,len 為數(shù)據(jù)段字符串長(zhǎng)度,AisResult 為解析之后的結(jié)果,是此函數(shù)的輸出變量,其類型為自定義AisData 結(jié)構(gòu)類型,AisData結(jié)構(gòu)定義為:

2.3 信息打包

AIS 報(bào)文解碼成功后,需要按照安控顯示軟件所提供的數(shù)據(jù)接口類型進(jìn)行打包封裝,此數(shù)據(jù)接口類型為AIS_MAdd結(jié)構(gòu),要求連續(xù)方式對(duì)齊。具體代碼為:

在AIS_MAdd 結(jié)構(gòu)變量中,除了5 類艦船信息,還包含包頭、包尾和操作類別3 個(gè)變量,所以還需要對(duì)以上變量進(jìn)行賦值,具體代碼為:

通過以上方式完成解析結(jié)果的數(shù)據(jù)封包。

2.4 信息發(fā)送

發(fā)送目的端的地址信息通過讀取配置文件在“發(fā)送區(qū)”窗口顯示。數(shù)據(jù)打包結(jié)束之后,構(gòu)造發(fā)送結(jié)構(gòu)變量并進(jìn)行數(shù)據(jù)發(fā)送,具體代碼為:

2.5 信息保存和監(jiān)視

本程序界面的“數(shù)據(jù)接收區(qū)”實(shí)時(shí)顯示最新一條AIS 報(bào)文和解析結(jié)果,為了實(shí)現(xiàn)對(duì)整個(gè)解析過程數(shù)據(jù)的監(jiān)視,在“記錄區(qū)”增加“按鍵”實(shí)現(xiàn)記錄報(bào)文信息和解析結(jié)果,文件以時(shí)間命名,以文本方式保存。

此外,本程序還設(shè)計(jì)了“監(jiān)測(cè)區(qū)”,用于對(duì)程序運(yùn)行狀態(tài)、解析報(bào)文數(shù)量、記錄開啟情況等進(jìn)行實(shí)時(shí)監(jiān)視,極大地方便了程序操管。

3 實(shí)驗(yàn)測(cè)試

本程序設(shè)計(jì)完成后,通過在機(jī)房實(shí)時(shí)接收大連旅順某海域的AIS 信息進(jìn)行了軟件測(cè)試,測(cè)試過程中首先通過“綁定”按鍵正確設(shè)置接收端口,然后通過“運(yùn)行”按鍵啟動(dòng)解析程序,程序運(yùn)行過程中依次啟動(dòng)數(shù)據(jù)記錄功能,測(cè)試結(jié)果如圖3、圖4、圖5所示。從這三個(gè)圖中可以看出,本程序不僅可以實(shí)時(shí)顯示接收?qǐng)?bào)文信息、報(bào)文解析結(jié)果,還可以對(duì)解析情況進(jìn)行實(shí)時(shí)監(jiān)視。程序運(yùn)行結(jié)束后,生成了AIS 報(bào)文記錄文件和解析結(jié)果記錄文件,文件信息如圖6、圖7所示。最后對(duì)本軟件的轉(zhuǎn)發(fā)功能進(jìn)行了測(cè)試,測(cè)試結(jié)果如圖8所示,由安控顯示軟件可知本程序可實(shí)時(shí)將AIS 解析結(jié)果發(fā)送至安控顯示軟件進(jìn)行顯示,實(shí)現(xiàn)了與安控軟件的融合,可以實(shí)時(shí)為安控顯示軟件提供海面艦船信息。

圖3 AIS 解析軟件測(cè)試結(jié)果

圖4 AIS 解析軟件測(cè)試結(jié)果“顯示區(qū)”放大圖

圖5 AIS 解析軟件測(cè)試結(jié)果“監(jiān)視區(qū)”放大圖

圖6 AIS 解析軟件原始報(bào)文記錄

圖7 AIS 解析軟件解析結(jié)果記錄

圖8 解析結(jié)果在安控顯示軟件上的顯示效果

4 結(jié) 論

本文基于安控顯示軟件實(shí)時(shí)顯示海上艦船信息的需求,利用MFC 平臺(tái)從界面設(shè)計(jì)、報(bào)文接收、報(bào)文判定、報(bào)文解析、報(bào)文記錄、解析結(jié)果發(fā)送等環(huán)節(jié)詳細(xì)論述了本文AIS 服務(wù)器軟件的設(shè)計(jì)流程,最后通過實(shí)際環(huán)境中的測(cè)試得出本文軟件實(shí)現(xiàn)了上述功能,可以實(shí)時(shí)為安控顯示軟件提供AIS 信息,為安控人員順利完成海上目標(biāo)飛行器安控任務(wù)提供了參考,具有一定的工程應(yīng)用價(jià)值。

猜你喜歡
報(bào)文軟件測(cè)試艦船
海法新港一期自動(dòng)化集裝箱碼頭電子數(shù)據(jù)交換報(bào)文系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
軟件測(cè)試方向人才培養(yǎng)“1+X”融合研究
大數(shù)據(jù)背景下軟件測(cè)試技術(shù)的發(fā)展
基于報(bào)文類型的限速值動(dòng)態(tài)調(diào)整
關(guān)于 Web 應(yīng)用系統(tǒng)的軟件測(cè)試的研究
用戶設(shè)備進(jìn)行組播路徑追蹤的方法及系統(tǒng)
國(guó)產(chǎn)3000噸級(jí)護(hù)衛(wèi)艦正式交付
軟件測(cè)試發(fā)展現(xiàn)狀及前景的探討
臺(tái)日艦船對(duì)峙內(nèi)幕曝光
宾阳县| 宜宾县| 商南县| 偏关县| 玛沁县| 东安县| 保德县| 类乌齐县| 哈密市| 宿迁市| 玛曲县| 尚志市| 博兴县| 泸定县| 大城县| 商河县| 乐业县| 榕江县| 金塔县| 繁峙县| 司法| 抚顺县| 瓦房店市| 新余市| 牡丹江市| 双桥区| 兖州市| 溧水县| 长岭县| 祥云县| 柘城县| 长春市| 五家渠市| 潮州市| 沛县| 昌宁县| 天台县| 上思县| 德江县| 永靖县| 新源县|