Пример #1
0
        public static async Task <List <Anviz.SDK.Responses.Record> > getRecs(int port)
        {
            var manager = new AnvizManager();

            manager.Listen(port);

            Console.WriteLine($"Listening on port {port}");
            using (var device = await manager.Accept())
            {
                device.DevicePing     += (s, e) => Console.WriteLine("Device Ping Received");
                device.ReceivedPacket += (s, e) => Console.WriteLine("Received packet");
                device.DeviceError    += (s, e) => throw e;

                var id = device.DeviceId;
                var sn = await device.GetDeviceSN();

                var type = await device.GetDeviceTypeCode();

                var biotype = await device.GetDeviceBiometricType();

                Console.WriteLine($"Connected to device {type} ID {id} SN {sn} BIO {biotype}");

                if (id != DEVICE_ID)
                {
                    await device.SetDeviceID(DEVICE_ID);
                }

                var stats = await device.GetDownloadInformation();

                Console.WriteLine($"TotalUsers {stats.UserAmount} TotalRecords {stats.AllRecordAmount}");
                var employees = await device.GetEmployeesData();

                var dict = new Dictionary <ulong, string>();
                foreach (var employee in employees)
                {
                    dict.Add(employee.Id, employee.Name);
                    Console.WriteLine($"Employee {employee.Id} -> {employee.Name} pwd {employee.Password} card {employee.Card} fp {string.Join(", ", employee.EnrolledFingerprints)}");
                    foreach (var f in employee.EnrolledFingerprints)
                    {
                        var fp = await device.GetFingerprintTemplate(employee.Id, f);

                        Console.WriteLine($"-> {f} {Convert.ToBase64String(fp)}");
                    }
                    await device.SetRecords(new Anviz.SDK.Responses.Record(employee.Id));
                }


                List <Anviz.SDK.Responses.Record> records = await device.DownloadRecords(true); //true to get only new records

                foreach (var rec in records)
                {
                    Console.WriteLine($"Employee {rec.UserCode}:{dict[rec.UserCode]} at {rec.DateTime.ToLongDateString()} {rec.DateTime.ToLongTimeString()}");
                }
                await device.ClearNewRecords();

                return(records);
            }

            Console.ReadLine();
        }
Пример #2
0
        public static async Task writePerson(ulong idPerson, string name, ulong password)
        {
            var manager = new AnvizManager();

            manager.Listen();
            Console.WriteLine($"Listening on port 5010");
            using (var device = await manager.Accept())
            {
                int a = 0;

                device.DevicePing     += (s, e) => Console.WriteLine("Device Ping Received");
                device.ReceivedPacket += (s, e) => Console.WriteLine("Received packet");
                device.DeviceError    += (s, e) => throw e;

                var id = device.DeviceId;
                var sn = await device.GetDeviceSN();

                var type = await device.GetDeviceTypeCode();

                var biotype = await device.GetDeviceBiometricType();

                Console.WriteLine($"Connected to device {type} ID {id} SN {sn} BIO {biotype}");

                var employee = new Anviz.SDK.Responses.UserInfo(idPerson, name);
                employee.Password = password;
                await device.SetEmployeesData(employee);

                Console.WriteLine("Created user, begin fp enroll");
                var fp = await device.EnrollFingerprint(employee.Id);

                await device.SetFingerprintTemplate(employee.Id, Anviz.SDK.Utils.Finger.RightIndex, fp);
            }
            Console.ReadLine();
        }
Пример #3
0
        public static async void FacepassExample()
        {
            var   manager     = new AnvizManager();
            ulong employee_id = 5; // number of employee ID, Example 5

            using (var device = await manager.Accept())
            {
                var fp = await device.EnrollFingerprint(employee_id, 1);

                var employee = new Anviz.SDK.Responses.UserInfo(employee_id, "name of employee");
                await device.SetEmployeesData(employee);

                await device.SetFaceTemplate(employee.Id, fp);
            }
        }
        /// <summary>
        /// Getting Persons
        /// </summary>
        /// <param name="numPort">0 for 5010(default), 1 for 5050</param>
        public static async Task <Dictionary <ulong, string> > GetUsers(int numPort = 0)
        {
            var manager = new AnvizManager();

            manager.Listen(Ports[numPort]);
            using (var device = await manager.Accept())
            {
                var employees = await device.GetEmployeesData();

                var dict = new Dictionary <ulong, string>();
                foreach (var employee in employees)
                {
                    dict.Add(employee.Id, employee.Name);
                }
                return(dict);
            }
        }
        static async Task Main(string[] args)
        {
            var manager  = new AnvizManager();
            var contador = 1;
            // Lista con las IP de los captahuellas
            List <string> direccionesIp = new List <string> ()
            {
                "10.1.1.1", "10.1.1.2"
            };

            // Recorremos la lista para actualizar la hora de los captahuellas
            foreach (var ip in direccionesIp)
            {
                await ActualizarHora(manager, ip, contador);

                contador++;
            }
            // Cerramos la consola
            Environment.Exit(0);
        }
        /// <summary>
        /// Adding new person to device
        /// </summary>
        /// <param name="numPort">0 for 5010(default), 1 for 5050</param>
        public static async Task AddPerson(ulong idPerson, string name, ulong password, int numPort = 0)
        {
            var manager = new AnvizManager();

            manager.Listen(Ports[numPort]);
            using (var device = await manager.Accept())
            {
                device.DevicePing     += (s, e) => Console.WriteLine("Device Ping Received");
                device.ReceivedPacket += (s, e) => Console.WriteLine("Received packet");
                device.DeviceError    += (s, e) => throw e;
                var employee = new Anviz.SDK.Responses.UserInfo(idPerson, name);
                employee.Password = password;
                await device.SetEmployeesData(employee);

                Console.WriteLine("User created, starting fp enroll");
                var fp = await device.EnrollFingerprint(employee.Id);

                await device.SetFingerprintTemplate(employee.Id, Anviz.SDK.Utils.Finger.RightIndex, fp);
            }
        }
        /// <summary>
        /// Method to get the latest records from the device
        /// </summary>
        /// <param name="numPort">0 for 5010(default), 1 for 5050</param>
        /// <param name="isLatest">Need the latest records? True is default</param>
        /// <param name="isNeedToClearLatestRecords">Need the clear latest records? False is default</param>
        /// <returns>List of Records</returns>
        public static async Task <List <Anviz.SDK.Responses.Record> > GetRecords(int numPort = 0, bool isLatest = true, bool isNeedToClearLatestRecords = false)
        {
            var manager = new AnvizManager();

            manager.Listen(Ports[numPort]);
            Console.WriteLine($"Listening on port {Ports[numPort]}");
            using (var device = await manager.Accept())
            {
                device.DevicePing     += (s, e) => Console.WriteLine("Device Ping Received");
                device.ReceivedPacket += (s, e) => Console.WriteLine("Received packet");
                device.DeviceError    += (s, e) => throw e;
                var records = await device.DownloadRecords(isLatest); //true to get only new records

                if (isNeedToClearLatestRecords)
                {
                    await device.ClearNewRecords();
                }
                return(records);
            }
        }
        // Método para cambiar la hora de los captahuellas
        private static async Task ActualizarHora(AnvizManager av_manager, string ip, int id)
        {
            try {
                // Nos conectamos al dispositivo a través de su IP
                using (var device = await av_manager.Connect(ip)) {
                    // Tratamos de cambiarle la hora
                    try {
                        // Tiempo actual del Servidor
                        var now = DateTime.Now;
                        // Tiempo actual del captahuellas
                        var deviceTime = await device.GetDateTime();

                        // Realizamos una comprobación para saber si es necesario actualizar la hora del dispositivo
                        if (Math.Abs((now - deviceTime).TotalSeconds) > 30)
                        {
                            // Actualizamos la hora del dispositivo
                            await device.SetDateTime(now);

                            // Escribimos en un archivo TXT "LogCambioDeHoraAutomatico"
                            EscribirTXT($"Dispositivo {id} IP: {ip} -> La hora ha sido cambiada de manera exitosa.");
                        }
                        else
                        {
                            // Si no es necesario cambiarle la hora lo escribimos en el archivo TXT "LogCambioDeHoraAutomatico"
                            EscribirTXT($"Dispositivo {id} IP: {ip} -> No hubo necesidad de cambiar la hora.");
                        }
                    } catch (Exception e) { // Capturamos la excepción si ocurre
                        // Esto sucede cuando el dispositivo se enciende ya que en ese momento tiene un formato de hora que no es manejable y por ende salta una "Exception", con este código capturamos la excepción y le cambiamos la hora al dispositivo de forma segura.

                        // Actualizamos la hora a pesar de la excepción
                        await device.SetDateTime(DateTime.Now);

                        // Escribimos en el archivo TXT "LogCambioDeHoraAutomatico"
                        EscribirTXT($"Dispositivo {id} IP: {ip} -> Ha ocurrido un error, aún así la hora ha sido actualizada de manera exitosa: {e.Message}");
                    }
                }
            } catch (Exception e) { // Capturamos la excepción en caso de no poder conectarnos al captahuellas
                EscribirTXT($"Dispositivo {id} IP: {ip} -> Ha ocurrido un error: {e.Message}");
            }
        }
Пример #9
0
        static async Task Main(string[] args)
        {
            var manager = new AnvizManager();

#if true //authenticate with device password
            manager.ConnectionUser         = "******";
            manager.ConnectionPassword     = "******";
            manager.AuthenticateConnection = true;
#endif
#if true //false for client mode
            manager.Listen();
            Console.WriteLine($"Listening on port 5010");
            using (var device = await manager.Accept())
#else
            using (var device = await manager.Connect(DEVICE_HOST))
#endif
            {
                device.DevicePing     += (s, e) => Console.WriteLine("Device Ping Received");
                device.ReceivedPacket += (s, e) => Console.WriteLine("Received packet");
                var id = await device.GetDeviceID();

                var sn = await device.GetDeviceSN();

                var type = await device.GetDeviceTypeCode();

                var biotype = await device.GetDeviceBiometricType();

                Console.WriteLine($"Connected to device {type} ID {id} SN {sn} BIO {biotype}");
                if (id != DEVICE_ID)
                {
                    await device.SetDeviceID(DEVICE_ID);
                }
                var now        = DateTime.Now;
                var deviceTime = await device.GetDateTime();

                Console.WriteLine($"Current device time is {deviceTime.ToShortDateString()} {deviceTime.ToShortTimeString()}");
                if (Math.Abs((now - deviceTime).TotalSeconds) > 1)
                {
                    await device.SetDateTime(now);

                    Console.WriteLine("Updated device time according to local time");
                }
                var net = await device.GetTcpParameters();

                Console.WriteLine($"Device IP is {net.IP} {net.SubnetMask} {net.DefaultGateway} {net.MacAddress} mode is {net.TcpMode.ToString()}");
#if false //here you can change network parameters
                net.DefaultGateway = IPAddress.Parse("10.0.0.5");
                await device.SetTCPParameters(net);
#endif
                var basic = await device.GetBasicSettings();

                Console.WriteLine($"FW {basic.Firmware} AdminPWD {basic.ManagementPassword} Vol {basic.Volume} DateFormat {basic.DateFormat} 24h {basic.Is24HourClock}");
#if false //here you can change basic parameters
                basic.Volume        = Anviz.SDK.Responses.Volume.Off;
                basic.DateFormat    = Anviz.SDK.Responses.DateFormat.DDMMYY;
                basic.Is24HourClock = true;
                await device.SetBasicSettings(basic);
#endif
                var advanced = await device.GetAdvancedSettings();

                Console.WriteLine($"FPPrecision {advanced.FPPrecision} Delay {advanced.RepeatAttendanceDelay}");
#if false //here you can change advanced parameters
                advanced.FPPrecision           = Anviz.SDK.Responses.FPPrecision.Medium;
                advanced.RepeatAttendanceDelay = 1;
                await device.SetAdvancedSettings(advanced);
#endif
                var stats = await device.GetDownloadInformation();

                Console.WriteLine($"TotalUsers {stats.UserAmount} TotalRecords {stats.AllRecordAmount}");
                var employees = await device.GetEmployeesData();

                var dict = new Dictionary <ulong, string>();
                foreach (var employee in employees)
                {
                    dict.Add(employee.Id, employee.Name);
                    Console.WriteLine($"Employee {employee.Id} -> {employee.Name} pwd {employee.Password} card {employee.Card} fp {string.Join(", ", employee.EnrolledFingerprints)}");
                    foreach (var f in employee.EnrolledFingerprints)
                    {
                        var fp = await device.GetFingerprintTemplate(employee.Id, f);

                        Console.WriteLine($"-> {f} {Convert.ToBase64String(fp)}");
                    }
                    await device.SetRecords(new Anviz.SDK.Responses.Record(employee.Id));
                }
                if (!dict.ContainsValue("TEST"))
                {
                    var employee = new Anviz.SDK.Responses.UserInfo(stats.UserAmount + 1, "TEST");
                    await device.SetEmployeesData(employee);

                    Console.WriteLine("Created test user, begin fp enroll");
                    var fp = await device.EnrollFingerprint(employee.Id);

                    await device.SetFingerprintTemplate(employee.Id, Anviz.SDK.Utils.Finger.RightIndex, fp);
                }
                var records = await device.DownloadRecords(true); //true to get only new records

                foreach (var rec in records)
                {
                    Console.WriteLine($"Employee {dict[rec.UserCode]} at {rec.DateTime.ToLongDateString()} {rec.DateTime.ToLongTimeString()}");
                }
                await device.ClearNewRecords();
            }
            Console.ReadLine();
        }