package com.iailab.netsdk.lib.structure;

import com.iailab.netsdk.lib.NetSDKLib;

/**
 * @author 251823
 * @description 事件类型 EVENT_IVS_CROSSLINEDETECTION (拌线入侵事件)对应的规则配置
 * @date 2021/07/06
 */
public class CFG_CROSSLINE_INFO extends NetSDKLib.SdkStructure{
	 /**
     *  规则名称,不同规则不能重名
     */
    public byte[] szRuleName = new byte[NetSDKLib.MAX_NAME_LEN];

    /**
     *  规则使能
     */
    public byte bRuleEnable;

    /**
     *  触发跟踪使能,仅对绊线,入侵规则有效
     */
    public byte bTrackEnable;

    /**
     *  保留字段 
     */
    public byte[] bReserved = new byte[2];

    /**
     *  相应物体类型个数
     */
    public int nObjectTypeNum;

    /**
     *  相应物体类型列表
     */
    public MaxNameByteArrInfo[] szObjectTypes = (MaxNameByteArrInfo[])new MaxNameByteArrInfo().toArray(NetSDKLib.MAX_OBJECT_LIST_SIZE);

    /**
     *  检测方向:0:由左至右;1:由右至左;2:两者都可以
     */
    public int nDirection;

    /**
     *  警戒线顶点数
     */
    public int nDetectLinePoint;

    /**
     *  警戒线
     */
    public NetSDKLib.CFG_POLYLINE[] stuDetectLine = (NetSDKLib.CFG_POLYLINE[]) new NetSDKLib.CFG_POLYLINE().toArray(NetSDKLib.MAX_POLYLINE_NUM);
    /**
     *  报警联动
     */
    public NetSDKLib.CFG_ALARM_MSG_HANDLE stuEventHandler;

    /**
     *  事件响应时间段
     */
    public NetSDKLib.TIME_SECTION_WEEK_DAY_10[]   stuTimeSectionWeekDay =
            (NetSDKLib.TIME_SECTION_WEEK_DAY_10[])new NetSDKLib.TIME_SECTION_WEEK_DAY_10().toArray(NetSDKLib.WEEK_DAY_NUM); 
    /**
     *  stuTimeSection字段是否禁用,默认FALSE:不禁用,TRUE:禁用,用户控制
     */
    public boolean bDisableTimeSection;

    /**
     *  云台预置点编号 0~65535
     */
    public int nPtzPresetId;

    /**
     *  规则特定的尺寸过滤器是否有效
     */
    public boolean bSizeFileter;

    /**
     *  规则特定的尺寸过滤器
     */
    public NetSDKLib.CFG_SIZEFILTER_INFO stuSizeFileter;

    /**
     *  触发报警位置数
     */
    public int nTriggerPosition;

    /**
     *  触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
     */
    public byte[] bTriggerPosition = new byte[8];

    /**
     *  跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
     */
    public int nTrackDuration;

    /**
     *  检测的车辆子类型个数
     */
    public int nVehicleSubTypeNum;

    /**
     *  检测的车辆子类型列表
     */
    public int[] emVehicleSubType = new int[128];

    /**
     *  是否开启目标属性识别,默认false
     */
    public boolean bFeatureEnable;

    /**
     *  前端视频分析联动
     */
    public NetSDKLib.CFG_ALARM_MSG_HANDLE stuRemoteEventHandler;

    /**
     *  前端视频分析联动响应时间段
     */
    public NetSDKLib.TIME_SECTION_WEEK_DAY_10[]   stuRemoteTimeSection =
            (NetSDKLib.TIME_SECTION_WEEK_DAY_10[])new NetSDKLib.TIME_SECTION_WEEK_DAY_10().toArray(NetSDKLib.WEEK_DAY_NUM); 
    
    /**
     *  stuRemoteTimeSection字段是否禁用, 默认FALSE:不禁用, TRUE:禁用, 用户控制
     */
    public boolean bDisableRemoteTimeSection;

    /**
     *  物体过滤器是否有效, 即stuObjectFilter 是否有效
     */
    public boolean bObjectFilter;

    /**
     *  物体过滤器信息 
     */
    public NET_CFG_OBJECT_FILTER_INFO stuObjectFilter;

}