ASN.1理解及基于OSS Nokalva工具的Java编码

基于 OSS Nokalva 公司的ASN1工具开发
licence 试用期30天,不是免费的!!!
官网 https://www.oss.com/index.html

ASN.1

维基百科解释:https://zh.wikipedia.org/wiki/ASN.1
个人理解:ASN.1定义了一组数据格式,很多编程语言都可以生成与之对应的数据格式,然后可以基于各种编码规则(BER、PER、XER、JER等)进行编解码。不同于JSON、XML的是,虽然都有定义数据格式,但是多了各种编码规则。

OSS Nokalva(JAVA)工具Linux环境安装

申请30天免费试用

下载

https://www.oss.com/asn1/products/asn1-download.html

注册(其中只要邮箱填写真实的就可以)

https://depot.oss.com/cgi-bin/NewFormat/freetrial.cgi?hidden_code=MainForm&product=OSS%20ASN.1%20Tools%20for%20Java&platform=Linux%2064-bit

收到邮件

环境安装

下载两个文件,放到/usr/local

跟着步骤执行

https://www.oss.com/asn1/products/documentation/asn1_java/asn1java-install.html

具体步骤(注意有坑!!!)

  1. 先解压两个文件
  2. 将ossinfojavatrial文件放到/usr/local/asn1pjav/<platform name>/<version number>目录下
  3. 执行/usr/local/asn1pjav/<platform name>/<version number>/bin/makevars文件会生成两个文件,一个csh文件,一个sh文件(只需要执行.sh文件就行了!!!!!
  4. 修改.sh文件(oss.jar 换成 osstoed.jar!!!!
  5. 执行.sh 文件 . oss_vars.sh点号不要忘了,不然执行环境变量不生效,可以用export -p | grep ‘asn’ 查看
  6. 跟着执行sample中的例子测试环境是否ok https://www.oss.com/asn1/products/documentation/asn1_java/asn1java-getting-started.html

开发环境

将上一步的osstoed.jar 打包到本地maven仓库

mvn install:install-file -Dfile="C:\Users\13689\Desktop\osstoed.jar" -Dpackaging="jar" -DgroupId="com.oss" -DartifactId="osstoedasn1" -Dversion="8.4"

加入maven依赖

<dependency>
	<groupId>com.oss</groupId>
	<artifactId>osstoedasn1</artifactId>
	<version>8.4</version>
</dependency>

ASN1文件生成JAVA文件

asn1pjav -toed -output vehstatus -uper -json -xer -root -sampleCode pdus -messageFormat msvc /data/asn1/san1file/*.asn

把生成的文件夹直接加入项目中使用、打包即可(每次licence 更新,文件夹都需要重新生成,否则还会显示试用期已过)

扩展

PER和UPER

PER (压缩编码规则) 分为:对齐方式(Aligned PER,APER)与非对齐方式(Unaligned PER,UPER)两种情况,两者的关键区别是,APER编码指在对一串数据进行编码时,要求对每一个数据格式的编码(完成以后)都要进行八位(8bit)对齐操作,即需要高位或者低位补0操作;UPER编码指在对一串数据进行编码时,只在全部数据编码结束后才进行八位(8bit)对齐操作。

猜你喜欢

转载自blog.csdn.net/weixin_43932590/article/details/121980183