简单的门禁系统开发(门禁管理软件开发总结)
简单的门禁系统开发(门禁管理软件开发总结)UploadOk := ZkManager.UpdateBatch; 主要代码如下: 二、实现方法: 因上传人员组合验定时,在高速下是无法成功下发。原因为,在高速上传用户时,是先写到内存中,最后提交的,而上传人员组合验证的方法,不支持高速,它会直接下发到机器,这时机器中还没有人员,所以会失败。因此,在高速上传时,上传人员组合验证的功能移到最后,待人员都上传完毕之后处理。 三、门禁管理软件代码Changelog:
门禁管理软件开发总结
一、定制需求简述:
门禁管理软件向设备传输数据时,上传人员信息及指纹信息不全,由于门禁管理软件是按照固件版本来处理下发指纹数据,因为以前的软件对于现在的机器固件的指纹下发是处理不了的。因此需要定制。
门禁管理软件
二、实现方法:
因上传人员组合验定时,在高速下是无法成功下发。原因为,在高速上传用户时,是先写到内存中,最后提交的,而上传人员组合验证的方法,不支持高速,它会直接下发到机器,这时机器中还没有人员,所以会失败。因此,在高速上传时,上传人员组合验证的功能移到最后,待人员都上传完毕之后处理。
三、门禁管理软件代码Changelog:
主要代码如下:
UploadOk := ZkManager.UpdateBatch;
//更新组合验证 不可以放到高速里面,只有在高速完成了之后再做
//如果是高速模式还要处理 上传验证方式
First; //从头开始
while Not Eof do
begin
if Not FieldByName('Selected').AsBoolean then //此用户没有选中跳过
begin
Next;
Continue;
Application.ProcessMessages;
end;
if ckbBase.Checked then
begin
if FCancelOp then Exit;
ZeroMemory(Pointer(@UserACCfg) Sizeof(UserACCfg));
//处理验证方式
UserACCfg.VerifyStyle := 0;
//根据门禁管理软件参数[上传用户没有指定门禁权限时,门禁管理软件将默认权限(使用组1时间段)。]
//去查找此用户有没有定义用户门禁权限
bFind := SearchUserDoorPri(ZkManager.DeviceInfo.ID IntToStr(FieldByName('UserNo').AsInteger) UserACCfg);
if not bFind then
begin
//没有找到用户自定义门禁权限 用户在不在:组->门禁组中
bFind := SearchUserDoorPriExt(ZkManager.DeviceInfo.ID FieldByName('UserNo').AsInteger UserACCfg);
end;
if bFind and ZkManager.TFTACC then
begin
iVerify:=IfThen((UserACCfg.VerifyStyle > 0) (128 UserACCfg.VerifyStyle-1) 0);
ZkManager.ZKem.SetUserInfoEx(ZkManager.DeviceInfo.MachineNumber FieldByName('UserNo').AsInteger iVerify Reserved);
end;