畢學(xué)軍,徐大超,肖 慶,劉海寧,石長(zhǎng)愛,高 飛
(1.裝甲兵工程學(xué)院 信息工程系,北京 100072; 2.中國(guó)兵器科學(xué)研究院,北京 100012;3. 95942部隊(duì),武漢 430313)
?
可變消息格式報(bào)文編解碼工具設(shè)計(jì)
畢學(xué)軍1,徐大超1,肖慶1,劉海寧2,石長(zhǎng)愛3,高飛3
(1.裝甲兵工程學(xué)院 信息工程系,北京100072; 2.中國(guó)兵器科學(xué)研究院,北京100012;3. 95942部隊(duì),武漢430313)
摘要:VMF(可變消息格式)報(bào)文有著廣泛應(yīng)用前景。但當(dāng)前的模擬生成方法生成報(bào)文效率低,對(duì)原系統(tǒng)數(shù)據(jù)庫(kù)依賴大,在應(yīng)用過(guò)程中無(wú)法滿足實(shí)際需要。為了解決這一矛盾,分析了VMF的報(bào)文格式,建立了VMF戰(zhàn)術(shù)消息結(jié)構(gòu)描述數(shù)據(jù)庫(kù),從關(guān)鍵代碼和算法上改進(jìn)了VMF編解碼代碼生成技術(shù),設(shè)計(jì)了VMF報(bào)文編解碼工具。
關(guān)鍵詞:指揮信息系統(tǒng);VMF;編解碼
本文引用格式:畢學(xué)軍,徐大超,肖慶,等.可變消息格式報(bào)文編解碼工具設(shè)計(jì)[J].兵器裝備工程學(xué)報(bào),2016(7):94-101.
Citationformat:BIXue-jun,XUDa-chao,XIAOQing,etal.DesignofVMFMessageEncodingandDecodingTool[J].JournalofOrdnanceEquipmentEngineering,2016(7):94-101.
近年來(lái),隨著VMF逐漸展露其優(yōu)越性,各國(guó)軍隊(duì)廣泛采用了VMF報(bào)文。VMF報(bào)文具有大小可變,節(jié)省帶寬以及在惡劣通信條件下有強(qiáng)大的生存能力等諸多優(yōu)點(diǎn)[1]。
目前,VMF報(bào)文在應(yīng)用過(guò)程中存在著很多不足之處,如VMF編解碼效率低,對(duì)原系統(tǒng)的數(shù)據(jù)庫(kù)依賴大,無(wú)法滿足實(shí)際的需要。本文設(shè)計(jì)了一種VMF報(bào)文編解碼工具,實(shí)驗(yàn)證明能夠大幅度提高編解碼效率。
1VMF報(bào)文的應(yīng)用現(xiàn)狀及報(bào)文結(jié)構(gòu)描述方式
1.1VMF報(bào)文的應(yīng)用現(xiàn)狀
戰(zhàn)術(shù)消息標(biāo)準(zhǔn)是指揮控制系統(tǒng)中戰(zhàn)術(shù)系統(tǒng)間信息交換的信息表示、編碼規(guī)范,是保證各系統(tǒng)實(shí)現(xiàn)互連、互通、互操作的基礎(chǔ)。目前美國(guó)等國(guó)家的指揮控制系統(tǒng)中主要采用VMF戰(zhàn)術(shù)消息與其他系統(tǒng)進(jìn)行數(shù)據(jù)交換。
現(xiàn)在大多數(shù)的指揮控制系統(tǒng)中的報(bào)文編解碼構(gòu)件以C++ 函數(shù)調(diào)用的方式為應(yīng)用程序提供二次開發(fā)接口,它需要滿足針對(duì)單個(gè)應(yīng)用程序的報(bào)文的編解碼處理需求。在2.4GHz主頻,2G內(nèi)存,100M帶寬局域網(wǎng)環(huán)境下,現(xiàn)有指揮控制系統(tǒng)報(bào)文編解碼構(gòu)件對(duì)本地編解碼動(dòng)態(tài)庫(kù)的編碼速度要求為≤80ms(不超過(guò)250字節(jié)的報(bào)文)。該性能指標(biāo)基本滿足單個(gè)應(yīng)用軟件處理單條報(bào)文的需求,但無(wú)法滿足大批量交互報(bào)文的編解碼性能的需求。
同時(shí)VMF有很多技術(shù)優(yōu)勢(shì),如:
1) 信息編碼標(biāo)準(zhǔn)是面向比特。它不僅可以減少發(fā)送的數(shù)據(jù)量,而且可以提高機(jī)器自動(dòng)識(shí)別度和處理效率;
2) 由于其編碼標(biāo)準(zhǔn),VMF可利用網(wǎng)絡(luò)資源,提高信息的適應(yīng)性和有效性;
3)VMF的具體格式和長(zhǎng)度可以在實(shí)際應(yīng)用中調(diào)整;
4) 由于其靈活的語(yǔ)法,VMF只允許用戶發(fā)送必要的信息,所需信息的大小可以改變,從而減少傳輸?shù)臄?shù)據(jù)量并節(jié)省帶寬[2]。
綜上所述,VMF報(bào)文編解碼有著極大的技術(shù)優(yōu)勢(shì),但同時(shí)在應(yīng)用方面還存在著諸多不足。
1.2VMF報(bào)文結(jié)構(gòu)描述方式
VMF在進(jìn)行信息交換時(shí),會(huì)受到各種各樣干擾因素的影響,對(duì)其產(chǎn)生影響較大的是傳輸信號(hào)的強(qiáng)弱。一般來(lái)講,在對(duì)VMF實(shí)行傳輸時(shí),可以使用按需傳輸?shù)乃枷耄ㄟ^(guò)這種思想進(jìn)行傳輸,將會(huì)極大增加傳輸信息的效率。
VMF消息格式采用如表1的形式進(jìn)行描述,報(bào)文標(biāo)準(zhǔn)中每條報(bào)文以Kn.m形式進(jìn)行標(biāo)識(shí),其中K為報(bào)文所屬系列,n是報(bào)文數(shù)據(jù)的目前方位,m是報(bào)文的唯一編號(hào)。根據(jù)報(bào)文內(nèi)容和字段的需要,VMF中包含了多種元素,因而它可作為對(duì)數(shù)據(jù)元素字典的參考,數(shù)據(jù)元素字典的結(jié)構(gòu)如圖1所示,數(shù)據(jù)元素字典對(duì)各數(shù)據(jù)元素的值域、取值含義進(jìn)行定義,包含了標(biāo)識(shí)數(shù)據(jù)元素類別的數(shù)據(jù)域標(biāo)識(shí)(datafieldsidentifier,DFI)、標(biāo)識(shí)數(shù)據(jù)域使用方式的數(shù)據(jù)使用標(biāo)識(shí)(datauseidentifier,DUI)、描述屬性的數(shù)據(jù)項(xiàng)(dataitem,DI)[3]。
表1 VMF消息結(jié)構(gòu)描述方式
圖1 VMF數(shù)據(jù)字典結(jié)構(gòu)
表2給出了一個(gè)實(shí)際的VMF消息結(jié)構(gòu)示例,在該表中可以看到,一條自由文電消息由一個(gè)FRI指示符和一個(gè)可重復(fù)的文本字段構(gòu)成,該報(bào)文最多可傳輸6條長(zhǎng)度不超過(guò)2048個(gè)字符的字符串信息。如需要通過(guò)自由文電報(bào)文傳輸一條內(nèi)容為“請(qǐng)求空中支援”的文本信息時(shí),該文本信息被編碼為“2ED7 81E7 77E1 83 4DAD4FA9 5D01 0F”14個(gè)二進(jìn)制字節(jié)數(shù)據(jù),可見,相對(duì)于固定長(zhǎng)度的報(bào)文格式,VMF消息格式可自動(dòng)根據(jù)傳輸內(nèi)容調(diào)整數(shù)據(jù)編碼長(zhǎng)度,最大限度地節(jié)約傳輸信道資源。
表2 自由文電報(bào)文實(shí)例分析
2VMF報(bào)文編解碼工具設(shè)計(jì)
在通信過(guò)程中,戰(zhàn)術(shù)消息的編碼解碼是一個(gè)較為復(fù)雜而又必須解決的問(wèn)題。指揮控制系統(tǒng)報(bào)文編解碼構(gòu)件服務(wù)中的各構(gòu)件相互依賴性強(qiáng),耦合度高,其設(shè)計(jì)目的是針對(duì)低密度的報(bào)文進(jìn)行編解碼,性能指標(biāo)不能滿足大數(shù)量級(jí)報(bào)文處理的需求。因此,需要設(shè)計(jì)低耦合,可以高速處理大量報(bào)文的編解碼工具。
2.1VMF報(bào)文編解碼方法
當(dāng)前指揮控制系統(tǒng)中的報(bào)文編解碼構(gòu)件通過(guò)構(gòu)建統(tǒng)一的報(bào)文規(guī)則模型,實(shí)現(xiàn)戰(zhàn)術(shù)數(shù)據(jù)報(bào)文的編解碼、報(bào)文校驗(yàn)、報(bào)文轉(zhuǎn)換功能?,F(xiàn)有指揮控制系統(tǒng)報(bào)文編解碼構(gòu)件由通用報(bào)文編解碼、報(bào)文基礎(chǔ)數(shù)據(jù)腳本管理、報(bào)文編解碼數(shù)據(jù)文件等多個(gè)部分組成。其操作流程是首先通過(guò)報(bào)文基礎(chǔ)數(shù)據(jù)腳本管理組件建立報(bào)文描述的數(shù)據(jù)文件;其次在報(bào)文編碼前確定編碼報(bào)文的類型和子類型,在模版分類表中映射到相應(yīng)的記錄并獲得模版編號(hào);再次,從待編碼報(bào)文結(jié)構(gòu)中提取相應(yīng)的數(shù)據(jù)元素;最后,將模版編號(hào)和數(shù)據(jù)元素按需組裝成短報(bào)文[4]。解碼的過(guò)程就是對(duì)上述操作的逆處理,如圖2所示。
圖2 VMF報(bào)文編解碼處理流程
2.2VMF戰(zhàn)術(shù)消息結(jié)構(gòu)描述數(shù)據(jù)庫(kù)
本文建立戰(zhàn)術(shù)消息結(jié)構(gòu)描述數(shù)據(jù)庫(kù),對(duì)戰(zhàn)術(shù)消息結(jié)構(gòu)及其處理規(guī)則進(jìn)行描述,并在其基礎(chǔ)上,通過(guò)建立輔助代碼生成工具生成VMF報(bào)文編解碼程序代碼的方式解決上述問(wèn)題。
VMF編解碼程序生成工具的設(shè)計(jì)邏輯圖如圖3所示。VMF編解碼生成工具依托報(bào)文結(jié)構(gòu)數(shù)據(jù)庫(kù),結(jié)合應(yīng)用程序源文件生成.cpp和.h文件,通過(guò)“硬編碼”的方式,與C++ 編譯器、鏈接器連接,生成應(yīng)用程序可執(zhí)行文件。該方式獨(dú)立于各類編譯器和構(gòu)件,不同于現(xiàn)有報(bào)文編解碼構(gòu)件服務(wù)編解碼過(guò)程中的對(duì)腳本和數(shù)據(jù)元素字典的逐次訪問(wèn),在設(shè)計(jì)理念上優(yōu)越于傳統(tǒng)指揮控制系統(tǒng)報(bào)文編解碼構(gòu)件服務(wù)。
圖3 VMF編解碼程序邏輯框圖
通過(guò)VMF戰(zhàn)術(shù)消息結(jié)構(gòu)描述數(shù)據(jù)庫(kù)對(duì)戰(zhàn)術(shù)消息標(biāo)準(zhǔn)規(guī)定的所有數(shù)據(jù)項(xiàng)、數(shù)據(jù)項(xiàng)字典、數(shù)據(jù)變換關(guān)系以及戰(zhàn)術(shù)消息組成結(jié)構(gòu)進(jìn)行描述,作為戰(zhàn)術(shù)消息編解碼工具生成各消息編解碼程序代碼的基礎(chǔ)。
數(shù)據(jù)庫(kù)由數(shù)據(jù)項(xiàng)、數(shù)據(jù)域、數(shù)據(jù)字典和數(shù)值變換規(guī)則4個(gè)數(shù)據(jù)表組成,如圖4所示。
圖4 VMF戰(zhàn)術(shù)消息結(jié)構(gòu)描述數(shù)據(jù)庫(kù)
其中〈pk〉表示數(shù)據(jù)表的主鍵,〈fk〉表示數(shù)據(jù)表的外鍵。數(shù)據(jù)項(xiàng)表描述了戰(zhàn)術(shù)消息結(jié)構(gòu)最簡(jiǎn)單的各類信息。數(shù)據(jù)域描述了某一條消息具體的邏輯構(gòu)成。數(shù)據(jù)字典描述了數(shù)據(jù)項(xiàng)可變值的具體含義。數(shù)據(jù)變換表描述了數(shù)據(jù)物理值到邏輯值的線性映射。以經(jīng)度數(shù)據(jù)項(xiàng)為例,經(jīng)度的物理的表示不能在報(bào)文中直接傳輸,應(yīng)轉(zhuǎn)換為二進(jìn)制編碼,通過(guò)下列分段函數(shù)完成從整數(shù)到二進(jìn)制編碼的變換(l為經(jīng)度物理值,L為變換后的經(jīng)度邏輯值)。
(1)
2.3基本數(shù)據(jù)類型字段編碼處理過(guò)程
VMF消息中的基本數(shù)據(jù)字段,從數(shù)據(jù)類型上看可分為兩種基本類型:整數(shù)類型和字符串類型,各種類型需要采取不同的方式進(jìn)行處理。
對(duì)整數(shù)數(shù)據(jù)字段編解碼處理的算法模型偽代碼如下:START_BYTE_ADDR_BUF()
CALCULATE_BITOFFSET()
WHILE(!RECHEDTHETOTALNUMBEROFENCODING)
{INPUT_VALUEISSHIFTEDTOTHERIGHTONE
IF(THELOWESTINPUTVALUEFORTHEINPUTVALUEIS1)
SET_P_BITOFFSET=1
BITOFFSET++ //BITOFFSET代表位偏移量
IF(BITOFFSET= 8)
{BITOFFSET= 0
P++}
IF(REACHEDTHETOTALNUMBEROFENCODING)
CODE_SUCCESS}
CALCULATETHEENDADDRESSOFTHEINPUTBUFFER
CALCULATE_BITOFFSET()
V=0
IF(BITOFFSET==1)
SETTHELOWESTLEVELOFVTO1
BITOFFSET--
IF(BITOFFSET==0)
BITOFFSET=7
P--
IF(REACHEDTHETOTALNUMBEROFENCODING)
DECODE_SUCCESS對(duì)于整數(shù)數(shù)據(jù)字段的編解碼處理流程如圖5、圖6所示。
可變消息格式是按位編解碼的處理方式,不同于計(jì)算機(jī)處理按字節(jié)處理的方式,所以采用位操作的方式進(jìn)行編解碼操作。在可變消息格式報(bào)文中,字符串?dāng)?shù)據(jù)采取可變長(zhǎng)度的連續(xù)8位字節(jié)流表示,在字符串實(shí)際長(zhǎng)度不足最大編碼位數(shù)時(shí),以8位連續(xù)的0作為結(jié)束標(biāo)志,而在字符串實(shí)際長(zhǎng)度與最大編碼位數(shù)相同時(shí),則不需填充結(jié)束標(biāo)志。因字符串編碼處理過(guò)程的特點(diǎn),程序中需記錄消息標(biāo)準(zhǔn)中字符串?dāng)?shù)據(jù)的最大編碼長(zhǎng)度,因此程序通過(guò)下述結(jié)構(gòu)對(duì)字符串?dāng)?shù)據(jù)進(jìn)行描述。
圖5 整數(shù)數(shù)據(jù)類型字段編碼處理過(guò)程
圖6 整數(shù)數(shù)據(jù)類型字段解碼處理過(guò)程
字符串?dāng)?shù)據(jù)的編碼處理如圖7、圖8所示。
圖7 字符串?dāng)?shù)據(jù)編碼處理過(guò)程
圖8 字符串?dāng)?shù)據(jù)解碼處理過(guò)程
2.4可選與可重復(fù)數(shù)據(jù)項(xiàng)表示及編碼處理
在VMF消息中,數(shù)據(jù)項(xiàng)之前都可附加PFI或GFI指示符,表明該數(shù)據(jù)項(xiàng)在實(shí)際消息中是否存在。如果對(duì)應(yīng)的指示符為0,表明后續(xù)的數(shù)據(jù)項(xiàng)在實(shí)際消息內(nèi)容中不存在,為此,程序中使用下述算法模型對(duì)帶有出現(xiàn)指示符的可選數(shù)據(jù)項(xiàng)進(jìn)行描述。
ENCODE1BYTETOPRESENT
IF(PRESENT= 1)
ENCODINGVALUETOOUTPUTBUFFER
DECODEABITTOPRESENTFROMTHEINPUTBUFFER
IF(PRESENT=1 )
DECODEVALUESFROMTHEINPUTBUFFER通過(guò)上述結(jié)構(gòu)設(shè)計(jì),可選數(shù)據(jù)項(xiàng)采用的編解碼過(guò)程如圖9、圖10所示。
圖9 可選數(shù)據(jù)項(xiàng)編碼處理過(guò)程
圖10 可選數(shù)據(jù)項(xiàng)解碼處理過(guò)程
在VMF消息中,數(shù)據(jù)項(xiàng)前可以使用FRI或GRI指示符進(jìn)行控制,表明該數(shù)據(jù)項(xiàng)或組可以在消息中多次出現(xiàn),如果指示符值為0,表明該項(xiàng)是最后一次出現(xiàn),否則,表明該項(xiàng)后仍然存在同類數(shù)據(jù)內(nèi)容。
通過(guò)上述結(jié)構(gòu)設(shè)計(jì),可重復(fù)數(shù)據(jù)項(xiàng)采用的編解碼過(guò)程如圖11、圖12所示。
圖11 可重復(fù)數(shù)據(jù)項(xiàng)編碼處理過(guò)程
圖12 可重復(fù)數(shù)據(jù)項(xiàng)解碼處理過(guò)程
VMF消息中整數(shù)類型數(shù)據(jù)項(xiàng)可采取枚舉值或數(shù)值變換方式,用以表示實(shí)際的物理含義,為便于統(tǒng)一處理,根據(jù)上述數(shù)據(jù)庫(kù)中數(shù)據(jù)項(xiàng)的描述記錄描述程序中定義函數(shù):
bool(*strtoval) (constsd::string&str,__v_int32 &val);
bool(*valtostr) (const__v_int32 &val,std::string&str);
將數(shù)據(jù)項(xiàng)取值在字符串表示的物理值和邏輯值之間進(jìn)行轉(zhuǎn)換,并針對(duì)每個(gè)整數(shù)類型的基本數(shù)據(jù)項(xiàng),生成對(duì)應(yīng)的數(shù)據(jù)值轉(zhuǎn)換函數(shù)。
2.5VMF報(bào)文輔助代碼生成工具設(shè)計(jì)
一套較為完備的消息標(biāo)準(zhǔn),通常含有大量的VMF消息類型[5],而每條消息也通常具有較為復(fù)雜的內(nèi)部結(jié)構(gòu)[6],為表示這些消息的內(nèi)部結(jié)構(gòu)并實(shí)現(xiàn)消息的編解碼處理,完全由手工編寫程序代碼顯然不現(xiàn)實(shí)。因此,需要開發(fā)軟件工具輔助程序代碼的生成,為便于消息結(jié)構(gòu)描述和編解碼程序代碼的自動(dòng)生成,程序中定義如表3所示的一組宏。
表3 編、解碼輔助宏定義
在這組宏的輔助下,依據(jù)數(shù)據(jù)庫(kù)中對(duì)于戰(zhàn)術(shù)消息結(jié)構(gòu)的描述,經(jīng)過(guò)處理即可完成戰(zhàn)術(shù)消息表示和編解碼處理的程序代碼,以用于標(biāo)識(shí)導(dǎo)航的Kμ.β報(bào)文為例,通過(guò)結(jié)構(gòu)化的程序獲得的報(bào)文數(shù)據(jù)結(jié)構(gòu)如表4所示。
表4 通過(guò)程序得到報(bào)文數(shù)據(jù)結(jié)構(gòu)解析
通過(guò)已經(jīng)定義的編、解碼輔助宏,以Kμ.?作為TYPENAME的參數(shù),依次使用BEGIN_PACK、END_PACK、BEGIN_UNPACK、END_UNPACK完成對(duì)Kμ.?導(dǎo)航報(bào)文的編解碼。初始報(bào)文各項(xiàng)參數(shù)大小的值分別為0,0,3,4,7,0,1 600。經(jīng)過(guò)編碼的處理后各項(xiàng)參數(shù)大小的值仍為0,0,3,4,7,0,1 600。其0代表數(shù)組數(shù)據(jù)類型,非0代表數(shù)據(jù)類型的大小。上述結(jié)果證明報(bào)文編解碼過(guò)程在結(jié)構(gòu)上準(zhǔn)確無(wú)誤。
2.5.1VMF報(bào)文編解碼工具的實(shí)現(xiàn)
VMF編解碼輔助生成工具用于自動(dòng)生成VMF報(bào)文編解碼程序。用戶通過(guò)該工具可進(jìn)行VMF消息基本數(shù)據(jù)項(xiàng)和VMF消息結(jié)構(gòu)的編輯,編輯的結(jié)果存放在消息結(jié)構(gòu)描述數(shù)據(jù)庫(kù)中。完成VMF消息基本數(shù)據(jù)項(xiàng)和VMF消息結(jié)構(gòu)的編輯后,工具首先進(jìn)行數(shù)據(jù)項(xiàng)的依賴分析,然后按依賴關(guān)系將數(shù)據(jù)項(xiàng)進(jìn)行排序并依次生成數(shù)據(jù)項(xiàng)的值變換處理函數(shù)和VMF消息表示數(shù)據(jù)結(jié)構(gòu),最后生成各VMF消息的編解碼函數(shù)。其處理過(guò)程如圖13所示。
圖13 報(bào)文編解碼程序代碼生成處理過(guò)程
VMF編解碼輔助生成工具軟件運(yùn)行界面如圖14所示。左側(cè)數(shù)據(jù)項(xiàng)窗口顯示消息描述數(shù)據(jù)庫(kù)中的數(shù)據(jù)項(xiàng),通過(guò)右鍵點(diǎn)擊的方式可以編輯相應(yīng)數(shù)據(jù)項(xiàng)的數(shù)據(jù)字典。右側(cè)VMF消息中顯示消息描述數(shù)據(jù)庫(kù)中的VMF消息類型。
圖14 VMF編解碼輔助生成工具軟件運(yùn)行界面
2.5.2與現(xiàn)有報(bào)文編解碼構(gòu)件編解碼性能比較
在相同硬件條件下,通過(guò)對(duì)不同大小的報(bào)文分別用實(shí)裝報(bào)文編解碼構(gòu)件和VMF報(bào)文編解碼工具進(jìn)行編解碼,測(cè)量編解碼所需時(shí)間以比較兩種工具的性能。
測(cè)試對(duì)象:編解碼戰(zhàn)術(shù)定位報(bào)文所需的時(shí)間
硬件環(huán)境:2.53GHz主頻,IntelCore3CPU,4G內(nèi)存的計(jì)算機(jī)
操作系統(tǒng):WindowsXP
分組方法:設(shè)置戰(zhàn)術(shù)定位報(bào)文中重復(fù)組個(gè)數(shù)1~64,其相應(yīng)的報(bào)文大小為24~1493字節(jié)
測(cè)試方法:由于單次編解碼報(bào)文的時(shí)間極短難以測(cè)量,在考慮到不影響實(shí)驗(yàn)結(jié)果并減小誤差的情況下,本實(shí)驗(yàn)采用將同一報(bào)文編解碼105次取平均值的方法計(jì)算單次編解碼報(bào)文的時(shí)間。分別采樣開始編解碼時(shí)間t1和結(jié)束編解碼時(shí)間t2,取它們之間的差值,然后除以105即為對(duì)相同報(bào)文編、解碼一次的時(shí)間t0
(2)
測(cè)量結(jié)果:分別測(cè)量VMF編解碼輔助工具所產(chǎn)生代碼與實(shí)裝報(bào)文、解碼構(gòu)件對(duì)戰(zhàn)術(shù)定位報(bào)文的編解碼耗費(fèi)時(shí)間,對(duì)比詳細(xì)結(jié)果如表5所示。
現(xiàn)有指控軟件報(bào)文編解碼構(gòu)件與本文提出的VMF編解碼方法的編解碼時(shí)間執(zhí)行效率比較如圖15所示。
圖15 VMF編解碼與現(xiàn)有指揮控制系統(tǒng)報(bào)文編解碼構(gòu)件執(zhí)行效率比較
表5 VMF與實(shí)裝報(bào)文編解碼構(gòu)件編解碼時(shí)間的數(shù)據(jù)結(jié)
由于VMF編解碼方法的編解碼效率遠(yuǎn)高于實(shí)裝報(bào)文編解碼構(gòu)件的編解碼的效率,圖15很難看出VMF編碼解碼時(shí)間的相互關(guān)系,將VMF編解碼方法隨著戰(zhàn)術(shù)定位報(bào)文中重復(fù)組個(gè)數(shù)增加,所需時(shí)間線性變化的過(guò)程如圖16所示。
圖16 VMF編解碼執(zhí)行效率比較
結(jié)果分析:通過(guò)兩種方法對(duì)戰(zhàn)術(shù)定位報(bào)文編解碼執(zhí)行時(shí)間的比較,可見在報(bào)文大小為1493字節(jié)時(shí),VMF解碼效率提高了34倍,編碼效率提高了118倍。從其中可以看出,兩種編解碼方法的時(shí)間復(fù)雜度都隨報(bào)文大小增加呈線性增長(zhǎng)即O(cn),但現(xiàn)有指控軟件報(bào)文編解碼構(gòu)件和本文提出的VMF編解碼方法在線性復(fù)雜度常數(shù)c上存在很大差異(現(xiàn)有指控軟件報(bào)文編解碼構(gòu)件與本文提出的VMF編解碼方法在編解碼效率上相差兩個(gè)數(shù)量級(jí))。其原因是,現(xiàn)有指控軟件報(bào)文編解碼構(gòu)件將報(bào)文的結(jié)構(gòu)和數(shù)據(jù)字典信息存放在數(shù)據(jù)文件中,在報(bào)文編解碼的過(guò)程中需要頻繁地訪問(wèn)數(shù)據(jù)文件,而本文提出的VMF編解碼方法將報(bào)文的結(jié)構(gòu)和數(shù)據(jù)字典信息硬編碼在自動(dòng)生成的C++ 源代碼中,在運(yùn)行時(shí)不再需要訪問(wèn)外部數(shù)據(jù),大大提高了編解碼的效率,從而滿足數(shù)據(jù)網(wǎng)關(guān)集中處理大量戰(zhàn)術(shù)消息的需求。
3結(jié)論
本研究在對(duì)VMF報(bào)文結(jié)構(gòu)描述的基礎(chǔ)上,通過(guò)分析VMF報(bào)文編解碼方法,創(chuàng)造性的建立了VMF戰(zhàn)術(shù)消息結(jié)構(gòu)描述數(shù)據(jù)庫(kù),從關(guān)鍵代碼和算法上研究了VMF編解碼代碼生成技術(shù),最終完成了VMF報(bào)文編解碼工具的設(shè)計(jì)。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,本方法大大提高了編解碼的效率。本工具的設(shè)計(jì)具有極高的應(yīng)用價(jià)值,可以大大提高程序員編寫相應(yīng)指控軟件速度,還能應(yīng)用到部隊(duì)指揮控制軟件中,從而大大提高作戰(zhàn)時(shí)信息傳遞效率。
參考文獻(xiàn):
[1]張佳晨,吳澤民,田暢.VMF編、解碼器與指控系統(tǒng)通用接口的設(shè)計(jì)[J].軍事通信技術(shù),2011(3):1-7.
[2]劉巍,張慕華,劉永平,等.無(wú)連接多級(jí)可靠傳輸協(xié)議的研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2007(B12):29-31.
[3]耿臘元,毛玉泉,丁笑亮,等.基于VMF的近距空中支援應(yīng)用研究[J].艦船電子工程,2009,29(7):9-12..
[4]RODRIGUESRB,MENDESVMF,CATALAOJPS.LightningDataObservedWithLightningLocationSysteminPortugal[J].IEEETransactionsonPowerDelivery,2010,25(2):870-875.
[5]WANGP,LUM,LIY,etal.AnAirborneLaser(ABL)WeaponSimulationSystemBasedonHLA[J].JournalofNorthwesternPolytechnicalUniversity,2011,29(2):198-204.
[6]王璇,羅強(qiáng)一,陳少卿.可變報(bào)文格式測(cè)試工具設(shè)計(jì)方法[J].測(cè)試技術(shù)學(xué)報(bào),2015(1):41-47.
(責(zé)任編輯楊繼森)
收稿日期:2016-01-29;修回日期:2016-02-29
作者簡(jiǎn)介:畢學(xué)軍(1975—),男,碩士,副教授,主要從事指揮信息系統(tǒng)、軟件測(cè)試研究;徐大超(1992—),男,碩士研究生,主要從事指揮信息系統(tǒng)、軟件測(cè)試研究。
doi:10.11809/scbgxb2016.07.021
中圖分類號(hào):TP311.1
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):2096-2304(2016)07-0094-08
DesignofVMFMessageEncodingandDecodingTool
BIXue-jun1,XUDa-chao1,XIAOQing1,LIUHai-ning2,SHIChang-ai3,GAOFei3
(1.InformationandCommunicationEngineering,AcademyofArmoredForcesEngineering,Beijing100072,China; 2.ChineseAcademyofArmamentScience,Beijing100089,China;3.TheNo. 95942ndTroopofPLA,Wuhan430313,China)
Abstract:VMF (Variable Message Format) message has a broad application prospects. But today’s simulation generation is too low and has a great dependence on the original system database, which can not meet our needs in practical applications. To solve this cntradiction, firstly, paper analyzed the VMF message format. Then, we established the VMF tactics memssage structure describes database, and improved the VMF codec code generation from the key code and algorithms. We designed VMF message codec tools.
Key words:command information system; VMF; encoding and decoding
【信息科學(xué)與控制工程】