基于 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
注册(其中只要邮箱填写真实的就可以)
收到邮件
环境安装
下载两个文件,放到/usr/local
跟着步骤执行
https://www.oss.com/asn1/products/documentation/asn1_java/asn1java-install.html
具体步骤(注意有坑!!!)
- 先解压两个文件
- 将ossinfojavatrial文件放到
/usr/local/asn1pjav/<platform name>/<version number>
目录下 - 执行
/usr/local/asn1pjav/<platform name>/<version number>/bin/makevars
文件会生成两个文件,一个csh文件,一个sh文件(只需要执行.sh文件就行了!!!!!) - 修改.sh文件(oss.jar 换成 osstoed.jar!!!!)
- 执行.sh 文件
. oss_vars.sh
(点号不要忘了,不然执行环境变量不生效,可以用export -p | grep ‘asn’ 查看) - 跟着执行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)对齐操作。