ASN1C ASN.1編譯器將ASN.1和/或XML schema (XSD)源規(guī)范轉(zhuǎn)換成C、C++、C#或Java源代碼。開(kāi)發(fā)人員可以使用此代碼將結(jié)構(gòu)/對(duì)象轉(zhuǎn)換為已完成的ASN.1消息,并使用任何ITU-T/ISO編碼規(guī)則(BER、CER、DER、PER或XER),以及ISO/IEEE醫(yī)療設(shè)備編碼規(guī)則(MDER)和NTCIP八隅體編碼規(guī)則(OER)將其轉(zhuǎn)換為或轉(zhuǎn)換為已完成的ASN.1消息。ASN1C還包括將XSD規(guī)范轉(zhuǎn)換為ASN.1規(guī)范的工具,反之亦然。
生成的ASN1C代碼由類型定義和編碼/解碼函數(shù)(或方法)組成,這些函數(shù)提供了一個(gè)完整的應(yīng)用程序編程接口(API),用于處理ASN.1規(guī)范中包含的消息定義。
除了ASN.1編譯器之外,程序包中還包含一個(gè)公共編碼/解碼函數(shù)的運(yùn)行時(shí)庫(kù)。此庫(kù)包含用于編碼和解碼ASN.1基元(布爾值、整數(shù)等)的例程。ASN1C ASN.1編譯器匯編對(duì)這些函數(shù)的一系列調(diào)用,以完成對(duì)更復(fù)雜消息類型的編碼或解碼。
程序員要使編碼器/解碼器啟動(dòng)并運(yùn)行所需要做的就是:
為了幫助處理第2和第3項(xiàng),編譯器還能夠生成示例閱讀器和編寫(xiě)器程序,以及生成文件構(gòu)建所有生成的代碼。
ASN.1 to C/C++
C和C++版本都使用由一組低級(jí)基本C函數(shù)組成的公共基本運(yùn)行時(shí)庫(kù),對(duì)基本類型進(jìn)行編碼和解碼。代碼生成主要在C語(yǔ)言中完成,并為所有定義的ASN.1類型提供了一套完整的C API函數(shù)。
C++代碼生成功能添加了一組類“包裝器”,用于隱藏調(diào)用編碼/解碼函數(shù)時(shí)的大部分細(xì)節(jié)。這些包裝器提供了特定于C++的附加服務(wù)。其中包括通過(guò)構(gòu)造函數(shù)自動(dòng)初始化生成類型的變量,通過(guò)操作符重載更容易地分配和測(cè)試數(shù)據(jù),以及通過(guò)事件處理機(jī)制的虛擬回調(diào)接口。
從ASN.1到JavaC#
生成的Java代碼由一系列Java源文件組成——一個(gè)用于ASN.1規(guī)格中定義的每個(gè)產(chǎn)品(類型)。每個(gè)Java文件(至少)包含以下項(xiàng)目:
還有一個(gè)用于Java的運(yùn)行時(shí)庫(kù)。它由一系列用于編碼和解碼ASN.1基本類型的類組成。例如,Asn1Integer類將對(duì)ASN.1 INTEGER類型的變量進(jìn)行編碼或解碼。編譯器將擴(kuò)展這些基類,以形成直接從基類型派生的更高級(jí)別的類型,或者組裝一系列這些較低級(jí)別的對(duì)象來(lái)形成構(gòu)造的類型(例如,序列)。
C#代碼的生成與上面描述的Java生成非常相似。為ASN.1規(guī)范中定義的每個(gè)產(chǎn)品生成一個(gè)單獨(dú)的C#類。它包含使用任何ASN.1編碼規(guī)則對(duì)類實(shí)例進(jìn)行編碼和解碼的構(gòu)造函數(shù)和方法。
可以使用Java或C#嵌入式開(kāi)發(fā)工具包來(lái)支持Java MicroEdition (J2ME)或C# compact edition庫(kù)。
Eclipse 插件
概述ASN1C Eclipse插件允許在Eclipse IDE環(huán)境中,使用ASN1C編輯、語(yǔ)法檢查和生成Java、C#或C/ C++代碼。它與Java透視圖集成的方式允許直接從ASN.1源代碼創(chuàng)建Java項(xiàng)目。
請(qǐng)注意,這個(gè)插件在Eclipse 4.6 (Neon)和更高版本中都是可用的。不支持早期版本的Eclipse。
下載和安裝
推薦的插件安裝方法是通過(guò)我們的插件更新站點(diǎn):https://www.obj-sys.com/eclipse。請(qǐng)您遵循以下步驟:
或者,可以將插件下載為.zip文件,然后安裝。
下載插件后,請(qǐng)按照以下步驟安裝:
開(kāi)始使用插件
安裝之后,必須設(shè)置ASN1C編譯器可執(zhí)行文件的路徑:
京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)畫(huà)