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

?

基于VBScript的遙測(cè)數(shù)據(jù)處理技術(shù)研究

2015-07-28 12:47王利偉劉春光
現(xiàn)代電子技術(shù) 2015年11期
關(guān)鍵詞:遙測(cè)數(shù)據(jù)處理

王利偉 劉春光

摘 要: 飛行器的遙測(cè)數(shù)據(jù)幀格式隨型號(hào)、批次而不同,給遙測(cè)數(shù)據(jù)處理帶來(lái)很大不便。利用ActiveX Scripting 技術(shù)能實(shí)現(xiàn)VBScript引擎嵌入到遙測(cè)處理程序中,使得遙測(cè)處理程序在不修改程序的情況下能夠通過(guò)VBScript腳本靈活處理多變的數(shù)據(jù)幀格式。經(jīng)應(yīng)用證明,該技術(shù)具有配置靈活、可擴(kuò)展性強(qiáng)等特點(diǎn),能夠滿足不同格式遙測(cè)數(shù)據(jù)解析的需要。

關(guān)鍵詞: 遙測(cè); 數(shù)據(jù)處理; VBScript; 幀解析模塊

中圖分類號(hào): TN975?34; V557+.3 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)11?0117?02

Research on telemetry data processing technology based on VBScript

WANG Li?wei, LIU Chun?guang

(Detachment of 94, Unit 91550 of PLA, Dalian 116023, China)

Abstract: The frame format of telemetry data for aircraft is different with models and batches, so it is inconvenient for the telemetry data processing. VBScript engine embedded into the telemetry processing program is realized by using ActiveX Scripting technology, with no program modification of the telemetry processing programs, the various data frame formats are processed by VBScript. The application proves that the proposed technology has the advantages of flexible configuration, good extensibility and so on, and can satisfy the demands of analysis for telemetry data in different formats.

Keywords: telemetry; data processing; VBScript; frame analysis module

0 引 言

因飛行器型號(hào)不同、批次不同,遙測(cè)數(shù)據(jù)幀格式定義也不盡相同。為處理不同格式的遙測(cè)數(shù)據(jù)幀,或者需要重新編制遙測(cè)處理程序,或者需要修改原有程序,因軟件開(kāi)發(fā)測(cè)試造成的工作量增加、風(fēng)險(xiǎn)增大,給遙測(cè)數(shù)據(jù)處理工作帶來(lái)很大不便。

腳本語(yǔ)言具有強(qiáng)大的描述能力和靈活的語(yǔ)法結(jié)構(gòu),為應(yīng)用程序提供腳本支持及進(jìn)行混合語(yǔ)言開(kāi)發(fā),是實(shí)現(xiàn)可擴(kuò)展和可定制的有效方案[1]。為改變以上不利局面,設(shè)想通過(guò)在遙測(cè)數(shù)據(jù)處理程序中引入腳本引擎的方式以達(dá)到解決上述問(wèn)題的目的,并進(jìn)行了有益的嘗試。

1 ActiveX Scripting技術(shù)

腳本語(yǔ)言通過(guò)腳本引擎解釋執(zhí)行,通過(guò)在應(yīng)用程序中嵌入腳本引擎,可以使應(yīng)用程序解釋執(zhí)行用戶的程序文本,將它譯成計(jì)算機(jī)能執(zhí)行的機(jī)器代碼,完成一系列的功能,從而達(dá)到應(yīng)用程序可擴(kuò)展的目的。ActiveX Scripting技術(shù)是Microsoft Automation技術(shù)和Script技術(shù)結(jié)合的產(chǎn)物,是Microsoft ActiveX技術(shù)的一個(gè)組成部分[2]。利用ActiveX Scripting技術(shù),通過(guò)在遙測(cè)數(shù)據(jù)處理軟件中嵌入VBScript引擎,從而在軟件中執(zhí)行VBScript腳本。

現(xiàn)有的腳本引擎的功能不能滿足需要時(shí),可以通過(guò)自定義函數(shù)或接口擴(kuò)展腳本。Microsoft Automation技術(shù)以COM(組件對(duì)象模型)為基礎(chǔ),所有的Automation對(duì)象都實(shí)現(xiàn)了標(biāo)準(zhǔn)的IDispatch接口,通過(guò)IDispatch接口暴露自定義的屬性和方法,可以在腳本中使用這些屬性和方法,Automation對(duì)象提供事件處理。腳本引擎根據(jù)對(duì)象的類型信息,把其中對(duì)對(duì)象屬性和方法的引用解釋為對(duì)IDispatch接口成員函數(shù)Invoke的調(diào)用,從而實(shí)現(xiàn)對(duì)對(duì)象的控制。通過(guò)這一機(jī)制,可以在遙測(cè)數(shù)據(jù)處理軟件中創(chuàng)建Automation對(duì)象,將其屬性和方法暴露給腳本引擎,腳本引擎通過(guò)IDispatch接口調(diào)用屬性和方法的處理。

2 基于VBScript的遙測(cè)數(shù)據(jù)幀解析技術(shù)

2.1 遙測(cè)數(shù)據(jù)幀特點(diǎn)

遙測(cè)數(shù)據(jù)幀的數(shù)據(jù)定義千差萬(wàn)別,但其結(jié)構(gòu)一般都包含幀頭、幀標(biāo)志、幀數(shù)據(jù)、幀校驗(yàn)、幀尾(有些遙測(cè)數(shù)據(jù)幀定義中不包含幀校驗(yàn))[3],可以用以下形式表示:

其中,為幀頭,為幀標(biāo)志,為幀數(shù)據(jù),為幀校驗(yàn),為幀尾。

幀數(shù)據(jù)是按一定格式定義的字段組成,用于表示監(jiān)測(cè)的各個(gè)物理量參數(shù),其結(jié)構(gòu)構(gòu)成和表示的物理量的計(jì)算公式差別很大。

遙測(cè)數(shù)據(jù)處理過(guò)程中一般要經(jīng)過(guò)主幀分路、幀解析、分析顯示等過(guò)程,如圖1所示。主幀分路模塊依據(jù)分路配置信息進(jìn)行分路,分路后的數(shù)據(jù)幀文件作為幀解析模塊的輸入;幀解析模塊首先依據(jù)幀格式定義解析幀結(jié)構(gòu),之后經(jīng)過(guò)物理量還原得到各個(gè)參數(shù)的物理量結(jié)果,該結(jié)果作為分析顯示模塊的輸入。

數(shù)據(jù)幀字段經(jīng)解析計(jì)算后輸出為表示的物理量的值,這一過(guò)程是遙測(cè)數(shù)據(jù)處理中非常重要的步驟。由于要處理的遙測(cè)數(shù)據(jù)幀格式種類多,變化比較大,解析計(jì)算字段并輸出物理量參數(shù)需要經(jīng)常修改遙測(cè)數(shù)據(jù)處理軟件。

2.2 基于VBScript的遙測(cè)數(shù)據(jù)幀解析技術(shù)

現(xiàn)有的遙測(cè)數(shù)據(jù)處理軟件的幀解析模塊使用VC++開(kāi)發(fā),為了實(shí)現(xiàn)通過(guò)VBScript腳本靈活處理遙測(cè)數(shù)據(jù)幀的目的,需要在幀解析模塊中嵌入VBScript腳本引擎。利用ActiveX Scripting技術(shù)可以方便地實(shí)現(xiàn)在解析模塊中嵌入VBScript引擎,從而在軟件中執(zhí)行VBScript腳本,需要對(duì)幀解析模塊進(jìn)行如下修改:

(1) 實(shí)現(xiàn)回調(diào)接口IActiveScriptSite

腳本引擎通過(guò)IActiveScript->SetScriptSite()實(shí)現(xiàn)回調(diào),從而在程序中取得引擎的狀態(tài)信息,并提供用戶的自定義變量的自動(dòng)化對(duì)象。

(2) 創(chuàng)建VBScript引擎對(duì)象

使用CoCreateInstance()創(chuàng)建VBScript腳本引擎,獲得該引擎的接口IActiveScript。

(3) 擴(kuò)展腳本方法

現(xiàn)有的腳本引擎的功能不能滿足需要時(shí),可以通過(guò)自定義函數(shù)或接口擴(kuò)展腳本。為計(jì)算字段的值并給字段賦值,至少需要擴(kuò)展字段取原始值和賦計(jì)算結(jié)果接口,即:

VARIANT GetVal (VARIANT fieldID, VARIANT fieldLen);

//根據(jù)字段ID取字段原始值,fieldLen表示字段所占字節(jié)數(shù)

SetVal (VARIANT fieldID, VARIANT newValue);

//設(shè)置字段的計(jì)算結(jié)果值

如果需要處理非整字節(jié)字段(即bit位字段),還需擴(kuò)展位字段取原始值和賦計(jì)算結(jié)果的接口函數(shù),與上面的方法類似,不再一一列舉。

(4) 解釋執(zhí)行用戶代碼

通過(guò)IActiveScript->QueryInterface()取得IActiveScriptParse接口,IActiveScriptParse用于解釋執(zhí)行用戶的腳本代碼。

解析軟件內(nèi)部主控模塊與腳本引擎的關(guān)系如圖2所示。

在遙測(cè)程序中嵌入VBScript腳本引擎后,通過(guò)VBScript腳本能夠進(jìn)行復(fù)雜的邏輯計(jì)算,可以實(shí)現(xiàn)很靈活的擴(kuò)展和配置,在不修改解析模塊代碼的前提下可以實(shí)現(xiàn)對(duì)不同格式的遙測(cè)數(shù)據(jù)解析。

2.3 應(yīng)用舉例

例一:計(jì)算單字段情況

遙測(cè)幀中計(jì)算壓力字段是較常見(jiàn)的,下面以計(jì)算某壓力字段為例進(jìn)行說(shuō)明,該壓力字段幀內(nèi)ID為1,計(jì)算公式如下:

[y=1 000x-200] (1)

式中:[x]為壓力字段的原始值;[y]為該壓力物理量的實(shí)際值。

根據(jù)公式(1),該壓力字段的VBScript計(jì)算腳本為:

上述腳本中,通過(guò)SetVal()函數(shù)設(shè)置該壓力字段的計(jì)算結(jié)果后,該結(jié)果就可作為分析顯示模塊的輸入。

例二:輸出結(jié)果需要多個(gè)字段的情況

GPS接收機(jī)偽距觀測(cè)值的計(jì)算需要表1中的字段。

字段“偽距觀測(cè)值”并不是在遙測(cè)數(shù)據(jù)幀中的字段,加上該字段的配置是為了輸出最終的“偽距觀測(cè)值”這一物理量的需要。

表1 字段表

[字段ID\&字段名稱\&類型\&長(zhǎng)度\&備注\&12\&GPS周秒\&double\&4\&\&22\&偽碼相位\&int\&4\&\&125\&偽距觀測(cè)值\&double\&\&非幀內(nèi)字段\&]

偽距觀測(cè)值計(jì)算公式如下:

[p=(S-λ(1 023 000.0×2 048.0))?c] (2)

式中:[p]為偽距觀測(cè)值;[S]為GPS周秒;[λ]為偽碼相位;c為光速[4],取為299 792 458.0。

根據(jù)式(2)偽距觀測(cè)值的取值腳本如下:

實(shí)際上字段的計(jì)算公式比較復(fù)雜且格式多,利用VBScript腳本計(jì)算不常見(jiàn)公式的字段值大大提高了遙測(cè)幀數(shù)據(jù)處理時(shí)的靈活性。

3 結(jié) 語(yǔ)

由于工程應(yīng)用中面對(duì)的飛行器型號(hào)多遙測(cè)數(shù)據(jù)幀格式多變,要編制一個(gè)通用的遙測(cè)數(shù)據(jù)解析軟件存在較大難度,本文在遙測(cè)數(shù)據(jù)幀解析的通用性方面做了有益的嘗試。由于將VBScript引擎嵌入到解析模塊,從而可以利用VBScript的靈活性實(shí)現(xiàn)對(duì)不同遙測(cè)幀格式的處理,無(wú)需修改解析模塊源代碼。經(jīng)過(guò)應(yīng)用證明,該技術(shù)具有配置靈活、可擴(kuò)展性強(qiáng)等特點(diǎn),能夠滿足不同格式遙測(cè)數(shù)據(jù)解析的需要。

參考文獻(xiàn)

[1] OUSTERHOUT J K. Scripting: higher level programming for the 21st century [J]. IEEE Computer, 1998, 31(3): 23?30.

[2] 呂思偉,潘愛(ài)民.ActiveX Scripting技術(shù)介紹[J].微電腦世界, 1999(1):1?3.

[3] 展勇忠,柯朝祥,舒海濤.靶場(chǎng)試驗(yàn)遙測(cè)數(shù)據(jù)實(shí)時(shí)處理軟件技術(shù)[J].國(guó)防技術(shù)基礎(chǔ),2007(11):52?56.

[4] 熊志昂.GPS技術(shù)與工程應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2005.

[5] 羅振貴,鄭永秋,李圣昆.固態(tài)記錄器在遙測(cè)數(shù)據(jù)回收中的應(yīng)用研究[J].現(xiàn)代電子技術(shù),2013,36(7):111?114.

[6] 常樹(shù)龍.空空導(dǎo)彈遙測(cè)數(shù)據(jù)三維實(shí)時(shí)顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2010,33(4):64?66.

猜你喜歡
遙測(cè)數(shù)據(jù)處理
認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
前饋復(fù)合控制在提高遙測(cè)跟蹤性能中的應(yīng)用
ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
遠(yuǎn)程控制式遙測(cè)地面站關(guān)鍵技術(shù)研究
某小型無(wú)人機(jī)遙測(cè)軟件設(shè)計(jì)
淺談如何提高遙測(cè)狀態(tài)估計(jì)合格率
MATLAB在化學(xué)工程與工藝實(shí)驗(yàn)數(shù)據(jù)處理中的應(yīng)用
Matlab在密立根油滴實(shí)驗(yàn)數(shù)據(jù)處理中的應(yīng)用
利用VBA處理鄰近氣象站的相關(guān)遙測(cè)數(shù)據(jù)
利用遙測(cè)儀測(cè)量活塞運(yùn)動(dòng)
404 Not Found

404 Not Found


nginx
德钦县| 太和县| 耿马| 深泽县| 泊头市| 称多县| 开平市| 光山县| 通化县| 康定县| 石楼县| 海伦市| 项城市| 旬阳县| 准格尔旗| 社旗县| 瓮安县| 巴中市| 兴业县| 耒阳市| 米林县| 西乡县| 大方县| 舞阳县| 平度市| 泗阳县| 汾阳市| 吕梁市| 赞皇县| 原阳县| 阿拉善盟| 临高县| 承德市| 九龙坡区| 鸡西市| 谷城县| 灵璧县| 常宁市| 瑞金市| 芜湖县| 黄冈市|