whyclxw
2024-03-11 525166acab2b1219417f1e3953c0b7836995bc2c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.whyc.peopleCamera.Acs;
 
 
import com.whyc.peopleCamera.NetSDKDemo.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 成功");
        }
    }
}