package com.iailab.netsdk.lib.structure;

import com.iailab.netsdk.lib.NetSDKLib;

/**
 * @author : 291189
 * @since : Created in 2021/6/30 10:06 事件类型 EVENT_IVS_SECURITYGATE_PERSONALARM
 *        (安全门人员报警事件)对应的数据块描述信息
 */
public class DEV_EVENT_SECURITYGATE_PERSONALARM_INFO extends NetSDKLib.SdkStructure {

	public int nChannelID; // 通道号
	public int nAction; // 0:脉冲 1:开始 2:停止
	public byte[] szName = new byte[128]; // 事件名称
	public double PTS; // 时间戳(单位是毫秒)
	public NET_TIME_EX UTC = new NET_TIME_EX(); // 时间
	public int nEventID; // 事件ID
	/**
	 * 人员通过方向枚举,参考枚举{@link com.iailab.netsdk.lib.enumeration.EM_SECURITYGATE_PERSON_PASS_DIRECTION }
	 */
	public int emDirection; // 人员通过方向

	/**
	 * 报警级别,参考枚举{@link com.iailab.netsdk.lib.enumeration.EM_SECURITYGATE_ALARM_LEVEL }
	 */
	public int emAlarmLevel; // 报警级别
	public int nChannelIn; // 关联进入通道
	public int ChannelOut; // 关联离开通道
	public NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO stuImageInfo = new NetSDKLib.NET_INTELLIGENCE_IMAGE_INFO(); // 人脸图片信息
	public int nAlarmPositionNum; // 报警位置个数

	/**
	 * 报警位置,参考枚举{@link com.iailab.netsdk.lib.enumeration.EM_SECURITYGATE_ALARM_POSITION }
	 */
	public int[] emAlarmPosition = new int[18]; // 报警位置
	public NET_SECURITYGATE_ALARM_FACEIMAGE_INFO stuFaceImageInfo = new NET_SECURITYGATE_ALARM_FACEIMAGE_INFO(); // 人脸小图
	public NET_SECURITYGATE_ALARM_FACE_INFO stuSecurityGateFaceInfo = new NET_SECURITYGATE_ALARM_FACE_INFO(); // 人脸信息
	public byte[] byReserved = new byte[4]; // 保留字段
	public int nCandidateNum; // 候选人个数, 最大支持50
	public NET_SECURITYGATE_CANDIDATE[] stuCandidates = (NET_SECURITYGATE_CANDIDATE[]) new NET_SECURITYGATE_CANDIDATE()
			.toArray(50); // 候选人信息

	public int nDoorRegion; // 门体分区 0表示6分区 1表示12分区 2表示18分区
	public int nAlaramPositionNum; // 报警位置个数
	public int[] nAlaramPosition = new int[18]; // 报警位置数组 当nDoorRegion为0时,数组个数最多6个 0表示1区,1表示2区...5表示6区
												// 当nDoorRegion为1时,数组个数最多12个 0表示左1,1表示右1,2表示左2,3表示右2...10表示左6,11表示右6
												// 当nDoorRegion为2时,数组个数最多18个
												// 0表示左1,1表示中1,2表示右2,3表示左1,4表示中1,5表示右2...15表示左6,16表示中6,17表示右6
	public int nPositionNumEx;                              // 报警位置个数拓展
	public int[] emAlarmPositionEx= new int[128];           // 报警位置拓展 ,参考枚举EM_SECURITYGATE_ALARM_POSITION 
	public int nAlaramPositionNumEx;						// 报警位置个数拓展
	public int[] nAlaramPositionEx = new int[128];			// 报警位置数组拓展 门体分区相关
	public int											nAlarmInfoNum;								// 分类报警信息个数
	public NET_SECURITYGATE_ALARM_INFO[]				stuAlarmInfo = new NET_SECURITYGATE_ALARM_INFO[32];	// 分类报警信息
    public NET_EVENT_INFO_EXTEND   stuEventInfoEx = new NET_EVENT_INFO_EXTEND();  //事件公共扩展字段结构体
    public int                                         nPartitionRow;              // DoorRegion门体分区对应的区位分布的行数
    public int                                         nPartitionColumn;            // DoorRegion门体分区对应的区位分布的列数
	public byte[]									   szResvered = new byte[1016];		// 保留字节
	public DEV_EVENT_SECURITYGATE_PERSONALARM_INFO() {
		for (int i = 0; i < stuAlarmInfo.length; i++) {
			stuAlarmInfo[i] = new NET_SECURITYGATE_ALARM_INFO();
		}
	}
}