本發(fā)明屬于航海導(dǎo)航技術(shù)領(lǐng)域,尤其是一種面向紙海圖作業(yè)的激光振鏡跨區(qū)域指示方法。
背景技術(shù):
海圖標(biāo)繪臺設(shè)備屬于航海作業(yè)設(shè)備,為海軍提供航海過程中的基本導(dǎo)航、態(tài)勢監(jiān)視和輔助紙海圖標(biāo)繪的功能。目前,我海軍的海圖標(biāo)繪臺設(shè)備采用機(jī)械原理控制標(biāo)繪點(diǎn),且在同一時刻只能實(shí)現(xiàn)單點(diǎn)目標(biāo)的跟蹤和指示,目標(biāo)間的指示切換耗時長,難以完成多目標(biāo)指示,無法滿足現(xiàn)代化海戰(zhàn)的軍事要求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種設(shè)計(jì)合理、快速準(zhǔn)確且使用方便的面向紙海圖作業(yè)的激光振鏡跨區(qū)域指示方法。
本發(fā)明解決現(xiàn)有的技術(shù)問題是采取以下技術(shù)方案實(shí)現(xiàn)的:
一種面向紙海圖作業(yè)的激光振鏡跨區(qū)域指示方法,包括以下步驟:
步驟1、定標(biāo)器通過人機(jī)交互界面確定光點(diǎn)指示的位置和顯示方式,然后將其轉(zhuǎn)換為控制指令并發(fā)送給接口機(jī);
步驟2、接口機(jī)接收定標(biāo)器傳來的控制指令并接收處理數(shù)據(jù);
步驟3、接口機(jī)對每一個指示光點(diǎn)進(jìn)行激光振鏡的跨區(qū)域指示處理,并將處理后的數(shù)據(jù)寫入內(nèi)存,釋放讀寫信號量;
步驟4:接口機(jī)向激光振鏡多光點(diǎn)指示系統(tǒng)發(fā)送數(shù)據(jù);
步驟5:激光振鏡多光點(diǎn)指示系統(tǒng)根據(jù)接口機(jī)發(fā)來的數(shù)據(jù)進(jìn)行顯示,從而實(shí)現(xiàn)面向紙海圖作業(yè)的激光振鏡跨區(qū)域指示功能。
所述步驟1顯示方式包括光點(diǎn)的顏色和閃爍頻率。
所述步驟2的具體方法為:接口機(jī)啟動網(wǎng)絡(luò)接收線程,待接收到定標(biāo)器發(fā)來的控制指令后,通過數(shù)據(jù)讀寫的互斥處理獲取讀寫信號量,然后按照與定標(biāo)器之間的網(wǎng)絡(luò)應(yīng)用層協(xié)議對數(shù)據(jù)進(jìn)行解析,得到待指示光點(diǎn)的個數(shù)、位置和顯示方式并將這些信息存于內(nèi)存結(jié)構(gòu)體中。
所述步驟3接口機(jī)對每一個指示光點(diǎn)進(jìn)行激光振鏡的跨區(qū)域指示處理的方法包括以下步驟:
(1)創(chuàng)建并初始化兩個光點(diǎn)鏈表,一個用于保存所有光點(diǎn)的當(dāng)前顯示狀態(tài),另一個用于保存將要顯示的狀態(tài);
(2)對待顯示的光點(diǎn)位置進(jìn)行坐標(biāo)轉(zhuǎn)換,將所有振鏡的整體坐標(biāo)轉(zhuǎn)換為光點(diǎn)所在振鏡的相對坐標(biāo),同時獲取待顯示光點(diǎn)所在振鏡的起始光點(diǎn)id號;如果坐標(biāo)和id均在合理范圍內(nèi)則繼續(xù)后續(xù)處理,否則處理結(jié)束;
(3)按照待顯示要求創(chuàng)建一個光點(diǎn),并在當(dāng)前顯示鏈表中判斷是否已經(jīng)具有相同的光點(diǎn);
(4)若沒有相同光點(diǎn),則在所在振鏡中尋找未使用的光點(diǎn)id賦給該光點(diǎn),設(shè)置該光點(diǎn)的位置、顏色和顯示方式,同時設(shè)置使用標(biāo)識和改變標(biāo)識均為true;
(5)若在當(dāng)前顯示鏈表中已包含相同光點(diǎn),則在新鏈表中判斷原光點(diǎn)對應(yīng)的id是否被占用,如果沒被占用,則直接使用先前id號,同時設(shè)置光點(diǎn)的使用標(biāo)識為true,改變標(biāo)識為false,如果已經(jīng)被占用,則將占用原id的光點(diǎn)移走,為它尋找新的未使用id,再將原光點(diǎn)置為原id,同時設(shè)置光點(diǎn)的使用標(biāo)識為true,改變標(biāo)識為false。
所述步驟4的具體處理方法為包括以下步驟:
(1)創(chuàng)建并初始化串口發(fā)送線程;
(2)如果有控制數(shù)據(jù)準(zhǔn)備好,則在當(dāng)前顯示鏈表中遍歷所有光點(diǎn),逐個判斷待顯示鏈表中是否繼續(xù)顯示,若不顯示則設(shè)置光點(diǎn)的使用標(biāo)識為true;
(3)在待顯示鏈表中遍歷所有光點(diǎn),將使用的光點(diǎn)狀態(tài)按照報文格式組合成串口報文,存儲于發(fā)送數(shù)據(jù)緩沖區(qū)中;
(4)交換當(dāng)前顯示鏈表和待顯示鏈表;
(5)將待顯示鏈表中的數(shù)據(jù)恢復(fù)為初始值;
(6)通過串口向激光振鏡多點(diǎn)指示系統(tǒng)發(fā)送數(shù)據(jù),并清空發(fā)送數(shù)據(jù)緩沖區(qū)。
所述激光振鏡多光點(diǎn)指示系統(tǒng)由12塊激光振鏡采用4*3的矩陣式排列方式組成,激光振鏡多光點(diǎn)指示系統(tǒng)對于給定具體位置、顏色及閃爍頻率的光點(diǎn),由其位置所在的激光振鏡負(fù)責(zé)控制光點(diǎn)的顯示。
本發(fā)明的優(yōu)點(diǎn)和積極效果是:
本發(fā)明在海圖標(biāo)繪臺中引入激光振鏡技術(shù),并通過人機(jī)交互界面確定光點(diǎn)指示的位置和顯示方式,接口機(jī)接收到定標(biāo)器傳來的信息后進(jìn)行數(shù)據(jù)處理,然后再發(fā)送給激光振鏡多光點(diǎn)指示系統(tǒng),實(shí)現(xiàn)激光振鏡多光點(diǎn)指示系統(tǒng)的多個激光振鏡的跨區(qū)域指示功能,具有快速準(zhǔn)確、使用方便等特點(diǎn)。
附圖說明
圖1為本發(fā)明的數(shù)據(jù)接收和處理的數(shù)據(jù)流程圖;
圖2為本發(fā)明的激光振鏡多光點(diǎn)指示系統(tǒng)示意圖;
圖3為本發(fā)明的激光振鏡的跨區(qū)域指示算法處理流程圖;
圖4為本發(fā)明的數(shù)據(jù)讀取與發(fā)送的數(shù)據(jù)流程圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明實(shí)施例做進(jìn)一步詳述:
一種面向紙海圖作業(yè)的激光振鏡跨區(qū)域指示方法,是在海圖標(biāo)繪臺設(shè)備上實(shí)現(xiàn)的。海圖標(biāo)繪臺設(shè)備由定標(biāo)器(顯示界面)、接口機(jī)(用于數(shù)據(jù)傳輸和振鏡控制)和激光振鏡指示系統(tǒng)組成。定標(biāo)器內(nèi)置有定標(biāo)器軟件并通過人機(jī)交互界面確定光點(diǎn)指示的位置和顯示方式(顏色和閃爍頻率),然后將其編碼為控制指令發(fā)送給接口機(jī);接口機(jī)接收到定標(biāo)器傳來的信息后進(jìn)行數(shù)據(jù)處理,然后再發(fā)送給激光振鏡多光點(diǎn)指示系統(tǒng),實(shí)現(xiàn)激光振鏡多光點(diǎn)指示系統(tǒng)的控制。
本發(fā)明引入激光振鏡技術(shù),每個激光振鏡通過分時復(fù)用的方法,利用人眼視覺暫留的性質(zhì),同時標(biāo)繪3個不同位置的光點(diǎn),通過選取12個振鏡組成振鏡矩陣(4*3),使光點(diǎn)可指示的范圍擴(kuò)大到1000*700mm,構(gòu)成面向紙海圖作業(yè)的激光振鏡多光點(diǎn)指示系統(tǒng)。
一種面向紙海圖作業(yè)的激光振鏡跨區(qū)域指示方法,包括以下步驟:
步驟1、定標(biāo)器通過人機(jī)交互界面確定光點(diǎn)指示的位置和顯示方式,然后將其轉(zhuǎn)換為控制指令并發(fā)送給接口機(jī)。
在本步驟中,定標(biāo)器內(nèi)置有定標(biāo)器軟件,通過該定標(biāo)器軟件確定光點(diǎn)指示的位置和顯示方式,顯示方式包括顏色和閃爍頻率。
步驟2、接口機(jī)接收定標(biāo)器傳來的控制指令并接收處理數(shù)據(jù)。
如圖1所述,接口機(jī)首先啟動網(wǎng)絡(luò)接收線程,待接收到定標(biāo)器發(fā)來的控制指令后,通過數(shù)據(jù)讀寫的互斥處理獲取讀寫信號量,置新數(shù)據(jù)產(chǎn)生的標(biāo)志位m_Valid為true,然后按照與定標(biāo)器之間的網(wǎng)絡(luò)應(yīng)用層協(xié)議對數(shù)據(jù)進(jìn)行解析,得到待指示光點(diǎn)的個數(shù)、位置和顯示方式并將這些信息存于內(nèi)存結(jié)構(gòu)體中。
步驟3、接口機(jī)對每一個指示光點(diǎn)進(jìn)行激光振鏡的跨區(qū)域指示處理,并將處理后的數(shù)據(jù)寫入內(nèi)存,釋放讀寫信號量。
如圖2所示,激光振鏡多光點(diǎn)指示系統(tǒng)由12塊激光振鏡采用4*3的矩陣式排列方式組成,每一個激光振鏡可控制250*233mm范圍內(nèi)的光點(diǎn)指示。對于給定具體位置、顏色及閃爍頻率的光點(diǎn),由其位置所在的激光振鏡負(fù)責(zé)控制光點(diǎn)的顯示。
在進(jìn)行激光振鏡的跨區(qū)域指示處理前,需要進(jìn)行如下初始化工作:
(1)創(chuàng)建并初始化兩個光點(diǎn)鏈表,一個用于保存36個光點(diǎn)的當(dāng)前顯示狀態(tài),另一個用于保存將要顯示的狀態(tài);
(2)對數(shù)據(jù)產(chǎn)生標(biāo)志位m_bValid進(jìn)行初始化,設(shè)置為false。
在進(jìn)行初始化后,按照圖3進(jìn)行激光振鏡的跨區(qū)域指示處理。具體步驟如下:
(1)對待顯示的光點(diǎn)位置進(jìn)行坐標(biāo)轉(zhuǎn)換,將12塊振鏡的整體坐標(biāo)轉(zhuǎn)換為光點(diǎn)所在振鏡的相對坐標(biāo),同時獲取待顯示光點(diǎn)所在振鏡的起始光點(diǎn)id號。經(jīng)判斷,若坐標(biāo)和id均在合理范圍內(nèi)則繼續(xù)后續(xù)處理,否則結(jié)束算法。
(2)按照待顯示要求(包括位置、顏色和顯示方式)創(chuàng)建一個光點(diǎn),并在當(dāng)前顯示鏈表中判斷是否已經(jīng)具有相同的光點(diǎn)(位置、顏色和顯示方式均相同)。
(3)若沒有相同光點(diǎn),則在所在振鏡中尋找未使用的光點(diǎn)id賦給該光點(diǎn),設(shè)置該光點(diǎn)的位置、顏色和顯示方式,同時設(shè)置使用標(biāo)識和改變標(biāo)識均為true;
(4)若在當(dāng)前顯示鏈表中已包含相同光點(diǎn),則在新鏈表中判斷原光點(diǎn)對應(yīng)的id是否被占用,如果沒被占用,則直接使用先前id號,同時設(shè)置光點(diǎn)的使用標(biāo)識為true,改變標(biāo)識為false,如果已經(jīng)被占用,則將占用原id的光點(diǎn)移走,為它尋找新的未使用id,再將原光點(diǎn)置為原id,同時設(shè)置光點(diǎn)的使用標(biāo)識為true,改變標(biāo)識為false。
經(jīng)上述幾步處理后,實(shí)現(xiàn)控制指令到內(nèi)存數(shù)據(jù)的轉(zhuǎn)換。
最后,經(jīng)數(shù)據(jù)讀寫的互斥處理,釋放信號量。
步驟4:接口機(jī)向激光振鏡多光點(diǎn)指示系統(tǒng)發(fā)送數(shù)據(jù)。
在步驟1、2、3實(shí)施后,數(shù)據(jù)接收線程向發(fā)送線程發(fā)出數(shù)據(jù)已準(zhǔn)備好信號,發(fā)送線程讀取數(shù)據(jù)并通過串口向激光振鏡多光點(diǎn)指示系統(tǒng)發(fā)送數(shù)據(jù)。具體流程如圖4所示,包括以下步驟:
(1)創(chuàng)建并初始化串口發(fā)送線程;
(2)如果有控制數(shù)據(jù)準(zhǔn)備好,則在當(dāng)前顯示鏈表中遍歷36個光點(diǎn),逐個判斷待顯示鏈表中是否繼續(xù)顯示,若不顯示則設(shè)置光點(diǎn)的使用標(biāo)識為true、改變標(biāo)識為false;
(3)在待顯示鏈表中遍歷36個光點(diǎn),將使用的光點(diǎn)狀態(tài)(位置、顏色和顯示方式)按照報文格式組合成串口報文,存儲于發(fā)送數(shù)據(jù)緩沖區(qū)中;
(4)交換當(dāng)前顯示鏈表和待顯示鏈表;
(5)將待顯示鏈表中的數(shù)據(jù)恢復(fù)為初始值;
通過串口向激光振鏡多光點(diǎn)指示系統(tǒng)發(fā)送數(shù)據(jù),并清空發(fā)送數(shù)據(jù)緩沖區(qū)。
步驟5:激光振鏡多光點(diǎn)指示系統(tǒng)根據(jù)接口機(jī)發(fā)來的數(shù)據(jù)進(jìn)行顯示,從而實(shí)現(xiàn)面向紙海圖作業(yè)的激光振鏡跨區(qū)域指示功能。
本發(fā)明的工作原理為:接口機(jī)接收到定標(biāo)器的控制指令后,按照網(wǎng)絡(luò)應(yīng)用層的報文傳輸協(xié)議解析出需要激光振鏡系統(tǒng)指示的光點(diǎn)個數(shù)、位置和顯示方式,這里接收到的位置為12個激光振鏡器經(jīng)矩陣式排列后組成的整體平面坐標(biāo),接口機(jī)對該位置信息進(jìn)行激光振鏡之間的跨區(qū)域換算后得到針對單個激光振鏡器的控制指令,最后通過串口發(fā)送給激光振鏡多光點(diǎn)指示系統(tǒng)。在連續(xù)接收到定標(biāo)器發(fā)來的控制指令時,指示光點(diǎn)的個數(shù)、位置和顯示方式會不斷發(fā)生變化,接口機(jī)需要將新的指示信息和原有的指示信息進(jìn)行不斷對比處理,關(guān)閉一些不再顯示的光點(diǎn),同時開啟一些新的光點(diǎn)。另外,同一激光振鏡器內(nèi)最多有三個光點(diǎn)同時顯示,需要加以控制。
本發(fā)明在CentOS系統(tǒng)中,以QtCreator為開發(fā)環(huán)境進(jìn)行軟件仿真,成功實(shí)現(xiàn)了與定標(biāo)器之間的網(wǎng)絡(luò)通訊和激光振鏡多光點(diǎn)指示系統(tǒng)的控制。實(shí)現(xiàn)了面向紙海圖作業(yè)的激光振鏡跨區(qū)域指示算法在海圖標(biāo)繪臺中的應(yīng)用。使海圖標(biāo)繪臺達(dá)到了多光點(diǎn)指示的目的,同時提高了目標(biāo)的顯示切換時間,能夠更大化滿足我海軍的應(yīng)用需求。
需要強(qiáng)調(diào)的是,本發(fā)明所述的實(shí)施例是說明性的,而不是限定性的,因此本發(fā)明包括并不限于具體實(shí)施方式中所述的實(shí)施例,凡是由本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的技術(shù)方案得出的其他實(shí)施方式,同樣屬于本發(fā)明保護(hù)的范圍。