999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MFC的人工報(bào)靶程序設(shè)計(jì)

2022-10-15 13:17:24劉春光張亞寧
現(xiàn)代信息科技 2022年14期
關(guān)鍵詞:功能信息

劉春光,張亞寧

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

0 引 言

在海上進(jìn)行目標(biāo)飛行試驗(yàn)時(shí),需要對海上航區(qū)內(nèi)的船舶、漂浮物等進(jìn)行實(shí)時(shí)監(jiān)控,以確保目標(biāo)飛行器鎖定預(yù)定目標(biāo)靶。目標(biāo)飛行器鎖定了非靶目標(biāo)時(shí)需要指揮所安全控制人員及時(shí)進(jìn)行干預(yù),將目標(biāo)飛行器在空中引爆,以此確保非靶目標(biāo)的安全。目前,海上監(jiān)視系統(tǒng)可以將掃海雷達(dá)、AIS 等艦船信息報(bào)告給指揮所并在指揮所安全控制監(jiān)視軟件上實(shí)時(shí)顯示。但當(dāng)海上監(jiān)視系統(tǒng)發(fā)生通信鏈路故障時(shí),就需要通過人工方式向指揮所實(shí)時(shí)匯報(bào)目標(biāo)靶信息,此時(shí)通過人工方式向安全控制監(jiān)視軟件添加目標(biāo)靶信息就顯得尤為重要。

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

艦船信息一般包含船名、經(jīng)度、緯度、操作類別等4 項(xiàng)內(nèi)容。本文軟件設(shè)計(jì)流程為:首先通過通信設(shè)備獲取艦船的位置、速度等信息,然后將艦船信息的格式轉(zhuǎn)換為安全控制軟件支持的格式,最后將此信息發(fā)送到安全控制軟件進(jìn)行顯示。程序信號(hào)流程如圖1所示。

圖1 程序信號(hào)流程

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

為了實(shí)現(xiàn)人工添加目標(biāo)靶信息的功能,需要完成人機(jī)交互界面設(shè)計(jì)、轉(zhuǎn)換船舶信息數(shù)據(jù)格式、向安全控制監(jiān)視軟件發(fā)送數(shù)據(jù)包等環(huán)節(jié)。

2.1 程序界面設(shè)計(jì)

本文基于MFC 平臺(tái),采取對話框模式設(shè)計(jì)程序界面,程序界面如圖2所示。此程序界面中包含有船名、經(jīng)度、緯度、發(fā)送地址等信息,同時(shí)設(shè)置了3 個(gè)按鍵“清空”“刪除目標(biāo)”“增加目標(biāo)”,用戶可通過按鍵實(shí)現(xiàn)相應(yīng)的功能。此界面中,共有“靶船”“經(jīng)度”“緯度”等標(biāo)簽控件11 項(xiàng),船名、經(jīng)緯度數(shù)值信息輸入控件9 項(xiàng),此外還有“清空”“刪除目標(biāo)”“增加目標(biāo)”等按鍵控件3 項(xiàng)。

圖2 程序界面圖

2.2 獲取界面參數(shù)信息

界面設(shè)計(jì)完成之后,就需要從界面中獲取人工添加的船名、經(jīng)緯度等參數(shù)信息。以獲取船名和經(jīng)度信息為例,具體實(shí)現(xiàn)代碼為:

GetDlgItemText(IDC_targetname,targetname,10);//獲取船名

m_jd_degree =GetDlgItemInt(IDC_jd_degree);//獲取經(jīng)度度信息

m_jd_minute =GetDlgItemInt(IDC_jd_minute);//獲取經(jīng)度分信息

m_jd_second =GetDlgItemInt(IDC_jd_second);//獲取經(jīng)度秒信息

在此功能實(shí)現(xiàn)上,通過調(diào)用相應(yīng)的MFC 函數(shù)實(shí)現(xiàn)程序界面參數(shù)的讀取工作,將船名按照字符數(shù)組保存,將經(jīng)緯度信息的度、分、秒按照整型保存。

2.3 信息格式轉(zhuǎn)換

所獲取的程序界面參數(shù)信息并不能直接被安全控制監(jiān)視軟件識(shí)別出來,需要統(tǒng)一成安全控制監(jiān)視軟件所支持的格式后才能被其識(shí)別。安全控制監(jiān)視軟件所支持的數(shù)據(jù)格式為:

#pragma pack(1)// 網(wǎng)絡(luò)包中無邊界對齊填充

struct TarInf {

char Action;// ‘A’=新增,’D’=刪除

char key[5];// 船名

double X;// 經(jīng)度

double Y;// 緯度

};

#pragma pack(pop)

在此數(shù)據(jù)格式中,采取網(wǎng)絡(luò)包中無邊界對齊填充的方式構(gòu)建數(shù)據(jù),其中Action 表明此數(shù)據(jù)包的功能,字符A 表示新增目標(biāo),字符D 表示刪除目標(biāo);船名key 采取字符數(shù)組的方式保存;經(jīng)度和緯度統(tǒng)一成雙浮點(diǎn)型變量。與本文程序界面參數(shù)格式相比,船名均為字符數(shù)組,不需要轉(zhuǎn)換,但經(jīng)緯度信息需要由原來的“度—分—秒”形式轉(zhuǎn)換成“浮點(diǎn)型”單一變量。經(jīng)緯度信息轉(zhuǎn)換的實(shí)現(xiàn)代碼為:

m_jd_degree_all=m_jd_degree+m_jd_minute/60+m_jd_second/60/60;

m_wd_degree_all=m_wd_degree+m_wd_minute/60+m_wd_second/60/60;

通過此環(huán)節(jié),將程序界面中所輸入經(jīng)度和緯度的度分秒信息轉(zhuǎn)換成統(tǒng)一格式的位置信息,為下一步的數(shù)據(jù)打包發(fā)送提供了數(shù)據(jù)基礎(chǔ),方便了后續(xù)的數(shù)據(jù)發(fā)送。

2.4 信息封包

為了實(shí)現(xiàn)最終的數(shù)據(jù)發(fā)送,還需要按照發(fā)送數(shù)據(jù)TarInf結(jié)構(gòu)進(jìn)行數(shù)據(jù)打包,將相關(guān)的船舶信息封裝在相應(yīng)的數(shù)據(jù)包中。為了實(shí)現(xiàn)此功能,本文定義了TarInf 結(jié)構(gòu)變量tarinf,并通過賦值的方式實(shí)現(xiàn)數(shù)據(jù)打包,具體分為目標(biāo)增加、目標(biāo)刪除。

2.4.1 增加目標(biāo)靶信息

TarInf tarinf;//定義目標(biāo)靶信息數(shù)據(jù)包

for(int i=0;i<=4;i++){tarinf.key[i]=targetname[i];}// 目標(biāo)靶名

tarinf.X=m_jd_degree_all;//經(jīng)度

tarinf.Y=m_wd_degree_all;//緯度

tarinf.Action =’A’;//增加目標(biāo)

在此環(huán)節(jié)中,首先定義了TarInf 格式的數(shù)據(jù)tarinf,然后依次對tarinf 的各個(gè)變量進(jìn)行賦值。首先對目標(biāo)靶名進(jìn)行賦值,然后對經(jīng)度信息和緯度信息進(jìn)行賦值,最后按下“增加目標(biāo)”按鍵將tarinf 變量的Action 值賦為字符“A”,最終實(shí)現(xiàn)“添加目標(biāo)”的任務(wù)。

2.4.2 刪除目標(biāo)靶信息

TarInf tarinf;//定義目標(biāo)靶信息數(shù)據(jù)包

for(int i=0;i<=4;i++){tarinf.key[i]=targetname[i];}// 目標(biāo)靶名

tarinf.X=m_jd_degree_all;//經(jīng)度

tarinf.Y=m_wd_degree_all;//緯度

tarinf.Action =’D’;//刪除目標(biāo)

在此環(huán)節(jié)中,與“增加目標(biāo)”功能實(shí)現(xiàn)相似,首先對目標(biāo)靶名進(jìn)行賦值,然后對經(jīng)度信息和緯度信息進(jìn)行賦值,最后按下“刪除目標(biāo)”按鍵將tarinf 變量的Action 值賦為字符“D”,最終實(shí)現(xiàn)“刪除目標(biāo)”的任務(wù)。

2.4.3 清空界面功能

為便于操作人員輸入不同的目標(biāo)靶信息,為此程序設(shè)置了“清空”功能,當(dāng)按下“清空”按鍵時(shí)系統(tǒng)會(huì)將“船名”“經(jīng)度”“緯度”“發(fā)送IP”“發(fā)送PORT”等信息清空,方便操管人員在此輸入信息。此功能的實(shí)現(xiàn)比較簡單,在此不再贅述。

2.5 信息發(fā)送

封裝完數(shù)據(jù)包后,需要將數(shù)據(jù)包發(fā)送到指定的地址,發(fā)送地址IP 和端口信息的獲取方式與船舶信息的獲取方式相同,IP 地址使用字符數(shù)組IP 保存,端口號(hào)使用整型變量PORT 保存。獲取發(fā)送地址信息后,調(diào)用“Winsock2.h”庫中的sendto 函數(shù)實(shí)現(xiàn)數(shù)據(jù)發(fā)送功能,具體實(shí)現(xiàn)代碼為:

SOCKADDR_IN addr;//構(gòu)建發(fā)送地址結(jié)構(gòu)

addr.sin_family=AF_INET;//發(fā)送模式采取UDP

addr.sin_addr.S_un.S_addr=inet_addr(IP);//發(fā)送地址

addr.sin_port=htons(PORT);//發(fā)送端口號(hào)

sendto(m_socket,(char *)lp_tarinf,sizeof(tarinf),0,(SOCKA DDR*)&addr,sizeof(SOCKADDR));//數(shù)據(jù)發(fā)送

此環(huán)節(jié)是發(fā)送封裝好的數(shù)據(jù)最終實(shí)現(xiàn)目標(biāo)顯示,在此環(huán)節(jié)中首先定義SOCKADDR_IN 結(jié)構(gòu)的數(shù)據(jù)addr,然后對addr 的各個(gè)成員變量進(jìn)行賦值,由于本文程序基于UDP 協(xié)議,addr 的sin_family 成員變量賦值為AF_INET,這樣可以實(shí)現(xiàn)UDP 信息的發(fā)送,程序根據(jù)程序界面的“發(fā)送IP”和“發(fā)送PORT”信息,分別將其賦值給addr 的sin_addr 和sin_port 兩個(gè)成員變量,最后調(diào)用sendto 函數(shù)最終實(shí)現(xiàn)數(shù)據(jù)的發(fā)送。

通過以上5 個(gè)步驟完成了程序的界面設(shè)計(jì)、界面參數(shù)獲取、參數(shù)格式轉(zhuǎn)換、數(shù)據(jù)打包、數(shù)據(jù)發(fā)送等功能。

3 實(shí)驗(yàn)驗(yàn)證

最后,針對本文設(shè)計(jì)的人工添加目標(biāo)靶信息軟件進(jìn)行了機(jī)房實(shí)驗(yàn),實(shí)驗(yàn)中設(shè)置船名為“G201”,經(jīng)度為121 度50分42 秒,緯度為38 度43 分13 秒,目標(biāo)地址為組播地址“232.168.5.112”,目標(biāo)端口為5150,然后點(diǎn)擊“增加目標(biāo)”按鍵實(shí)現(xiàn)新增目標(biāo)功能,實(shí)驗(yàn)界面如圖3所示。

圖3 人工報(bào)靶軟件參數(shù)設(shè)置

在安全控制監(jiān)視軟件中效果如圖4所示,在遼寧南部海域出現(xiàn)了新增目標(biāo)“G201”,通過坐標(biāo)讀取工具得到目標(biāo)的經(jīng)度為121.845169 度、緯度為38.720315 度,由計(jì)算結(jié)果可知此值與實(shí)驗(yàn)中設(shè)置的經(jīng)緯度一致。通過真實(shí)環(huán)境下的實(shí)驗(yàn)驗(yàn)證可以看出,本文設(shè)計(jì)的軟件實(shí)現(xiàn)了人工手動(dòng)“添加目標(biāo)”信息的功能,同時(shí)本文還驗(yàn)證了“刪除目標(biāo)”“清空”等功能,可以在無法自動(dòng)接收目標(biāo)靶信息的情況下實(shí)現(xiàn)手動(dòng)添加目標(biāo)信息的功能,且經(jīng)過目標(biāo)位置的比對驗(yàn)證了本文設(shè)計(jì)軟件的精確性。

圖4 安全控制監(jiān)視軟件顯示情況

4 結(jié) 論

本文基于在海上目標(biāo)飛行試驗(yàn)中某些特殊情況下需要人工報(bào)靶的情況,利用MFC 平臺(tái)從信號(hào)流程規(guī)劃、界面設(shè)計(jì)、功能實(shí)現(xiàn)等方面詳細(xì)論述了人工添加目標(biāo)靶信息軟件的設(shè)計(jì)流程,最后通過機(jī)房實(shí)驗(yàn)驗(yàn)證了本文設(shè)計(jì)軟件的可行性,對于彌補(bǔ)海面監(jiān)視系統(tǒng)通信鏈路故障時(shí)無法自動(dòng)獲取目標(biāo)靶信息這一缺陷具有一定的現(xiàn)實(shí)意義。

猜你喜歡
功能信息
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
關(guān)于非首都功能疏解的幾點(diǎn)思考
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達(dá)功能
展會(huì)信息
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
辨證施護(hù)在輕度認(rèn)知功能損害中的應(yīng)用
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产第一福利影院| 亚洲最猛黑人xxxx黑人猛交| 亚洲最新在线| 亚洲成a∧人片在线观看无码| 亚洲精品图区| 久久伊人久久亚洲综合| 国产精品一区不卡| 国产人前露出系列视频| 亚洲国产天堂久久九九九| 欧美精品啪啪一区二区三区| 国产成人亚洲综合A∨在线播放| 欧美三級片黃色三級片黃色1| 国产成人精品视频一区二区电影| 99re免费视频| 欧美视频在线观看第一页| 992tv国产人成在线观看| 成人福利在线视频| 综合天天色| 真人高潮娇喘嗯啊在线观看| 国产成人啪视频一区二区三区| 国产精品无码影视久久久久久久| 欧美激情视频二区三区| 97国产在线视频| 亚洲一区免费看| 免费观看欧美性一级| 91精品国产91久久久久久三级| 99精品国产自在现线观看| 色综合天天综合中文网| 国产一级毛片高清完整视频版| 啊嗯不日本网站| 2020国产精品视频| 亚洲国产系列| 国产亚洲欧美在线人成aaaa| 无码中文字幕乱码免费2| 久久久久九九精品影院| 激情成人综合网| 91久久大香线蕉| 亚洲无线国产观看| 在线高清亚洲精品二区| 久久人人97超碰人人澡爱香蕉| 亚洲福利片无码最新在线播放 | 国产本道久久一区二区三区| 亚洲一级毛片| 日韩A∨精品日韩精品无码| 狠狠色综合网| 日本a级免费| 国产精品夜夜嗨视频免费视频 | 欧美不卡在线视频| 玖玖免费视频在线观看 | 动漫精品啪啪一区二区三区| 午夜性刺激在线观看免费| 91亚洲精品国产自在现线| 成人小视频网| 欧美日本在线观看| 欧美综合在线观看| 亚洲色图综合在线| 午夜天堂视频| 亚洲欧美综合精品久久成人网| 成年人午夜免费视频| 亚洲视频在线观看免费视频| 亚洲天堂网在线观看视频| 欧洲av毛片| 亚洲欧美日韩动漫| 国产综合无码一区二区色蜜蜜| 国产一区二区三区免费| 无码精品国产dvd在线观看9久| 99激情网| 国产资源站| 人人爽人人爽人人片| 丁香婷婷激情综合激情| 免费中文字幕一级毛片| 色偷偷一区二区三区| 欧美A级V片在线观看| 亚洲成人精品久久| 免费a级毛片视频| 国产成人精品三级| 丰满少妇αⅴ无码区| 欧美天堂久久| 欧美黑人欧美精品刺激| 欧美在线一二区| 久久精品丝袜| 国产精品嫩草影院视频|