package com.netsdk.lib.structure;

import com.netsdk.lib.NetSDKLib;
import com.netsdk.lib.enumeration.EM_TRFAFFIC_LIGHT_SOURCE;

/**
 * (交通灯事件)对应的数据块描述信息
 *
 * @author ： 47040
 * @since ： Created in 2020/8/29 16:41
 */
public class ALARM_TRAFFIC_LIGHT_STATE_INFO extends NetSDKLib.SdkStructure {
    /**
     * 通道号
     */
    public int              nChannelID;
    /**
     * 0:脉冲 1:开始 2:停止
     */
    public int              nAction;
    /**
     * 事件名称
     */
    public byte[]           szName = new byte[128];
    /**
     * 时间戳(单位是毫秒)
     */
    public double           PTS;
    /**
     * 事件发生的时间
     */
    public NET_TIME_EX      UTC;
    /**
     * 事件ID
     */
    public int              nEventID;
    /**
     * 视频分析的数据源地址
     */
    public int              nSource;
    /**
     * 帧序号
     */
    public int              nFrameSequence;
    /**
     * 红绿灯触发源 枚举{@link EM_TRFAFFIC_LIGHT_SOURCE}
     */
    public int              emLightSource;
    /**
     * stuLightPeriods元素个数
     */
    public int              nLightPeriodsNum;
    /**
     * 每个元素表示一种灯亮的持续时间，时间单位毫秒
     */
    public NET_LIGHTPERIODS_INFO[] stuLightPeriods = new NET_LIGHTPERIODS_INFO[4];
    /**
     * 交通灯状态，数组下标为车道号，实际只用到了第一个元素
     */
    public NET_TRAFFIC_LIGHT_STATE[] stuLightStates = new NET_TRAFFIC_LIGHT_STATE[8];
    /**
     * stuLightStates元素个数
     */
    public int              nLightStateNum;
    /**
     * 预留字段
     */
    public byte[]           byReserved = new byte[1020];

    public ALARM_TRAFFIC_LIGHT_STATE_INFO() {
        for (int i = 0; i < stuLightPeriods.length; i++) {
            stuLightPeriods[i] = new NET_LIGHTPERIODS_INFO();
        }

        for (int j = 0; j < stuLightStates.length; j++) {
            stuLightStates[j] = new NET_TRAFFIC_LIGHT_STATE();
        }

    }
}

