| New file | 
|  |  |  | 
|---|
|  |  |  | package com.dy.common.mw.protocol; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.lang.annotation.ElementType; | 
|---|
|  |  |  | import java.lang.annotation.Retention; | 
|---|
|  |  |  | import java.lang.annotation.RetentionPolicy; | 
|---|
|  |  |  | import java.lang.annotation.Target; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Target(ElementType.TYPE) | 
|---|
|  |  |  | @Retention(RetentionPolicy.RUNTIME) | 
|---|
|  |  |  | public @interface AnnotationPrefixedDataAvailable { | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 所属协议名称 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | String protocolName() default "" ; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 所属协议版本号 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | short protocolVersion() default -1 ; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 配置是否启动 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | boolean enable() default true ; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 为优先级(从1开始,最小为1,各协议间优先级相差1),数字越小级别越高。 | 
|---|
|  |  |  | * 若有多个协议,各个协议的上线处理类以优先级进行排序,优先级高的先处理上线数据。 | 
|---|
|  |  |  | * 数值与AnnotationOnLine的priority相等 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | int priority() default 0 ; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * RTU上线数据(上线后第一包数据)最小长度,设置该属性以备进行完整性检查, | 
|---|
|  |  |  | * 即断包检查,使尽可能收全上线数据(取值范围1-100) | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | int onLineDataMinLength() default 0 ; | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * RTU上报数据的头部最小长度,上报数据的这个最小长度的部分数据, | 
|---|
|  |  |  | * 一定包含数据长度,以备取出数据长度来,设置该属性以备进行完整性检查, | 
|---|
|  |  |  | * 即断包与粘包检查(取值范围0-100,其中取值为0时,表示headMinLength数据无作用,由协议实现来控制) | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | int headMinLength()  default 0 ; | 
|---|
|  |  |  | } | 
|---|