Skip to content

ice200117/hj-t212-parser

 
 

Repository files navigation

HJ/T212 Parser

Build Status Artifact Status

环保部212传输协议

标准

污染源在线自动监控(监测)系统数据传输标准(HJ/T 212-2005) 污染物在线监控(监测)系统数据传输标准(HJ 212-2017代替HJ/T 212-2005)

当前支持特性为:

  • 2005 2017双版协议兼容
  • 解析协议为java对象、Map对象
  • 反向生成协议包
  • 结构校验、CRC校验、字段类型校验
  • 校验启停、解析容错特性开关
  • 码表枚举

使用

通过gradle引入托管在jitpack上的jar包

repositories {
    maven{
        url 'https://jitpack.io'
    }
}
dependencies {
    compile 'com.github.xiaoyao9184.hj-t212-parser:hj-t212-parser:master-SNAPSHOT'
    compile 'com.github.xiaoyao9184.hj-t212-parser:hj-t212-translator:master-SNAPSHOT'
}

通过创建T212Mapper对象,获得读取、写入T212信息的功能

String h212 = "##0139ST=32;CN=2011;PW=123456;MN=LD130133000015;CP=&&DataTime=20160824003817000;B01-Rtd=36.91;011-Rtd=231.0,011-Flag=N;060-Rtd=1.803,060-Flag=N&&4980\r\n";

T212Mapper mapper = new T212Mapper()
                .enableDefaultVerifyFeatures()
                .enableDefaultParserFeatures();

//从T212字符串中读取Data对象
Data data = mapper.readData(h212);

//.... use data

//create data and set it
data.setPw("000000");
//将Data对象写入成T212字符串
String result = mapper.writeMapAsString(data);

更多高级方式请参阅单元测试代码

类似Jackson的API

如果你使用过Jackson,你会发现以下类在设计方式上非常类似

Jackson类 T212类
ObjectMapper T212Mapper
JsonParser T212Parser
JsonGenerator T212Generator
Deserializers T212Deserializer
Serializers T212Serializer

Segment语法

如果你很了解T212的数据区的结构定义,将会很简单的认同以下抽象语法, 当前使用Segment作为这种语法的代称。

<object> ::= <entry> [;...n]
<entry> ::= key = <value> | key - sub_key = value [,...n]
<value> ::= value | && <object> &&
  • key 是字符串
  • value 是字符串

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%