zkemkeeper.CZKEM CZ = new zkemkeeper.CZKEM();
CZ.BASE64 = 1;
CZ.ReadMark = true;
CZ.Connect_Net(ipaddress, port);
if (CZ.SSR_GetDeviceData(machineNumber, out Buffer, 10 \* 1024 \* 1024, "transaction", "\*", "", ""))
{
var lines = Buffer.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries).Skip(1);
List<MachineInfo> models = new List<MachineInfo>();
foreach (var item in lines)
{
var values = item.Split(',');
var model = new MachineInfo
{
IndRegID = Convert.ToInt32(values[1]),
TimeStamp = Convert.ToString(values[6]),
DateTimeRecord = Convert.ToString(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddSeconds(ToTimestamp(Convert.ToInt64(values[6]))))
};
}
return models;
}
如何在zkemkeeper类中使用SSR_GetDeviceData获取手指设备日志?
尝试从“inBIO260”等新型号获取手指设备日志 || “ACP-260”|| “生物钟 I”
请帮我解决这个问题,因为这个代码曾经对我有用,但现在不起作用并且不返回指纹
这只适用于支持pullsdk的设备。
如果是这样的话,我建议不要使用整个
zkemkeeper
混乱。相反,这里有一个更干净的替代方案:https://github.com/MuaazH/ZKTeco_PULLSDK_Wrapper
它使用相同的原生,但 API 更干净。
读取指纹(了解更多):
device.GetFingerprint(userPin, finger);
我在一个工作项目中有这个,下面的代码片段是我如何连接并获取出勤日志的。
Device.isConnected =
objZkeeper.Connect_Net(Device.IPAddress, (int)Device.Port);
if (Device.isConnected)
{
//DISABLE FRONT USER ACCESS
objZkeeper.EnableDevice(gAttendanceDevice.Id, false);
objZkeeper.ReadAllGLogData(Device.Id);
var prog = 0;
while (objZkeeper.SSR_GetGeneralLogData(Device.Id, out dwEnrollNumber1, out _,
out dwInOutMode, out dwYear, out dwMonth, out dwDay, out dwHour, out dwMinute, out dwSecond,
ref dwWorkCode))
{
//GET LOG FROM DEVICE
var inputDate = new DateTime(dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
var log = new AttendanceDeviceLog();
log.DataDateTime = inputDate;
log.UserId = int.Parse(dwEnrollNumber1);
log.EnrollMode = dwInOutMode;
log.DeviceId = Device.Id;
log.DeviceDescription = Device.Description;
if (log.DataDateTime.Value.Date == DateTime.Now.Date && IncludeToday) //exclude current date
DeviceLogs.Add(log);
else
DeviceLogs.Add(log);
}
//ENABLE FRONT USER ACCESS
objZkeeper.EnableDevice(gAttendanceDevice.Id, true);
}