门禁管理软件开发总结(门禁系统管理总结)

门禁管理软件开发总结

一、定制需求简述:

门禁管理软件向设备传输数据时,上传人员信息及指纹信息不全,由于门禁管理软件是按照固件版本来处理下发指纹数据,因为以前的软件对于现在的机器固件的指纹下发是处理不了的。因此需要定制。

门禁管理软件开发总结(门禁系统管理总结)

门禁管理软件

二、实现方法:

因上传人员组合验定时,在高速下是无法成功下发。原因为,在高速上传用户时,是先写到内存中,最后提交的,而上传人员组合验证的方法,不支持高速,它会直接下发到机器,这时机器中还没有人员,所以会失败。因此,在高速上传时,上传人员组合验证的功能移到最后,待人员都上传完毕之后处理。

三、门禁管理软件代码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;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。