16、在類型定義和信息對象集中使用擴(kuò)展標(biāo)記有什么區(qū)別?擴(kuò)展標(biāo)記是否不可見?
擴(kuò)展標(biāo)記就類型定義而言是不可見的,但就簡單表約束和組件關(guān)系約束而言并非不可見。
類型本身是可擴(kuò)展的,與限制它是可擴(kuò)展的對象集之間是有區(qū)別的。在類型是可擴(kuò)展的情況下,它天生可以采用可擴(kuò)展約束允許的任何值。例如,
INTEGER(1..8, ...)
可以隨時(shí)假設(shè)任何有效值。將此與使用簡單表約束進(jìn)行約束的 INTEGER類型進(jìn)行對比,在這種類型中,此類類型只能假定在該類型被編碼/解碼時(shí)恰好包含在信息對象集中的那些值。隨著程序的運(yùn)行,這可能會隨著時(shí)間的推移而變化,因?yàn)榭蓴U(kuò)展信息對象集中的對象集可能會在運(yùn)行時(shí)發(fā)生變化。
在BER、DER和 CER的情況下,這種區(qū)別不太重要,其中類型的可擴(kuò)展性在其編碼方式中不發(fā)揮作用,但在PER 中起主要作用。在 PER 中,使用擴(kuò)展標(biāo)記“...”定義的類型的值使用1 位前綴進(jìn)行編碼,當(dāng)設(shè)置為0 時(shí),意味著后面的值在擴(kuò)展根中,因此以優(yōu)化的形式編碼。(例如,上面示例中的值 1-8 將被編碼為3 位)。但是,當(dāng)設(shè)置為 1 時(shí),意味著后面的值以更通用的形式編碼。(例如,上例中不在 1-8 范圍內(nèi)的值占用16 位或更多位)。
17、你能解釋一下類型可擴(kuò)展性在PER 中是如何工作的嗎?
考慮以下兩個(gè)ASN.1 語法定義:
A::= SEQUENCE { --defined in v1
f1BOOLEAN,
f2BOOLEAN,
...,
}
A::= SEQUENCE { --defined in v2
f1BOOLEAN,
f2BOOLEAN,
...,
e1BOOLEAN OPTIONAL,
e2BOOLEAN
}
類型可擴(kuò)展性背后的目的是允許不理解新字段的V1 應(yīng)用程序接收具有它無法識別的字段的V2 消息,并將它們視為由V1 應(yīng)用程序發(fā)送,同樣,對于V2 應(yīng)用程序來說接收缺少字段的 V1 消息。如果 V2 應(yīng)用程序收到缺少強(qiáng)制擴(kuò)展添加的消息,它可以安全地假定該消息是由V1 應(yīng)用程序發(fā)起的。
只有在擴(kuò)展附加位圖中有一個(gè)位表示存在/不存在哪些擴(kuò)展附加值時(shí),才必須對擴(kuò)展標(biāo)記之后的強(qiáng)制字段進(jìn)行編碼。因此,在強(qiáng)制擴(kuò)展附加 y 之后定義了擴(kuò)展附加x,并且 x的值存在于編碼中,那么y 的值必須存在。此外,如果強(qiáng)制擴(kuò)展附加 y 是SEQUENCE 中的最后一個(gè)組件,并且在擴(kuò)展附加位圖中存在一個(gè)位,則該位必須設(shè)置為1,因?yàn)樵撐坏拇嬖诒砻飨⒌陌l(fā)起者知道這個(gè)擴(kuò)展添加,因此它的存在是強(qiáng)制性的。只有當(dāng)消息是從未定義強(qiáng)制擴(kuò)展添加的早期版本的消息定義中繼時(shí),才可以省略它(在這種情況下,擴(kuò)展添加位圖中將沒有位)。ITU-T 建議X.680(2008) 25.15 注2 中指出了這一點(diǎn):
作為擴(kuò)展添加但不包含在“ExtensionAdditionGroup”中的“ComponentType”如果未標(biāo)記為OPTIONAL 或DEFAULT,則應(yīng)始終對其進(jìn)行編碼,除非抽象值是從使用較早版本抽象語法的發(fā)送者中繼的其中未定義“ComponentType”。
換句話說,PER將標(biāo)記為 OPTIONAL的擴(kuò)展添加與非 OPTIONAL的擴(kuò)展添加完全相同。
審核編輯:劉清
-
編碼
+關(guān)注
關(guān)注
6文章
1039瀏覽量
56976 -
CeR
+關(guān)注
關(guān)注
0文章
4瀏覽量
7399
原文標(biāo)題:?OSS Nokalva:ASN.1問答時(shí)間(4)
文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何評估電能質(zhì)量在線監(jiān)測裝置的擴(kuò)展性?
電能質(zhì)量在線監(jiān)測裝置的兼容性和擴(kuò)展性對其性能有何影響?
市場上的工控機(jī)改如何選擇?接口與擴(kuò)展性需求分析
求助,關(guān)于CYUSB3314共享鏈接問題求解
將 CANFD 0 通道 2 上收到的所有消息傳遞到 CANFD 1 通道 0,是否可以使用 DAM 通道?
電流功率檢測USB3.0HUB,USB3.0擴(kuò)展塢,可擴(kuò)展的USB2.0
請解釋一下低煙無鹵阻燃線的定義和特點(diǎn)
瑞薩電子RA系列微控制器的可擴(kuò)展性強(qiáng)的配置軟件包 (FSP)安裝下載與使用指南
聚徽分享高性能工控機(jī)選購指南:穩(wěn)定性、擴(kuò)展性、抗干擾能力如何平衡?
使用CCG3,2的CTD解決方案中偶爾無法接收DP信號,為什么?
飛凌嵌入式ElfBoard ELF 1板卡-Regmap的優(yōu)勢
瑞芯微RK3288解決方案:高性能、高擴(kuò)展性的嵌入式系統(tǒng)設(shè)計(jì)理念與應(yīng)用分析
你能解釋一下類型可擴(kuò)展性在PER中是如何工作的嗎
評論