public List <LogData> TestESSLLogs(string ipAddress, int port, string fileName, int machineNumber) { if (axCZKEM.Connect_Net(ipAddress, port)) { Console.WriteLine("Device Connected Successfully"); axCZKEM.EnableDevice(machineNumber, bFlag: true); int dwYear = 0; int dwMonth = 0; int dwDay = 0; int dwHour = 0; int dwMinute = 0; int dwSecond = 0; axCZKEM.GetDeviceTime(machineNumber, ref dwYear, ref dwMonth, ref dwDay, ref dwHour, ref dwMinute, ref dwSecond); DateTime deviceDate = new DateTime(dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond); double timeDifference = Math.Abs((deviceDate - DateTime.Now).TotalMinutes); if (timeDifference <= 1.0) { Console.WriteLine("Device date is upto date"); } else { Console.WriteLine($"Device date is not upto date.. Device Date : {deviceDate} - PC Date : {DateTime.Now} - Time Difference : {timeDifference} mins"); } string macAddress = ""; if (axCZKEM.GetDeviceMAC(machineNumber, ref macAddress)) { Console.WriteLine("macAddress = " + macAddress); } string firmware = ""; if (axCZKEM.GetFirmwareVersion(machineNumber, ref firmware)) { Console.WriteLine("Firmware version = " + firmware); } List <LogData> list = new List <LogData>(); try { Console.WriteLine($"requesting device for READ_PERMISSION... "); if (axCZKEM.ReadGeneralLogData(machineNumber)) { Console.WriteLine($"Device gave read permission... "); if (axCZKEM.IsTFTMachine(machineNumber)) { Console.WriteLine("TFT Machine"); string userId2 = ""; int verifyMode2 = 0; int inOutMode2 = 0; int year = 0; int month = 0; int day = 0; int hour = 0; int minute = 0; int second = 0; int workcode = 0; while (axCZKEM.SSR_GetGeneralLogData(machineNumber, out userId2, out verifyMode2, out inOutMode2, out year, out month, out day, out hour, out minute, out second, ref workcode)) { LogData logData2 = new LogData(); logData2.DeviceNumber = 1; logData2.DeviceUserId = userId2; logData2.Status = inOutMode2; logData2.TimeStamp = year.ToString() + "-" + month.ToString() + "-" + day.ToString() + " " + hour.ToString() + ":" + minute.ToString() + ":" + second.ToString(); list.Add(logData2); } string employeeNumber = string.Empty; string employeeName = string.Empty; string employeePassword = string.Empty; int previlege = 0; bool isEnabled = false; int totalUsers = 1; List <User> users = new List <User>(); while (axCZKEM.SSR_GetAllUserInfo(machineNumber, out employeeNumber, out employeeName, out employeePassword, out previlege, out isEnabled)) { if (employeeNumber.Length > 9) { Console.WriteLine("Employee number found " + employeeNumber); } users.Add(new User() { Index = totalUsers, Name = employeeName, EmployeeId = employeeNumber }); totalUsers++; employeeNumber = ""; employeeName = ""; } Console.WriteLine("Total Users " + totalUsers); File.AppendAllText(fileName, JsonConvert.SerializeObject(users)); } else { Console.WriteLine("Not a TFT Machine"); int userId = 0; int verifyMode = 0; int inOutMode = 0; string timeStamp = DateTime.Now.ToString(); int count = 0; while (axCZKEM.GetGeneralLogDataStr(machineNumber, ref userId, ref verifyMode, ref inOutMode, ref timeStamp)) { LogData logData = new LogData(); logData.DeviceNumber = 1; logData.DeviceUserId = userId.ToString(); logData.Status = inOutMode; logData.TimeStamp = timeStamp; list.Add(logData); Console.Out.Write(string.Format("Logs Downloaded: \r", count++)); } } } else { Console.Write($"Device not given read permission...\n returning back.."); } } catch (Exception ex) { Console.WriteLine("Exception occured : " + ex.Message + ex.InnerException); } finally { axCZKEM.EnableDevice(machineNumber, bFlag: true); } Console.WriteLine("Got " + list.Count + " logs.."); Console.ReadKey(); Console.WriteLine("Press any key to continue..."); return(list); } return(null); }