package com.shxy.xyhkcamera.ascest; import com.shxy.xyhkcamera.ascest.AcsMain; import com.shxy.xyhkcamera.hk.HCNetSDK; /** * 多重卡认证功能,下发人员的输入json中参数belongGroup绑定人员群组 */ public class MutilCard { //设置群组参数 public static void setGroupCfg(int lUserID) { HCNetSDK.NET_DVR_GROUP_CFG struGroupCfg = new HCNetSDK.NET_DVR_GROUP_CFG(); struGroupCfg.read(); struGroupCfg.dwSize = struGroupCfg.size(); struGroupCfg.byEnable = 1; struGroupCfg.byGroupName = "test".getBytes(); // struGroupCfg.struValidPeriodCfg.byEnable = 1; struGroupCfg.struValidPeriodCfg.struBeginTime.wYear = 2021; struGroupCfg.struValidPeriodCfg.struBeginTime.byMonth = 1; struGroupCfg.struValidPeriodCfg.struBeginTime.byDay = 1; struGroupCfg.struValidPeriodCfg.struBeginTime.byHour = 0; struGroupCfg.struValidPeriodCfg.struBeginTime.byMinute = 0; struGroupCfg.struValidPeriodCfg.struBeginTime.bySecond = 0; struGroupCfg.struValidPeriodCfg.struEndTime.wYear = 2037; struGroupCfg.struValidPeriodCfg.struEndTime.byMonth = 12; struGroupCfg.struValidPeriodCfg.struEndTime.byDay = 31; struGroupCfg.struValidPeriodCfg.struEndTime.byHour = 23; struGroupCfg.struValidPeriodCfg.struEndTime.byMinute = 59; struGroupCfg.struValidPeriodCfg.struEndTime.bySecond = 59; struGroupCfg.write(); if(!AcsMain.hCNetSDK.NET_DVR_SetDVRConfig(lUserID,2113,1,struGroupCfg.getPointer(),struGroupCfg.size())) { System.out.println("NET_DVR_SetDVRConfig NET_DVR_SET_GROUP_CFG失败,错误码:" + AcsMain.hCNetSDK.NET_DVR_GetLastError()); } else { System.out.println("NET_DVR_SetDVRConfig NET_DVR_SET_GROUP_CFG成功"); } } //设置多重认证参数 /** * 多重卡刷卡开门功能: * 有权限的任意n张卡刷卡之后才能开门,不限制先后次序,则只需要设置一个群组组合(卡号都配置关联该群组),byMemberNum设为n,bySequenceNo设为1。 * 有权限的n张A类卡和m张B类卡刷卡之后才能开门,而且先刷A类卡再刷B类卡,则需要设置2个群组组合,2个群组组合的byMemberNum分别为n和m, * bySequenceNo分别为1、2;如果不需要限制刷卡先后次序,则bySequenceNo都设为0,0表示无序。 * @param lUserID */ public static void setMultiCardCfg(int lUserID) { HCNetSDK.NET_DVR_MULTI_CARD_CFG_V50 struMultiCardCfg = new HCNetSDK.NET_DVR_MULTI_CARD_CFG_V50(); struMultiCardCfg.read(); struMultiCardCfg.dwSize = struMultiCardCfg.size(); struMultiCardCfg.byEnable = 1; struMultiCardCfg.bySwipeIntervalTimeout = 30; //刷卡认证超时时间 struMultiCardCfg.struGroupCfg[0].byEnable = 1; struMultiCardCfg.struGroupCfg[0].dwTemplateNo = 1; struMultiCardCfg.struGroupCfg[0].struGroupCombination[0].byEnable = 1; struMultiCardCfg.struGroupCfg[0].struGroupCombination[0].byMemberNum = 2; //刷卡成员数量,群组里面需要刷卡的卡个数 struMultiCardCfg.struGroupCfg[0].struGroupCombination[0].bySequenceNo = 1; //群组刷卡次序号 struMultiCardCfg.struGroupCfg[0].struGroupCombination[0].dwGroupNo = 1; //群组编号 //刷卡认证组 struMultiCardCfg.write(); if(!AcsMain.hCNetSDK.NET_DVR_SetDVRConfig(lUserID, HCNetSDK.NET_DVR_SET_MULTI_CARD_CFG_V50,1,struMultiCardCfg.getPointer(),struMultiCardCfg.size())) { System.out.println("NET_DVR_SetDVRConfig NET_DVR_SET_MULTI_CARD_CFG_V50 失败,错误码:" + AcsMain.hCNetSDK.NET_DVR_GetLastError()); } else { System.out.println("NET_DVR_SetDVRConfig NET_DVR_SET_MULTI_CARD_CFG_V50 成功"); } } }