public static void UpdateDeviceData(ref byte[] deviceData, DuressService duressService) { deviceData[6] = (byte)(duressService.Enabled ? 1 : 0); if (duressService.FingerPrintIndex.HasValue) { deviceData[5] = (byte)duressService.FingerPrintIndex; } if (duressService.IsOpenDoor.HasValue) { deviceData[1] = (byte)(duressService.IsOpenDoor.Value ? 1 : 0); } if (duressService.IsTriggerAlarm.HasValue) { deviceData[2] = (byte)(duressService.IsTriggerAlarm.Value ? 1 : 0); } if (!string.IsNullOrWhiteSpace(duressService.Password)) { string pwd = duressService.Password; for (int i = 0; i < Zd2911Utils.PasswordLength; i++) { if (i < (pwd.Length)) { deviceData[8 + i] = (byte)pwd[i]; } else { deviceData[8 + i] = 0; } } } }
public static DuressService BuildService(byte[] deviceData) { var duressService = new DuressService(); duressService.Enabled = (deviceData[6] == 1); duressService.FingerPrintIndex = deviceData[5]; duressService.IsOpenDoor = (deviceData[1] == 1); duressService.IsTriggerAlarm = (deviceData[2] == 1); var pwd = new StringBuilder(); for (int i = 0; i < Zd2911Utils.PasswordLength; i++) { pwd.Append((char)deviceData[8 + i]); } duressService.Password = ConvertObject.ToPrettyString(pwd.ToString()); return(duressService); }