ASN1CASN.1編譯器將ASN.1和/或XMLschema(XSD)源規(guī)范轉(zhuǎn)換成C、C++、C#或Java源代碼。
開發(fā)人員可以使用此代碼將結(jié)構(gòu)/對象轉(zhuǎn)換為已完成的ASN.1消息,并使用任何ITU-T/ISO編碼規(guī)則(BER、CER、DER、PER或XER),以及ISO/IEEE醫(yī)療設備編碼規(guī)則(MDER)和NTCIP八隅體編碼規(guī)則(OER)將其轉(zhuǎn)換為或轉(zhuǎn)換為已完成的ASN.1消息。
ASN1C還包括將XSD規(guī)范轉(zhuǎn)換為ASN.1規(guī)范的工具,反之亦然。
生成的ASN1C代碼由類型定義和編碼/解碼函數(shù)(或方法)組成,這些函數(shù)提供了一個完整的應用程序編程接口(API),用于處理ASN.1規(guī)范中包含的消息定義。
除了ASN.1編譯器之外,程序包中還包含一個公共編碼/解碼函數(shù)的運行時庫。此庫包含用于編碼和解碼ASN.1基元(布爾值、整數(shù)等)的例程。ASN1CASN.1編譯器匯編對這些函數(shù)的一系列調(diào)用,以完成對更復雜消息類型的編碼或解碼。
1、運行ASN1C為給定的ASN.1或XSD規(guī)格生成代碼
2、開發(fā)一個應用程序來調(diào)用生成代碼中的函數(shù)/方法
3、編譯/連接應用程序、生成的代碼和運行時庫
為了幫助處理第2和第3項,編譯器還能夠生成示例閱讀器和編寫器程序,以及生成文件構(gòu)建所有生成的代碼。
ASN.1 to C/C++
C和C++版本都使用由一組低級基本C函數(shù)組成的公共基本運行時庫,對基本類型進行編碼和解碼。代碼生成主要在C語言中完成,并為所有定義的ASN.1類型提供了一套完整的CAPI函數(shù)。
C++代碼生成功能添加了一組類“包裝器”,用于隱藏調(diào)用編碼/解碼函數(shù)時的大部分細節(jié)。這些包裝器提供了特定于C++的附加服務。其中包括通過構(gòu)造函數(shù)自動初始化生成類型的變量,通過操作符重載更容易地分配和測試數(shù)據(jù),以及通過事件處理機制的虛擬回調(diào)接口。
從ASN.1到JavaC#
生成的Java代碼由一系列Java源文件組成——一個用于ASN.1規(guī)格中定義的每個產(chǎn)品(類型)。每個Java文件(至少)包含以下項目:
一個或多個公共成員數(shù)據(jù)變量,用于保存生成類型的數(shù)據(jù)。
初始化變量的構(gòu)造函數(shù)。
一種編碼方法。
一個解碼方法。
將目標內(nèi)容打印到給定輸出流的打印方法。
還有一個用于Java的運行時庫。它由一系列用于編碼和解碼ASN.1基本類型的類組成。例如,Asn1Integer類將對ASN.1INTEGER類型的變量進行編碼或解碼。編譯器將擴展這些基類,以形成直接從基類型派生的更高級別的類型,或者組裝一系列這些較低級別的對象來形成構(gòu)造的類型(例如,序列)。
C#代碼的生成與上面描述的Java生成非常相似。為ASN.1規(guī)范中定義的每個產(chǎn)品生成一個單獨的C#類。它包含使用任何ASN.1編碼規(guī)則對類實例進行編碼和解碼的構(gòu)造函數(shù)和方法。
可以使用Java或C#嵌入式開發(fā)工具包來支持JavaMicroEdition (J2ME)或C#compact edition庫。
Eclipse 插件
概述
ASN1C Eclipse插件允許在EclipseIDE環(huán)境中,使用ASN1C編輯、語法檢查和生成Java、C#或C/C++代碼。它與Java透視圖集成的方式允許直接從ASN.1源代碼創(chuàng)建Java項目。
請注意,這個插件在Eclipse4.6 (Neon)和更高版本中都是可用的。不支持早期版本的Eclipse。
下載和安裝
推薦的插件安裝方法是通過我們的插件更新站點:https://www.obj-sys.com/eclipse。請您遵循以下步驟:
1. 選擇Help->安裝新軟件
2. 輸入“Workwith”位置的更新站點:“https://www.obj.sys.com/eclipse”
3.可用的插件應該出現(xiàn)在列表中
4. 啟用“ASN.1和XML解決方案”旁邊的檢查框,然后單擊next
5. 單擊下一頁中的Next
6. 選擇許可條款的接受,并在下一頁中單擊Finish
7. 單擊Yes重啟Eclipse
或者,可以將插件下載為.zip文件,然后安裝。單擊下面的鏈接下載該文件:
ASN1C Eclipse插件.zip文件
下載插件后,請按照以下步驟安裝:
1. 選擇幫助->安裝新軟件
2. 單擊Addbutto
3.單擊彈出的pag中的Archive按鈕
4. 找到下載的zip文件并選擇O
5. 啟用“ASN.1和XML解決方案”旁邊的復選框,然后單擊Nex
6. 在下一個pag中單擊Next
7. 選擇許可條款的接受,并在下一個pag中單擊Finish
8. 單擊Yes重啟Eclipse
開始使用插件
安裝之后,必須設置ASN1C編譯器可執(zhí)行文件的路徑:
1. 選擇Windows->首選項->ASN1C編譯器
2.在“編譯器路徑”框中,輸入ASN1C編譯器可執(zhí)行文件的完整路徑(或使用Browse)
3.單擊OK退出屏幕
現(xiàn)在可以創(chuàng)建一個新項目。我們將使用ASN1CJava Employee程序作為示例。
1. 選擇Windows->首選項->ASN1C編譯器
2. 點擊“語言”下拉列表,選擇“Java”作為應用程序語言
3.點擊“選擇編碼規(guī)則”下拉列表,選擇“BER”選項
4.點擊“選擇要生成的函數(shù)類型”下拉列表,檢查“Encode”和“Decode”選項
5.點擊“基本選項”下拉列表,選擇“生成示例閱讀器程序”和“生成示例編寫程序”選項
6. 點擊“Javaoptions”下拉列表,選擇“Outputcode to module name dirs (-dirs)”選項
7. 單擊OK退出preferences屏幕
8. 選擇文件->新->項目…
9.在“ASN1編譯工具”下,選擇“ASN1C編譯器項目”,然后單擊“下一步”
10. 將項目名稱設置為“Employee”,然后單擊“Next”
11.ASN.1文件現(xiàn)在可以使用“添加文件”按鈕添加到項目中。單擊此按鈕,導航到ASN1Cjava/sample_ber/Employee目錄,并選擇Employee.asn。然后單擊“Next”
12. 在下一頁中單擊Next(Java設置)
13.在最后一頁(ASN1C編譯器命令),選中“在finish上啟動ASN.1編譯器”選項,然后單擊“finish”。ASN1C編譯器現(xiàn)在應該嘗試生成Java文件
審核編輯:劉清
-
JAVA
+關注
關注
20文章
2988瀏覽量
108407 -
API
+關注
關注
2文章
1568瀏覽量
63727 -
編譯器
+關注
關注
1文章
1659瀏覽量
50057 -
編程接口
+關注
關注
1文章
38瀏覽量
8137
原文標題:Obj-sys:ASN1CASN.1 編譯器
文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論