国产精品久久久久久2021,日韩精品无码av中文无码版,亚洲精品久久久午夜麻豆,无码成人精品日本动漫纯h

010-68421378
當(dāng)前您所在的位置:首頁(yè)>新聞中心>新品發(fā)布

ASN1C ASN.1編譯器

發(fā)布時(shí)間:2021/06/02 瀏覽量:5133
ASN1C ASN.1編譯器將ASN.1和/或XML schema (XSD)源規(guī)范轉(zhuǎn)換成C、C++、C#或Java源代碼

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)行所需要做的就是:

  1. 運(yùn)行ASN1C為給定的ASN.1或XSD規(guī)格生成代碼
  2. 開(kāi)發(fā)一個(gè)應(yīng)用程序來(lái)調(diào)用生成代碼中的函數(shù)/方法
  3. 編譯/連接應(yīng)用程序、生成的代碼和運(yùn)行時(shí)庫(kù)

為了幫助處理第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)您遵循以下步驟:

  1. 選擇Help ->安裝新軟件
  2. 輸入“Work with”位置的更新站點(diǎn):“https://www.obj.sys.com/eclipse”
  3. 可用的插件應(yīng)該出現(xiàn)在列表中
  4. 啟用“ASN.1和XML解決方案”旁邊的檢查框,然后單擊next
  5. 單擊下一頁(yè)中的Next
  6. 選擇許可條款的接受,并在下一頁(yè)中單擊Finish
  7. 單擊Yes重啟Eclipse

或者,可以將插件下載為.zip文件,然后安裝。

下載插件后,請(qǐng)按照以下步驟安裝:

開(kāi)始使用插件

安裝之后,必須設(shè)置ASN1C編譯器可執(zhí)行文件的路徑:

  1. 選擇Windows ->首選項(xiàng)-> ASN1C編譯器
  2. 在“編譯器路徑”框中,輸入ASN1C編譯器可執(zhí)行文件的完整路徑(或使用Browse)
  3. 單擊OK退出屏幕現(xiàn)在可以創(chuàng)建一個(gè)新項(xiàng)目。我們將使用ASN1C Java Employee程序作為示例。1. 選擇Windows ->首選項(xiàng)-> ASN1C編譯器
  4. 點(diǎn)擊“語(yǔ)言”下拉列表,選擇“Java”作為應(yīng)用程序語(yǔ)言
  5. 點(diǎn)擊“選擇編碼規(guī)則”下拉列表,選擇“BER”選項(xiàng)
  6. 點(diǎn)擊“選擇要生成的函數(shù)類型”下拉列表,檢查“Encode”和“Decode”選項(xiàng)
  7. 點(diǎn)擊“基本選項(xiàng)”下拉列表,選擇“生成示例閱讀器程序”和“生成示例編寫(xiě)程序”選項(xiàng)
  8. 點(diǎn)擊“Java options”下拉列表,選擇“Output code to module name dirs (-dirs)”選項(xiàng)
  9. 單擊OK退出preferences屏幕
  10. 選擇文件->新->項(xiàng)目…
  11. 在“ASN1編譯工具”下,選擇“ASN1C編譯器項(xiàng)目”,然后單擊“下一步”
  12. 將項(xiàng)目名稱設(shè)置為“Employee”,然后單擊“Next”
  13. .ASN.1文件現(xiàn)在可以使用“添加文件”按鈕添加到項(xiàng)目中。單擊此按鈕,導(dǎo)航到ASN1C java/sample_ber/Employee目錄,并選擇Employee .asn。然后單擊“Next”
  14. 在下一頁(yè)中單擊Next (Java設(shè)置)
  15. 在最后一頁(yè)(ASN1C編譯器命令),選中“在finish上啟動(dòng)ASN.1編譯器”選項(xiàng),然后單擊“finish”。ASN1C編譯器現(xiàn)在應(yīng)該嘗試生成Java文件
下一篇:Kendo UI使用教程:Kendo UI Grid中的動(dòng)態(tài)數(shù)據(jù)(三)
上一篇:Splashtop SOS:使用簡(jiǎn)單的會(huì)話代碼連接到用戶的設(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)畫(huà)

                            華滋生物