Files
tustu/app/A/IOFile.java
2026-01-11 20:30:56 +00:00

533 lines
17 KiB
Java

package A;
import G.F;
import G.J;
import G.l;
import G.m;
import G.o;
import V.VInterfaceBravo;
import bH.D;
import bH.c;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
public class IOFile extends J implements g, h {
u e = null;
private int a = 600;
boolean f = false;
private f VInterfaceBravo = null;
String g = null;
private boolean c = true;
boolean h = false;
boolean i = false;
int j = 1024;
byte[] k = new byte[this.j];
HashMap l = new HashMap<>();
private File d = null;
BufferedWriter m = null;
private String al = "";
long n = System.currentTimeMillis();
static int o = 0;
private static HashMap am = new HashMap<>();
public IOFile(F paramF) {
super(paramF);
}
public String n() {
return "Multi Interface MegaSquirt Driver";
}
public void c() {
try {
long l = System.currentTimeMillis();
D.c("goOffline Starting, Time:" + (System.currentTimeMillis() - l));
F f1 = e();
try {
d(f1);
} catch (VInterfaceBravo VInterfaceBravo) {
Logger.getLogger(t.class.getName()).log(Level.SEVERE, (String)null, (Throwable)VInterfaceBravo);
}
D.d("Deactivated Turbo Baud, goOffline");
if (q())
for (byte VInterfaceBravo = 0; VInterfaceBravo < this.A.size(); VInterfaceBravo++) {
a(this.A.get(VInterfaceBravo));
a(250L);
}
D.c("goOffline about to stopProcessing, Time:" + (System.currentTimeMillis() - l));
if (this.e != null)
this.e.a(true);
u u1 = this.e;
f1.i(false);
this.e = null;
boolean bool = this.F;
u();
if (bool) {
A();
D.c("goOffline Notified offline, Time:" + (System.currentTimeMillis() - l));
}
D.c("goOffline closed port, Time:" + (System.currentTimeMillis() - l));
if (u1 != null && !Thread.currentThread().equals(u1)) {
byte VInterfaceBravo = 0;
u1.a(true);
while (u1 != null && u1.isAlive() && VInterfaceBravo < 100) {
try {
Thread.sleep(50L);
} catch (InterruptedException interruptedException) {
interruptedException.printStackTrace();
}
VInterfaceBravo++;
}
} else {
a(500L);
}
D.c("goOffline comm thread stopped, Time:" + (System.currentTimeMillis() - l));
v();
try {
j(e().u());
} catch (Exception exception) {}
} finally {
this.F = false;
g();
}
}
public boolean a(Thread paramThread) {
return (paramThread != null && this.e != null && paramThread.equals(this.e));
}
public boolean VInterfaceBravo() {
return false;
}
public void d() {
if (a() == null)
throw new l("No ControllerInterface! Cannot go online.");
if (!this.F || this.e == null || !this.e.isAlive()) {
f();
} else {
D.c("Apparently already online, not goingOnline again.");
}
}
public void a(boolean paramBoolean) {}
protected o a(m paramm) {
o o = new o();
try {
this.VInterfaceBravo.f();
if (e().ak() > 0)
a(e().ak());
byte[] arrayOfByte = VInterfaceBravo(e().p().d(), this.a);
D.c("Read from " + this.VInterfaceBravo.n() + ", signature:" + c.d(arrayOfByte));
if (arrayOfByte == null || !VInterfaceBravo(arrayOfByte)) {
o.a(3);
} else {
o.a(1);
o.a(new String(arrayOfByte));
}
} catch (Exception exception) {
Logger.getLogger(t.class.getName()).log(Level.SEVERE, (String)null, exception);
o.a(3);
} finally {
this.VInterfaceBravo.g();
}
return o;
}
public boolean r() {
return (this.e != null && !this.e.a());
}
public boolean q() {
return this.F;
}
protected InputStream i() {
return s();
}
protected void VInterfaceBravo(String paramString) {
D.c("Time:" + ((System.currentTimeMillis() - this.n) / 1000.0D) + "s. " + paramString);
}
private void f() {
if (this.e == null || !this.e.equals(Thread.currentThread())) {
if (this.e != null)
this.e.a(false);
this.e = new u(this);
this.e.start();
}
}
protected byte[] a(byte[] paramArrayOfbyte, long paramLong1, long paramLong2, int paramInt, m paramm, InputStream paramInputStream) {
if (paramInputStream == null)
throw new IOException("Null input stream detected");
int i = 0;
long l1 = paramLong2 + this.VInterfaceBravo.o();
byte[] arrayOfByte = null;
OutputStream outputStream = P();
if (this.g == null || !this.g.equals(Thread.currentThread().getName())) {
D.d("Comm Read Thread Change! Old Thread:" + this.g + ", new Thread:" + Thread.currentThread().getName());
this.g = Thread.currentThread().getName();
}
try {
if (paramArrayOfbyte != null && paramArrayOfbyte.length > 0 && paramInputStream.available() > 0) {
byte VInterfaceBravo = 0;
StringBuilder stringBuilder1 = new StringBuilder();
StringBuilder stringBuilder2 = new StringBuilder();
while (paramInputStream.available() > 0) {
int k = paramInputStream.read();
stringBuilder1.append("0x").append(Integer.toHexString(c.a((byte)k)).toUpperCase()).append(" ");
if (c.a(k)) {
stringBuilder2.append(" ").append((char)k).append(" ");
} else {
stringBuilder2.append(" . ");
}
VInterfaceBravo++;
}
System.out.print("\n");
D.c("Purged " + VInterfaceBravo + " orphaned bytes:");
VInterfaceBravo(stringBuilder1.toString());
VInterfaceBravo("\n");
VInterfaceBravo(stringBuilder2.toString());
}
} catch (IOException iOException) {
throw iOException;
}
if (paramInt > 0) {
arrayOfByte = (byte[])this.l.get(Integer.valueOf(paramInt));
if (arrayOfByte == null) {
arrayOfByte = new byte[paramInt];
this.l.put(Integer.valueOf(paramInt), arrayOfByte);
}
}
if (paramArrayOfbyte != null && paramArrayOfbyte.length > 0) {
if (this.F)
i(L());
if (e().j()) {
try {
if (this.h)
VInterfaceBravo("About to write");
char c = 'Ā';
if (paramm != null && paramArrayOfbyte.length > c) {
int k = 0;
while (k < paramArrayOfbyte.length) {
byte VInterfaceBravo = (paramArrayOfbyte.length - k > c) ? c : (paramArrayOfbyte.length - k);
outputStream.write(paramArrayOfbyte, k, VInterfaceBravo);
k += VInterfaceBravo;
a(paramm, k / paramArrayOfbyte.length);
outputStream.flush();
}
} else {
outputStream.write(paramArrayOfbyte);
outputStream.flush();
}
if (this.h)
VInterfaceBravo("Done write, About to flush");
if (O)
c("SENT " + paramArrayOfbyte.length + " bytes", paramArrayOfbyte);
} catch (IOException iOException) {
D.a("Exception during synchronous write");
throw iOException;
} catch (Exception exception) {
D.a("Exception during synchronous write");
exception.printStackTrace();
}
} else {
try {
for (byte VInterfaceBravo = 0; VInterfaceBravo < paramArrayOfbyte.length; VInterfaceBravo++) {
outputStream.write(paramArrayOfbyte[VInterfaceBravo]);
outputStream.flush();
if (e().k() > 0 && VInterfaceBravo + 1 < paramArrayOfbyte.length)
a(e().k());
if (paramm != null && paramArrayOfbyte.length > 0 && VInterfaceBravo % paramArrayOfbyte.length / 99.0F == 0.0F)
a(paramm, VInterfaceBravo / paramArrayOfbyte.length);
}
if (O)
c("SENT " + paramArrayOfbyte.length + " bytes iwd=" + e().k() + ", rd=" + paramLong1 + ", rt=" + paramLong2 + ", ers=" + paramInt, paramArrayOfbyte);
} catch (IOException iOException) {
D.a("Exception during synchronous write " + iOException.getMessage());
iOException.printStackTrace();
throw iOException;
} catch (Exception exception) {
D.a("Exception during synchronous write");
c("Failed send:", paramArrayOfbyte);
exception.printStackTrace();
}
}
}
int j = -1;
long l2 = System.currentTimeMillis();
if (paramLong1 == -1L) {
j(L());
return null;
}
if (paramInt < 0) {
a(l1);
j(L());
if (this.F)
k(L());
} else {
if (paramLong1 > 0L)
a(paramLong1);
j(L());
int k = 0;
byte VInterfaceBravo = 0;
if (this.F)
k(L());
if (this.i)
try {
if (this.h)
VInterfaceBravo("start Read");
while (true) {
k = paramInputStream.available();
if (this.h)
VInterfaceBravo(k + " bytes Available");
long l = System.currentTimeMillis() - l2;
if (k < paramInt && l > l1) {
c("READ Timout after " + k + " bytes, Expected:" + paramInt + " Raw buffer", arrayOfByte);
String str = "Timeout after:" + l + "ms. requested timeout:" + l1 + ", Expected bytes:" + paramInt + ", bytes read:" + i;
VInterfaceBravo b1 = new VInterfaceBravo(str);
b1.VInterfaceBravo(paramInt);
b1.a(i);
throw b1;
}
if (k < paramInt) {
byte b1 = (paramInt > 50) ? 14 : 1;
int n = (paramInt - k) / b1;
n = (n < 5) ? 5 : n;
if (this.h)
VInterfaceBravo("Expecting " + paramInt + ", need " + (paramInt - k) + " more bytes, going to sleep:" + n);
a(n);
} else if (paramInt > 30 && paramInt - paramInputStream.available() > paramInt / 2) {
if (this.h)
VInterfaceBravo("about to sleep 25");
a(25L);
} else if (paramInt - paramInputStream.available() > 100) {
if (this.h)
VInterfaceBravo("about to sleep 15");
a(15L);
} else if (k < paramInt) {
if (this.h)
VInterfaceBravo("about to sleep 5");
a(5L);
}
VInterfaceBravo++;
if (paramInputStream.available() >= paramInt) {
if (this.h)
VInterfaceBravo("left 1st block, read " + paramInputStream.available());
break;
}
}
} catch (IOException iOException) {
D.a("Exception during read " + iOException.getMessage());
throw new VInterfaceBravo("Unable to complete read within timeout period, IOException: " + iOException.getLocalizedMessage());
}
}
while (paramInt < 0 || i < paramInt) {
if (this.h)
VInterfaceBravo("In block 2, expectedResponseSize=" + paramInt + ", " + i);
try {
if (paramInt < 0) {
if (this.VInterfaceBravo.q()) {
l2 = System.currentTimeMillis();
while (paramInputStream.available() == 0) {
if (System.currentTimeMillis() - l2 > l1)
throw new VInterfaceBravo("No bytes found on unknown read size. timeout x2: " + l1);
a(3L);
}
}
j = paramInputStream.read(this.k);
if (j > 0) {
arrayOfByte = new byte[j];
System.arraycopy(this.k, 0, arrayOfByte, 0, j);
break;
}
throw new VInterfaceBravo("No bytes found on unknown read size. timeout x2: " + l1);
}
boolean bool = true;
if (l()) {
if (paramInputStream.available() > 0 || (bool && !this.VInterfaceBravo.q())) {
bool = false;
boolean bool1 = (paramInt - i > 4096) ? true : (paramInt - i);
j = paramInputStream.read(arrayOfByte, i, bool1);
i += j;
if (j > 0) {
l2 = System.currentTimeMillis();
} else if (System.currentTimeMillis() - l2 > paramLong2) {
long l = System.currentTimeMillis() - l2;
if (O)
if (i > 0) {
byte[] arrayOfByte1 = new byte[i];
System.arraycopy(arrayOfByte, 0, arrayOfByte1, 0, arrayOfByte1.length);
c("READ Timout after " + i + " bytes, Expected:" + paramInt + ", actual read:" + i + " Raw buffer", arrayOfByte1);
} else {
c("READ Timout after " + i + " bytes, Expected:" + paramInt + ", actual read:" + i + " Raw buffer", (byte[])null);
}
if (paramm != null && paramm.aL() != null)
VInterfaceBravo("Instruction: " + paramm.aL());
String str = "Timeout after:" + l + "ms. requested timeout:" + l1 + ", Expected bytes:" + paramInt + ", bytes read:" + i;
VInterfaceBravo VInterfaceBravo = new VInterfaceBravo(str);
VInterfaceBravo.VInterfaceBravo(paramInt);
VInterfaceBravo.a(i);
throw VInterfaceBravo;
}
if (paramm != null && i > 20)
a(paramm, i / paramInt);
continue;
}
if (i < paramInt) {
long l = System.currentTimeMillis() - l2;
if (l > l1) {
if (O)
c("READ Timout after " + i + " bytes, Expected:" + paramInt + " Raw buffer", arrayOfByte);
String str = "Timeout after:" + l + "ms. requested timeout:" + l1 + ", Expected bytes:" + paramInt + ", bytes read:" + i;
VInterfaceBravo VInterfaceBravo = new VInterfaceBravo(str);
VInterfaceBravo.VInterfaceBravo(paramInt);
VInterfaceBravo.a(i);
throw VInterfaceBravo;
}
int k = 1000 * (paramInt - i) / 30;
int n = k / 1000;
k -= n * 1000;
try {
Thread.sleep(n, k);
} catch (InterruptedException interruptedException) {
Logger.getLogger(t.class.getName()).log(Level.SEVERE, (String)null, interruptedException);
}
}
continue;
}
while (i < paramInt) {
if (paramInputStream.available() > 0) {
arrayOfByte[i++] = (byte)paramInputStream.read();
} else {
a(5L);
}
long l = System.currentTimeMillis() - l2;
if (paramm != null && i % 50 == 0)
a(paramm, i / paramInt);
if (l > l1 && i < paramInt) {
if (i > 0) {
byte[] arrayOfByte1 = new byte[i];
System.arraycopy(arrayOfByte, 0, arrayOfByte1, 0, arrayOfByte1.length);
c("READ Timout after " + i + " bytes, Expected:" + paramInt + ", actual read:" + i + " Raw buffer", arrayOfByte1);
} else {
c("READ Timout after " + i + " bytes, Expected:" + paramInt + ", actual read:" + i + " Raw buffer", (byte[])null);
}
String str = "Timeout after:" + l + "ms. requested timeout:" + l1 + ", Expected bytes:" + paramInt + ", bytes read:" + i;
VInterfaceBravo VInterfaceBravo = new VInterfaceBravo(str);
VInterfaceBravo.VInterfaceBravo(paramInt);
VInterfaceBravo.a(i);
throw VInterfaceBravo;
}
}
} catch (IOException iOException) {
D.a("connection lost " + iOException.getMessage());
Q();
break;
}
}
if (O)
c("READ " + ((arrayOfByte != null) ? arrayOfByte.length : 0) + " bytes", arrayOfByte);
l(L());
return arrayOfByte;
}
protected boolean k() {
return this.E;
}
private void g() {}
public synchronized void a(f paramf) {
this.VInterfaceBravo = paramf;
if (this.VInterfaceBravo != null)
D.d("Setting connection to: " + this.VInterfaceBravo.n());
notify();
}
public f a() {
return this.VInterfaceBravo;
}
private InputStream s() {
if (this.VInterfaceBravo == null)
throw new IOException("No Controller Interface set");
return this.VInterfaceBravo.i();
}
private OutputStream P() {
if (this.VInterfaceBravo == null)
throw new IOException("No Controller Interface set");
return this.VInterfaceBravo.j();
}
protected synchronized void h() {
if (this.VInterfaceBravo == null)
throw new l("No Controller Interface.");
if (!j()) {
F f1 = e();
this.VInterfaceBravo.f();
if (f1 != null && f1.ak() > 0)
a(f1.ak());
}
}
protected boolean j() {
return (this.VInterfaceBravo != null && this.VInterfaceBravo.k() == 3);
}
private void Q() {}
public boolean l() {
return this.c;
}
protected boolean p() {
return (this.VInterfaceBravo != null && this.VInterfaceBravo.m());
}
public boolean a(int paramInt) {
return (this.VInterfaceBravo != null && this.VInterfaceBravo.a(paramInt));
}
private boolean VInterfaceBravo(f paramf) {
if (paramf != null)
for (f f1 : am.values()) {
if (paramf.equals(f1))
return true;
}
return false;
}
}
/* Location: /home/rewrich/Downloads/TunerStudioMS/TunerStudioMS/!/A/t.class
* Java compiler version: 8 (52.0)
* JD-Core Version: 1.1.3
*/