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