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

?

字節(jié)流對象模型的設計和應用

2015-02-22 05:48:49施斌薛倡新王華鮑俊雷段慧芬
火力與指揮控制 2015年1期
關鍵詞:數據格式字節(jié)定義

施斌,薛倡新,王華,鮑俊雷,段慧芬

(中國衛(wèi)星海上測控部,江蘇江陰214431)

字節(jié)流對象模型的設計和應用

施斌,薛倡新,王華,鮑俊雷,段慧芬

(中國衛(wèi)星海上測控部,江蘇江陰214431)

航天技術的快速發(fā)展對任務數據處理提出了更高的要求。針對任務數據格式具有層次嵌套、變化頻繁的特點,結合Composite模式設計了字節(jié)流對象模型(BOM)。BOM模型具有表述能力強、可靈活擴展的優(yōu)點。該模型在航天任務數據處理軟件中得到了應用,使得軟件具備較好的可擴展能力。

字節(jié)流對象模型(BOM),設計模式,遞歸,擴展標記語言

0 引言

近年來,航天技術發(fā)展迅速,任務型號多、技術難度高、信息量大及數據格式結構復雜成為趨勢,現有任務軟件的數據模型是基于“幀-字段”組織的,幀格式按照各字段順序排列的形式進行描述,每個字段均對應描述基本字段參數格式。這種結構,存在以下問題:

(1)幀格式中各字段之間的關系是順序固定的,對于分支選擇等類型的復雜層次嵌套數據格式無法描述;

(2)鏈式數據模型的靈活性不好,模塊化程度不高,與程序框架的耦合性高,格式變化影響域大,降低了軟件的可靠性;

(3)數據模型的通用性、擴展性不好,數據格式變化導致頻繁的軟件代碼更動。

因此,現階段基于順序、鏈式的模型結構[1-2]不再適應現階段高密度、高難度及數據格式變化大的任務需求,急需設計一種表述能力更強、通用性好及具有復雜層次嵌套特點的數據模型,而任務數據格式的描述問題是任務數據處理中必須解決的關鍵問題。

1 BOM模型

分析任務數據格式有以下特點:在一個數據格式中,包含若干個字段;每一個字段的格式可能是基本單元,也可能是由若干個更小的片段組成,這樣的劃分可以不斷地遞歸嵌套下去,從而形成非常復雜的數據格式。這種特點符合樹形結構的特征,而Composite模式[3-4]非常適用于描述樹形層次結構。因此,結合Composite模式設計了一種字節(jié)流對象模型(Bytes Object Model,簡稱BOM),具有表述能力強、通用性好、可靈活擴展的優(yōu)點,解決了復雜數據格式的描述問題,并在航天任務數據處理軟件中得到了應用。

1.1 BOM模型的定義

BOM模型描述由若干字節(jié)組成的字節(jié)序列,一個BOM對象描述了一個字節(jié)序列數據對應的格式定義,包括字節(jié)長度、數據類型、處理方法等信息。

1.2 BOM的靜態(tài)結構

BOM模型的靜態(tài)類型結構是樹形結構,符合層次定義、逐層派生的特點。最頂層的是BOM抽象類,作為全體BOM類的基類,其他BOM類均直接或間接從BOM基類派生。BOM類分為兩大類:SectionBOM和CompositeBOM。BOM模型類層次結構如圖1所示。

圖1 BOM模型類圖

SectionBOM類型的BOM是字段BOM,描述了一個基本字節(jié)序列的特征,可直接完成處理,如Int32BOM、TimeBOM等;CompositeBOM類型的BOM是組合BOM,描述了一個復雜字節(jié)序列的特征,無法直接處理,需進一步分解成多個子BOM(Section-BOM或者CompositeBOM),如SequentialBOM、SwitchBOM等。所有BOM類共同構成了BOM類型庫,每個BOM類在BOM庫中都有其對應的位置。

1.3 BOM的動態(tài)結構

運行時動態(tài)構建的BOM對象也是樹形結構的,頂層是一個描述整體字節(jié)序列的Composite-BOM,其下包括了多個描述片段字節(jié)序列的子BOM對象。如果子BOM對象是SectionBOM,則不可再分,屬于“樹葉”節(jié)點;如果子BOM對象是CompositeBOM,則進一步遞歸分解,屬于“樹枝”節(jié)點,最終分解到SectionBOM為止,如圖2所示。

圖2 BOM對象結構圖

2 BOM模型在航天任務數據處理軟件中的應用

在航天任務數據處理軟件的實現過程中,關鍵問題是任務數據格式的描述。除了常規(guī)的順序格式,還存在分支選擇結構、Bit組合結構等復合數據格式,應用BOM模型后,數據格式完全由通用的BOM類進行層次化組織,當需要描述新的層次嵌套格式時,就由CompositeBOM下派生組合BOM描述格式處理邏輯,直至分解到SectionBOM下派生的基本字段BOM,以后類似的處理邏輯可直接繼承使用這些BOM;可以最大限度地利用各種BOM進行組合描述,擴展很靈活,表述能力強大。

本節(jié)以分支選擇結構為例,說明BOM模型在航天任務數據處理軟件中是如何進行應用的。

2.1 數據的格式定義

假定需要描述設備工作狀態(tài)這類數據,其數據域的格式定義見表1所示。

表1中,T是DateTime類型值,L、B、K是Int32

表1 設備工作狀態(tài)的格式定義

類型值,Vp是Byte類型值,其后是一個空白字段(無實際意義,僅用于占位),這些都是基本類型的數據。W不是基本類型的數據,其值根據Vp變化確定:當Vp=0x0時,W表示設備狀態(tài)原碼,按十六進制原碼值解析;當Vp=0x3時,W表示設備狀態(tài)模式計數,按SByte類型值解析;當Vp=0x1A時,W表示設備狀態(tài)含義,需要進一步按bit解析:b7~b3、b0無效,b2、b1按位定義狀態(tài)信息。

2.2 數據的BOM樹結構

根據2.1節(jié)的定義,可以構建出該類數據的BOM樹結構,如下頁圖3所示。

頂層的SequentialBOM表示設備工作狀態(tài)的整個數據域,第二層的TimeBOM、3個Int32BOM和ByteBOM分別對應T、L、B、K、Vp,PadBOM對應空白字段,SwitchBOM對應W,第三層及以下具體描述W的格式。W的格式根據Vp值條件判斷后確定,因此,SwitchBOM其下的3個CaseBOM分別對應三種條件:第1個CaseBOM表示Vp=0x0的情況,具體格式由HexBOM描述,對應設備狀態(tài)原碼;第2個CaseBOM表示Vp=0x3的情況,具體格式由SByteBOM描述,對應設備狀態(tài)模式計數;第3個CaseBOM表示Vp=0x1A的情況,具體格式由Bit-BoxBOM描述,對應設備狀態(tài)含義,具體格式進一步按bit解析。最下層的2個BitPadBOM和2個Bit-StateBOM對應描述了設備狀態(tài)含義的具體位定義。

圖3 設備工作狀態(tài)的BOM樹結構圖

在設備工作狀態(tài)的BOM樹中,SequentialBOM、SwitchBOM、CaseBOM和BitBoxBOM屬于CompositeBOM,其他BOM均屬于SectionBOM。

當設備工作狀態(tài)的數據格式發(fā)生變化時,有兩種情況:一種情況是參數的數據類型已有對應的BOM類,例如航向K參數需按4字節(jié)UInt32類型處理,則只需將該參數對應BOM設置為UInt32BOM即可;另一種情況是現有的BOM類無法描述參數的數據類型,例如需增加雷達標識TS參數,需按照3字節(jié)UInt24類型處理,由于現有BOM無法描述該類型,則先由SectionBOM派生出新的UInt24BOM類描述該類型,然后該參數就可以使用UInt24BOM描述。由上可見,BOM模型的表述能力很強,擴展也很靈活。

2.3 數據的動態(tài)處理流程

在運行時,關鍵問題是如何控制子BOM的執(zhí)行順序,即BOM的流控制問題。各級CompositeBOM類型的BOM均定義了流控制方法,實現對所屬子BOM執(zhí)行順序的控制算法。

如圖4所示,說明一幀設備工作狀態(tài)數據的處理流程。首先,提取其數據域部分字節(jié)流。然后,由頂層SequentialBOM負責處理該字節(jié)流,由于該BOM定義為順序執(zhí)行所屬子BOM,因此,具體處理分別順序委托給第二層的子BOM完成。其中,W參數對應的SwitchBOM定義為分支選擇流控制方式,根據設置的條件值屬性委托給第三層中符合條件的某個CaseBOM處理,CaseBOM直接委托給第四層子BOM處理,以下的處理過程均遞歸進行。最終,處理過程終結于各“樹葉”BOM。

圖4 設備工作狀態(tài)的處理流程圖

2.4 數據的BOM樹結構的持久化

另一個重要問題是如何保存內存中構建的BOM樹結構信息,即BOM樹結構的持久化問題。BOM對象的內存結構是一種具有層次性、不對稱特點的結構,一般文件格式無法有效描述其結構。XML作為一種應用范圍廣泛的元語言,具有定義嚴格、結構清晰、靈活易讀的特點,且非常適合表示半結構化的樹形結構。因此,采用XML文件格式,將數據的BOM樹中各級BOM類型和屬性(包括名稱、字節(jié)長度、字段方法等)信息持久化到XML文件中。下面是一個XML格式文件的內容片段,該文件中保存了設備工作狀態(tài)的BOM樹結構信息:

通過定義各級BOM類的序列化和反序列化方法,利用反射技術動態(tài)獲取和設置BOM對象的類型和屬性信息,這樣就可以一致、直觀地在BOM對象的內存結構與XML格式信息之間進行相互映射轉換,從而達到一次配置、多次重用的目的。

3 結論

針對任務數據格式具有層次嵌套、變化頻繁的特點,本文設計了一種字節(jié)流對象模型(BOM),具有表述能力強、通用性好、可靈活擴展等優(yōu)點。該模型在航天任務數據處理軟件中得到了應用。通過應用BOM模型,有效描述了各類任務數據格式,解決了復雜數據格式的描述問題,使得軟件具備良好的通用性及可擴展能力。

[1]彭四偉,朱群雄.形式化描述驅動的數據幀解析與處理[J].計算機工程與應用,2006,42(5):179-181.

[2]董立,趙恒永.基于編譯技術的協(xié)議解析方法[J].計算機工程,2007,33(21):66-68.

[3]Gamma E,Helm R,Johnson R,et al.設計模式:可復用面向對象軟件的基礎(雙語版)[M].北京:機械工業(yè)出版社,2007:497-504.

[4]閻宏.Java與模式[M].北京:電子工業(yè)出版社,2002:409-419.

Design and Application of Bytes Object Model

SHI Bin,XUE Chang-xin,WANG Hua,BAO Jun-lei,DUAN Hui-fen
(China Satellite Maritime TT&C Department,Jiangyin 214431,China)

The rapid development of space technology makes higher demands on mission data processing.Given that the formats of mission data are hierarchical and nested structures,and change frequently,Bytes Object Model(BOM)is designed based on Composite pattern.BOM model has the advantage of strong expressiveness and flexible extensibility.That this model is utilized in Space Mission Data Process Software makes the software have excellent ability of extension.

Bytes Object Model(BOM),design patterns,recursion,XML

TP391

A

1002-0640(2015)01-0163-04

2013-10-15

:2014-01-07

施斌(1982-),男,江蘇江陰人,碩士,工程師。研究方向:計算機應用、計算機圖形學等。

猜你喜歡
數據格式字節(jié)定義
No.8 字節(jié)跳動將推出獨立出口電商APP
No.10 “字節(jié)跳動手機”要來了?
在智能交通系統(tǒng)中PLC數據格式轉換方法的研究
電子測試(2018年1期)2018-04-18 11:52:49
簡談MC7字節(jié)碼
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
論子函數在C語言數據格式輸出中的應用
DWG與SHP數據格式互轉換方法研究——以龍巖規(guī)劃測繪數據為例
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
基于ArcGIS的規(guī)劃數據格式轉換研究
山的定義
公務員文萃(2013年5期)2013-03-11 16:08:37
滕州市| 三门县| 乐昌市| 柯坪县| 拜城县| 山阳县| 焦作市| 彩票| 莒南县| 区。| 宁波市| 沐川县| 尼勒克县| 崇明县| 河源市| 高阳县| 灯塔市| 邵东县| 西乡县| 专栏| 保亭| 连南| 荥经县| 巨野县| 方正县| 招远市| 忻州市| 子洲县| 丹凤县| 大渡口区| 金沙县| 闸北区| 边坝县| 郑州市| 留坝县| 郯城县| 温宿县| 辽宁省| 荣成市| 宜城市| 揭阳市|