ASN.1 Tools for C

OSS®ASN.1 Tools for C是一個(gè)完整的開發(fā)工具包,用于使用ASN.1快速構(gòu)建應(yīng)用程序。 該產(chǎn)品具有功能強(qiáng)大的ASN.1:2015功能編譯器,具有ASN.1 BER,CER,DER,PER,OER,XER,CXER和E-XER編碼器/解碼器引擎的運(yùn)行時(shí)庫(kù), 并加快你的發(fā)展。 OSS ASN.1 Tools for C完全支持4G(LTE:RRC,S1和X2協(xié)議)。
編譯器采用ASN.1規(guī)范作為輸入,并生成C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)加上用于編碼和解碼的控制表。 OSS編譯器提供廣泛的診斷功能,以最大限度地減少開發(fā)時(shí)間和工作量。

一組運(yùn)行庫(kù)提供ASN.1編碼和解碼功能以及對(duì)應(yīng)用消息操作的有價(jià)值的輔助功能。 OSS運(yùn)行時(shí)庫(kù)已移植到500+個(gè)平臺(tái),包括許多嵌入式平臺(tái)。

支持JSON ER允許將ASN.1數(shù)據(jù)序列化為流行的JSON格式,并在JSON消息和ASN.1二進(jìn)制消息之間進(jìn)行轉(zhuǎn)換。
支持OER允許使用ASN.1二進(jìn)制消息,其可以比BER和PER消息明顯更快地編碼/解碼,同時(shí)比PER消息略微緊湊。
支持E-XER允許生成XML與XML模式工具的輸出兼容。

如果你需要高速編碼/解碼和盡可能小的內(nèi)存占用,不要再看了。 簡(jiǎn)單地說,OSS ASN.1 Tools for C是您將找到的最優(yōu)化的ASN.1工具。
ASN.1 Tools for C 的功能
•編碼器和解碼器的無(wú)與倫比的速度
•保證向后兼容性
•ASN.1 Studio,一個(gè)用于ASN.1規(guī)范編輯和消息分析的直觀IDE
•大(1024位)INTEGER(用于加密應(yīng)用程序)
•無(wú)限值大小
•反映ASN.1語(yǔ)義的類型表示(4字節(jié)UniversalStrings,時(shí)間類)
•可擴(kuò)展類型的編碼(未知擴(kuò)展)
•通過自動(dòng)解碼的可選自定義提高性能
•自動(dòng)解碼任何種類的約束
•沒有實(shí)施限制; 從不重寫您的ASN.1以適應(yīng)編碼限制
•延遲任何單個(gè)字段或類型的解碼
•文件和套接字支持
•級(jí)聯(lián)PDU支持
•內(nèi)容約束(完全支持)
•為每個(gè)PDU生成XML樣式表或DTD
ASN.1 / C編譯器
ASN.1編譯器是一個(gè)獨(dú)立的程序,它接受一個(gè)或多個(gè)輸入文件,其中每個(gè)輸入文件包含一個(gè)或多個(gè)ASN.1模塊。 編譯器驗(yàn)證規(guī)范是否有效,并生成:
•診斷消息和可選的輸出ASN.1列表
•易于使用的C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)包含在應(yīng)用程序中
•由空間優(yōu)化或精益編碼器/解碼器使用的控制表
•時(shí)間優(yōu)化的編碼器/解碼器。
(精益編碼器解碼器在單獨(dú)的包中提供)
交叉編譯由用于C的ASN.1工具支持。交叉編譯使開發(fā)人員能夠生成可在與編譯器運(yùn)行的操作系統(tǒng)不同的操作系統(tǒng)上使用的文件。 通過交叉編譯能力最大化您的投資。 了解有關(guān)交叉編譯的詳細(xì)信息。
編碼器/解碼器
OSS編碼器/解碼器提供了許多其他功能,ossEncode()和ossDecode()函數(shù)。 ossEncode()函數(shù)將編譯器生成的C數(shù)據(jù)結(jié)構(gòu)中的應(yīng)用程序放置的數(shù)據(jù)轉(zhuǎn)換為根據(jù)BER,CER,PER,OER,DER,XER,CXER或E-XER編碼的字節(jié)串。
另一個(gè)函數(shù)ossDecode()采用根據(jù)BER,CER,PER,OER,DER,XER,CXER或E-XER編碼的字節(jié)串,并執(zhí)行編碼器的反向操作,結(jié)構(gòu),你可以輕松地操縱。
TLV打印實(shí)用程序
此實(shí)用程序(包括在C中的ASN.1工具)從輸入文件以ASCII或二進(jìn)制格式進(jìn)行BER或DER編碼,并將其以三種不同類型長(zhǎng)度值(TLV)格式之一寫入輸出文件。
空間優(yōu)化的編碼器/解碼器(SOED)是這樣命名的,因?yàn)樗闹攸c(diǎn)是最小化使用存儲(chǔ)器,特別是當(dāng)抽象語(yǔ)法大或復(fù)雜時(shí)。編碼器和解碼器都具有簡(jiǎn)單而靈活的存儲(chǔ)器管理接口以及豐富的跟蹤,誤差捕獲,診斷和恢復(fù)能力。
時(shí)間優(yōu)化的編碼器/解碼器(TOED)具有與空間優(yōu)化的編碼器/解碼器相同的程序調(diào)用接口,并且執(zhí)行相同的功能(除了它不具有任何跟蹤能力),但是其重點(diǎn)在于最小化CPU利用率。
OSS運(yùn)行時(shí)庫(kù)已移植到500多個(gè)平臺(tái),包括許多嵌入式平臺(tái)。
更多功能
運(yùn)行時(shí)功能,支持PDU復(fù)制,比較,打印等,使您的應(yīng)用程序開發(fā)過程更容易。
解釋ASN.1 API
在ASN.1 C工具中免費(fèi)提供的解釋性ASN.1 API(IAAPI)可以與常規(guī)ASN.1 / C編譯器結(jié)合使用(當(dāng)ASN.1模式在當(dāng)時(shí)被編譯時(shí)當(dāng)開發(fā)應(yīng)用程序時(shí)),或者使用OSS的編譯和運(yùn)行庫(kù)(CAGL)(當(dāng)模式在運(yùn)行時(shí)動(dòng)態(tài)編譯時(shí))。
IAAPI提供了獲得關(guān)于編譯的ASN.1模式的細(xì)節(jié)的信息的手段,包括它定義的類型(例如,具有多個(gè)組件的記錄),類型的字段(例如,整數(shù)和字符串)以及與之相關(guān)聯(lián)的約束(例如,小于10的整數(shù))。這個(gè)信息允許開發(fā)人員編寫解析消息內(nèi)容的代碼,當(dāng)其結(jié)構(gòu)在應(yīng)用程序開發(fā)時(shí)是未知的時(shí),這是特別有用的。同樣,開發(fā)人員可以編寫代碼來創(chuàng)建字段,一個(gè)新的消息,只要它的格式遵守編譯的模式。
IAAPI支持ASN.1 BER,CER,DER,PER,OER,XER,CXER和E-XER
標(biāo)準(zhǔn)符合性
這個(gè)強(qiáng)大的軟件完全符合下面列出的ASN.1標(biāo)準(zhǔn):
•ITU-T X.696(ISO / IEC 8825-7) - 八位字節(jié)編碼規(guī)則(OER)基本協(xié)議
________________________________________
•ITU-T X.680(ISO / IEC 8824-1) - 抽象語(yǔ)法記法一(ASN.1):基本符號(hào)規(guī)范
________________________________________
•ITU-T X.681(ISO / IEC 8824-2) - 抽象語(yǔ)法記法一(ASN.1):信息對(duì)象規(guī)范
________________________________________
•ITU-T X.682(ISO / IEC 8824-3) - 抽象語(yǔ)法記法一(ASN.1):約束規(guī)范
________________________________________
•ITU-T X.683(ISO / IEC 8824-4) - 抽象語(yǔ)法符號(hào)一(ASN.1):ASN.1規(guī)范的參數(shù)化
________________________________________
•ITU-T X.690(ISO / IEC 8825-1) - ASN.1編碼規(guī)則:基本編碼規(guī)則(BER),規(guī)范編碼規(guī)則(CER)和區(qū)分編碼規(guī)則(DER)
________________________________________
•ITU-T X.691(ISO / IEC 8825-2) - ASN.1編碼規(guī)則:壓縮編碼規(guī)則(PER)
________________________________________
•ITU-T X.692(ISO / IEC 8825-3) - ASN.1編碼規(guī)則:編碼控制符號(hào)(ECN)
________________________________________
•ITU-T X.693(ISO / IEC 8825-4) - ASN.1編碼規(guī)則:XML編碼規(guī)則(XER)規(guī)范。這包括規(guī)范XML編碼規(guī)則(CXER)規(guī)范和擴(kuò)展XML編碼規(guī)則(E-XER)。
ASN.1 C - 運(yùn)行時(shí)選項(xiàng)的工具
多年來,OSS Nokalva的客戶對(duì)各種主流和嵌入式平臺(tái)的代碼大小,編碼/解碼速度和診斷能力有許多不同的要求。為了滿足客戶的各種需求,OSS Nokalva提供了用于C運(yùn)行時(shí)庫(kù)的ASN.1工具三種版本。
運(yùn)行時(shí)庫(kù)的所有三種風(fēng)格執(zhí)行相同的功能并具有相同的API,包括用于編碼/解碼ASN.1消息的功能,用于復(fù)制,比較,打印和釋放未編碼/解碼消息的功能,簡(jiǎn)單但靈活的存儲(chǔ)器管理接口,以及許多其他有用的功能。
您可以從使用ASN.1 / C運(yùn)行時(shí)的一種風(fēng)格更改為使用另一種風(fēng)格,而不會(huì)影響您的應(yīng)用程序代碼。有關(guān)如何在各種運(yùn)行時(shí)風(fēng)格之間切換的詳細(xì)說明,請(qǐng)參見“ASN.1 / C運(yùn)行時(shí)API”手冊(cè)。
SOED
空間優(yōu)化編碼器/解碼器(SOED)是這樣命名的,因?yàn)樗鼜?qiáng)調(diào)最小化存儲(chǔ)器使用(即,小代碼大小),特別是當(dāng)ASN.1規(guī)范大或復(fù)雜時(shí)。 SOED是開發(fā)過程中使用的常用選擇。它提供了豐富的跟蹤,錯(cuò)誤捕獲,診斷和恢復(fù)功能,我們最靈活的內(nèi)存管理器,以及與ASN.1規(guī)范交互工作的能力(例如,當(dāng)您需要閱讀有關(guān)約束的信息時(shí)在運(yùn)行時(shí)特定的ASN.1類型)。
TOED
時(shí)間優(yōu)化的編碼器/解碼器(TOED)是部署的流行選擇,因?yàn)樗鼜?qiáng)調(diào)最小化CPU利用率。 我們有意地最小化跟蹤能力,并使用代碼驅(qū)動(dòng)而不是表驅(qū)動(dòng)設(shè)計(jì)來實(shí)現(xiàn)閃電速度。
LED(單獨(dú)包裝)
精簡(jiǎn)編碼器/解碼器(LED)經(jīng)過優(yōu)化,可提供比SOED更小的代碼尺寸,而且具有更快的編碼/解碼性能。 它故意沒有豐富的跟蹤和診斷能力。 它通常是使用大型ASN.1規(guī)范的最佳選擇,特別是當(dāng)您的軟件在具有顯著內(nèi)存限制的系統(tǒng)上運(yùn)行時(shí)。
哪個(gè)ASN.1 / C運(yùn)行時(shí)適合我?
根據(jù)其性能(表示為代碼大小和編碼速度)和診斷功能,使用下表選擇最適合您需要的ASN.1 / C運(yùn)行時(shí)。
|
SOED |
TOED |
LED |
|
|
編碼/解碼速度 |
快 |
最快 |
更快 |
|
代碼大小(1) |
小 |
中檔(2) |
Small(2) |
|
診斷能力 |
豐富 |
受限 |
受限 |
|
理想的使用期間 |
開發(fā)和配置 |
配置 |
配置 |
|
最適合 |
|
|
|
運(yùn)行時(shí)性能比較
下面的圖表描述了基于幾個(gè)標(biāo)準(zhǔn)ASN.1規(guī)范的運(yùn)行時(shí)性能結(jié)果,以幫助您了解每個(gè)ASN.1 / C運(yùn)行時(shí)風(fēng)格的比較性能(編碼/解碼時(shí)所花費(fèi)的代碼大小和時(shí)間)。
如果下面找不到您的ASN.1規(guī)格,您可以根據(jù)規(guī)格的大小和/或使用的編碼規(guī)則來近似SOED / TOED / LED的相對(duì)性能。


性能比較方法
所有ASN.1規(guī)范的編碼/解碼時(shí)間和可執(zhí)行大小相對(duì)于最小值(1x)給出。 針對(duì)若干不同消息對(duì)編碼/解碼時(shí)間進(jìn)行平均,并且基于消息的大小進(jìn)行歸一化。 對(duì)于這兩個(gè)圖,使用指數(shù)標(biāo)度。 較小的條形反映更好的性能。
相同的通用編碼/解碼應(yīng)用程序用于所有測(cè)量。 比較應(yīng)用對(duì)象代碼的大小,其是從C編譯和鏈接由ASN.1編譯器生成的源和控制表(如果適用)以及應(yīng)用代碼和對(duì)應(yīng)的運(yùn)行時(shí)庫(kù)獲得的。
| Feature | ASN.1/ C |
ASN.1/ C++ |
ASN.1/ C# |
ASN.1/ Java |
|
支持OER |
![]() |
![]() |
![]() |
|
|
速度。 不要沉迷于蝸牛節(jié)奏的ASN.1工具。 |
Fastest | Faster | Fast | Fast |
|
支持帶調(diào)試和跟蹤功能的編碼器/解碼器(SOED)。 |
![]() |
![]() |
![]() |
|
|
支持針對(duì)小內(nèi)存占用(LED)設(shè)計(jì)的解釋性編碼器/解碼器。 |
![]() |
![]() |
![]() |
|
|
OSS的工具可以滿足您的代碼大小要求,無(wú)論使用ASN.1指定的協(xié)議。 |
![]() |
![]() |
![]() |
|
|
在幾行代碼中對(duì)文件或套接字進(jìn)行編碼 |
![]() |
![]() |
![]() |
![]() |
|
質(zhì)量跟蹤和精確錯(cuò)誤消息 |
![]() |
![]() |
![]() |
![]() |
|
可擴(kuò)展性 |
![]() |
![]() |
![]() |
![]() |
|
繼電器安全模式 |
![]() |
![]() |
![]() |
|
|
參數(shù)化 |
![]() |
![]() |
![]() |
|
|
比較和復(fù)制值 |
![]() |
![]() |
![]() |
![]() |
|
約束檢查 |
![]() |
![]() |
![]() |
![]() |
|
所有編碼規(guī)則的大值 |
![]() |
![]() |
![]() |
|
|
輕松動(dòng)態(tài)更改運(yùn)行時(shí)選項(xiàng) |
![]() |
![]() |
![]() |
![]() |
|
訪問ASN.1而無(wú)需預(yù)先知道數(shù)據(jù) |
![]() |
![]() |
![]() |
|
|
值記法格式I / O |
![]() |
![]() |
![]() |
![]() |
|
嵌套限制 |
![]() |
![]() |
![]() |
|
|
支持J2ME CLDC 1.1(連接受限設(shè)備配置) |
![]() |
京ICP備09015132號(hào)-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號(hào)豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫