private static byte[] read(byte[] address, int length) { try { if (length % 16 != 0 || !set_data_key()) { return(new byte[0]); } while (Reading) { Thread.Sleep(ThreadSleepDuration); } Reading = true; byte[] ret = new byte[length]; Command_Error result = Read_Secure_Memory(address, ret, length); Reading = false; return(result == Command_Error.OK ? ret : new byte[0]); } catch (Exception ex) { string strEx = ex.ToString(); Reading = false; return(new byte[0]); } }
private static bool _connect(bool checkLastTime) { while (Connecting) { Thread.Sleep(ThreadSleepDuration); } try { Connecting = true; init_login(); if (string.IsNullOrEmpty(Username) || string.IsNullOrEmpty(Password) || Username.ToLower() == "factory" || Username.ToLower() == "admin") { return(Connecting = false); } else if (checkLastTime && LastTimeConnected.HasValue && LastTimeConnected.Value > DateTime.Now.AddMinutes(-5)) { return(!(Connecting = false)); } Command_Error result = Connect_To_Device(Username, Password, (byte)Username.Length, (byte)Password.Length); Connecting = false; if (result == Command_Error.OK) { LastTimeConnected = DateTime.Now; return(true); } else { return(false); } } catch { Connecting = false; return(false); } }