java调用海康人脸识别机5603的sdk的使用总结(二)

4 篇文章 3 订阅

下发卡号

该人脸机如果需要录入人脸信息,需要先录入卡号,员工号,姓名等(好像卡号是必须的,其他可以不用填写),当设备中已经有了这条信息,再下发人脸和卡号信息,会自动绑定。

先执行

NativeLong lUserID = hCNetSDK.NET_DVR_Login_V40(pLoginInfo, lpDeviceInfo);登录设备
新建NET_DVR_CARD_CFG_COND类
lpInBuffer.dwCardNum = 1;
lpInBuffer.byCheckCardNo = 0;
lpInBuffer.dwSize = lpInBuffer.size();
FRemoteConfigCallback fRemoteConfigCallback= newFRemoteConfigCallback();

// 这个很重要Structure 类的write()方法会把结构体的所有字段固定住,使原生函数可以访问。

lpInBuffer.write();

// 启动远程配置。

NativeLong lHandle = hCNetSDK.NET_DVR_StartRemoteConfig(lUserID, HCNetSDK.NET_DVR_SET_CARD_CFG_V50, lpInBuffer.getPointer(), lpInBuffer.size(),fRemoteConfigCallback, pLoginInfo.pUser);
lpInBuffer.read();

定义HCNetSDK.NET_DVR_CARD_CFG_V50类,这个是卡信息类

HCNetSDK.NET_DVR_CARD_CFG_V50 struCardCfg = new HCNetSDK.NET_DVR_CARD_CFG_V50();

注意里面的数组要实例化,并按sdk定好长度

举个例子:

for (inti = 0; i < cardNo.length(); i++) {
    struCardCfg.byCardNo[i] = (byte) cardNo.charAt(i);
}

以上代码是赋值卡号的,卡号的byte[]定义的时候的长度是32,经过上面的赋值之后,长度依然是32不变。没有内容的地方就是0

下面是我定义的内容

struCardCfg.dwModifyParamType= 0x00000C87;
           struCardCfg.byCardValid = (byte) 1;
           struCardCfg.byCardType = (byte) 1;
           // struCardCfg.struValid = struValid;
           struCardCfg.struValid.byEnable = (byte) 1;
           struCardCfg.struValid.struBeginTime.wYear = 2018;
           struCardCfg.struValid.struBeginTime.byMonth = (byte) 6;
           struCardCfg.struValid.struBeginTime.byDay = (byte) 1;
           struCardCfg.struValid.struBeginTime.byHour = (byte) 1;
           struCardCfg.struValid.struBeginTime.byMinute = (byte) 1;
           struCardCfg.struValid.struBeginTime.bySecond = (byte) 1;
           struCardCfg.struValid.struEndTime.wYear = 2025;
           struCardCfg.struValid.struEndTime.byMonth = (byte) 6;
           struCardCfg.struValid.struEndTime.byDay = (byte) 1;
           struCardCfg.struValid.struEndTime.byHour = (byte) 1;
           struCardCfg.struValid.struEndTime.byMinute = (byte) 1;
           struCardCfg.struValid.struEndTime.bySecond = (byte) 1;
           struCardCfg.dwModifyParamType= 399;

// 密码
           Stringps = "111111";
           for (inti = 0; i < ps.length(); i++) {
             struCardCfg.byCardPassword[i] = (byte) ps.charAt(i);
           }
           // 员工号
           struCardCfg.dwEmployeeNo = 215487;
           // 人名
           StringempName= "xxxxx";
           byte[] name = this.changeToByte(empName);
           for (inti = 0; i < name.length; i++) {
              struCardCfg.byName[i] = name[i];
           }
           struCardCfg.dwSize= struCardCfg.size();// 2708
struCardCfg.write();
           PointerlpPicConfig= struCardCfg.getPointer();

// 发送长连接

           booleanresult = hCNetSDK.NET_DVR_SendRemoteConfig(lHandle, HCNetSDK.ENUM_ACS_SEND_DATA,lpPicConfig,     struCardCfg.size());

// 关闭长连接配置接口所创建的句柄,释放资源。

booleanresult2= hCNetSDK.NET_DVR_StopRemoteConfig(lHandle);

dwModifyParamType的值请参考sdk,0x00000C87表示下发卡号,人名,工号。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值