当前您所在的位置:首页>编译器 安装程序制作>编译器

ASN1C ASN.1 Compiler

ASN1C ASN.1 compilerASN.1/XML架构(XSD)源的规格转化为C,C++, C#,??Java源代码。开发人员可以使用这个代码去实现结构/目标和已完成的ASN.1信息的相互转化,这个ASN.1信息是使用任意ITU-TISO编码规则(BER, CER, DER, PERXER)以及ISO / IEEE医疗设备编码规则(MDER)和NTCIP Octet编码规则(OER)。ASN1C也包括工具用于XSD规格转化为ASN.1规格,反之亦然。

 

 

ASN1C生成的代码由类型定义和编码/解码函数(或方法)组成,这些函数(或方法)提供一个完整的应用程序编程接口(API),用于处理ASN.1规格中包含的消息定义。

 

除了ASN.1编译器之外,通用编码/解码函数的运行时库也是这个套包的一部分。此库里有用于编码和解码ASN.1原语(布尔值、整数等)的例程。ASN1C ASN.1编译器汇编对这些函数的一系列调用,以完成更复杂消息类型的编码或解码。

 

程序员需要做的就是使编码器/解码器启动并运行:

1.运行asn1c为给定的asn.1或xsd规范生成代码,

2.开发一个应用程序来调用生成代码中的函数/方法,

3.编译/链接应用程序、生成的代码和运行时库。

 

为了帮助处理上面的项目2和3,编译器还能够生成示例读写程序,以及生成所有生成代码的生成文件。

 

ASN 1到C/C++

 

C和C++版本都使用一个共同的基本运行库,该库由一组低级原语C函数组成,用于编码和解码基本类型。代码生成主要在C语言中完成,并为所有定义的ASN.1类型提供一套完整的C API函数。

 

C++代码生成能力添加了一组类“包装器”,它隐藏了调用编码/解码函数中的大部分细节。这些包装器提供了特定于C++的附加服务。这包括通过构造函数自动初始化生成类型的变量,通过运算符重载更容易地分配和测试数据,以及通过事件处理机制的虚拟回调接口。

 

ASN 1到Java或C#

 

生成的Java代码由一系列Java源文件组成,每一个在ASN 1规范中定义的每一个产品(类型)都是一个。这些Java文件中的每一个包含(至少)以下项目:

 

 

也有Java的运行时库。这包括一系列用于编码和解码原始ASN.1类型的类。例如,Asn1Integer类将对ASN.1整数类型的变量进行编码或解码。编译器将扩展这些基类以形成直接从基类型派生的更高级别的类型,或者组装一系列这些较低级别的对象以形成构造的类型(例如序列)。

 

C#代码的生成非常类似于上面描述的Java生成。为ASN.1规则中定义的每个产品生成单独的C#类。它包含使用任何ASN.1编码规则对类实例进行编码和解码的构造函数和方法。

 

支持Java微版本(J2ME)或C#紧凑版本库的Java或C#嵌入式开发工具包是可用的。

北京哲想软件有限公司