112 lines
3.3 KiB
Java
112 lines
3.3 KiB
Java
package com.ubtrobot.jimu.bluetooth.base;
|
|
|
|
import android.os.SystemClock;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.concurrent.CopyOnWriteArrayList;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class DeviceProcessThread extends Thread {
|
|
private DeviceProcessThreadCallBack a;
|
|
private List<BUFFER_DATA> b;
|
|
private boolean c = true;
|
|
|
|
public interface DeviceProcessThreadCallBack {
|
|
void a(byte[] bArr, int i);
|
|
}
|
|
|
|
public DeviceProcessThread(DeviceProcessThreadCallBack deviceProcessThreadCallBack) {
|
|
this.a = deviceProcessThreadCallBack;
|
|
new ProtocolPacket();
|
|
this.b = new CopyOnWriteArrayList();
|
|
}
|
|
|
|
public void a(byte[] bArr, int i) {
|
|
synchronized (this) {
|
|
BUFFER_DATA buffer_data = new BUFFER_DATA();
|
|
buffer_data.a = bArr;
|
|
buffer_data.b = i;
|
|
buffer_data.c = SystemClock.uptimeMillis();
|
|
buffer_data.d = 0;
|
|
this.b.add(buffer_data);
|
|
if (this.a != null) {
|
|
this.a.a(bArr, i);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void b(byte[] bArr, int i) {
|
|
synchronized (this) {
|
|
if (this.a != null) {
|
|
this.a.a(bArr, i);
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // java.lang.Thread, java.lang.Runnable
|
|
public void run() {
|
|
while (this.c) {
|
|
synchronized (this) {
|
|
BUFFER_DATA buffer_data = null;
|
|
Iterator<BUFFER_DATA> it = this.b.iterator();
|
|
while (true) {
|
|
if (!it.hasNext()) {
|
|
break;
|
|
}
|
|
BUFFER_DATA next = it.next();
|
|
if (SystemClock.uptimeMillis() - next.c >= 10000) {
|
|
if (next.d >= 2) {
|
|
buffer_data = next;
|
|
break;
|
|
} else {
|
|
b(next.a, next.b);
|
|
next.c = SystemClock.uptimeMillis();
|
|
next.d++;
|
|
}
|
|
}
|
|
}
|
|
if (buffer_data != null) {
|
|
this.b.remove(buffer_data);
|
|
} else {
|
|
try {
|
|
Thread.sleep(100L);
|
|
} catch (InterruptedException unused) {
|
|
this.c = false;
|
|
Thread.currentThread().interrupt();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void a() {
|
|
synchronized (this) {
|
|
this.c = false;
|
|
this.b.clear();
|
|
}
|
|
}
|
|
|
|
public void a(byte b) {
|
|
synchronized (this) {
|
|
ProtocolPacket protocolPacket = new ProtocolPacket();
|
|
BUFFER_DATA buffer_data = null;
|
|
Iterator<BUFFER_DATA> it = this.b.iterator();
|
|
while (true) {
|
|
if (!it.hasNext()) {
|
|
break;
|
|
}
|
|
BUFFER_DATA next = it.next();
|
|
protocolPacket.b(next.a);
|
|
if (protocolPacket.f() == b) {
|
|
buffer_data = next;
|
|
break;
|
|
}
|
|
}
|
|
if (buffer_data != null) {
|
|
this.b.remove(buffer_data);
|
|
}
|
|
}
|
|
}
|
|
}
|