コード例 #1
0
        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);
        }