zhubaomin
2025-04-07 1a2b07f01ba4616fd9e894dddf474b56d020158c
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/AnnotationPrefixedDataAvailable.java
New file
@@ -0,0 +1,42 @@
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 ;
}