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(); }
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(); }
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); } }
/// <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); } }
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(); }