65 lines
2.6 KiB
Java
65 lines
2.6 KiB
Java
package com.afunx.ble.blelitelib.operation;
|
|
|
|
import android.bluetooth.BluetoothGatt;
|
|
import android.bluetooth.BluetoothGattCharacteristic;
|
|
import com.afunx.ble.blelitelib.log.BleLiteLog;
|
|
import com.afunx.ble.blelitelib.utils.HexUtils;
|
|
import java.util.Arrays;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class BleWriteCharacterisitcNoResponsePacketOperation extends BleOperationAbs {
|
|
private static final String TAG = "BleWriteCharacterisitcNoResponsePacketOperation";
|
|
private final BluetoothGatt mBluetoothGatt;
|
|
private final BluetoothGattCharacteristic mCharacteristic;
|
|
private final byte[] mMsg;
|
|
private final int mPacketInterval;
|
|
private final int mPacketSize;
|
|
|
|
private BleWriteCharacterisitcNoResponsePacketOperation(BluetoothGatt bluetoothGatt, BluetoothGattCharacteristic bluetoothGattCharacteristic, byte[] bArr, int i, int i2) {
|
|
this.mBluetoothGatt = bluetoothGatt;
|
|
this.mCharacteristic = bluetoothGattCharacteristic;
|
|
this.mMsg = bArr;
|
|
this.mPacketSize = i;
|
|
this.mPacketInterval = i2;
|
|
}
|
|
|
|
public static BleWriteCharacterisitcNoResponsePacketOperation createInstance(BluetoothGatt bluetoothGatt, BluetoothGattCharacteristic bluetoothGattCharacteristic, byte[] bArr, int i, int i2) {
|
|
return new BleWriteCharacterisitcNoResponsePacketOperation(bluetoothGatt, bluetoothGattCharacteristic, bArr, i, i2);
|
|
}
|
|
|
|
@Override // com.afunx.ble.blelitelib.operation.BleOperationAbs
|
|
protected void clearConcurrentOperation() {
|
|
}
|
|
|
|
@Override // com.afunx.ble.blelitelib.operation.BleOperation
|
|
public int getOperatcionCode() {
|
|
return 10;
|
|
}
|
|
|
|
@Override // com.afunx.ble.blelitelib.operation.BleOperation, java.lang.Runnable
|
|
public void run() {
|
|
this.mCharacteristic.setWriteType(1);
|
|
int i = this.mPacketSize;
|
|
int i2 = this.mPacketInterval;
|
|
int length = this.mMsg.length;
|
|
int i3 = 0;
|
|
while (i3 < length) {
|
|
int i4 = i3 + i;
|
|
int i5 = i4 <= length ? i : length - i3;
|
|
byte[] copyOfRange = Arrays.copyOfRange(this.mMsg, i3, i3 + i5);
|
|
this.mCharacteristic.setValue(copyOfRange);
|
|
this.mBluetoothGatt.writeCharacteristic(this.mCharacteristic);
|
|
BleLiteLog.i(TAG, "writeCharacteristic() " + HexUtils.bytes2HexStringWithSpace(copyOfRange, 0, i5));
|
|
if (i2 > 0) {
|
|
try {
|
|
Thread.sleep(i2);
|
|
} catch (InterruptedException unused) {
|
|
Thread.currentThread().interrupt();
|
|
return;
|
|
}
|
|
}
|
|
i3 = i4;
|
|
}
|
|
}
|
|
}
|