BLEComm: Synchronize read and writes better
This commit is contained in:
parent
2302711cdf
commit
bc8876b6dd
1 changed files with 12 additions and 8 deletions
|
@ -99,6 +99,7 @@ class BLEComm @Inject internal constructor(
|
|||
private var mWritePackets: WriteCommandPackets? = null
|
||||
private var mWriteSequenceNumber: Int = 0
|
||||
private var mReadPacket: ReadDataPacket? = null
|
||||
private val readLock = Any()
|
||||
|
||||
private var mDeviceSN: Long = 0
|
||||
private var mCallback: BLECommCallback? = null
|
||||
|
@ -268,6 +269,7 @@ class BLEComm @Inject internal constructor(
|
|||
if (characteristic.getUuid() == UUID.fromString(READ_UUID)) {
|
||||
mCallback?.onNotification(value)
|
||||
} else if (characteristic.getUuid() == UUID.fromString(WRITE_UUID)) {
|
||||
synchronized(readLock) {
|
||||
if (mReadPacket == null) {
|
||||
mReadPacket = ReadDataPacket(value)
|
||||
} else {
|
||||
|
@ -279,6 +281,7 @@ class BLEComm @Inject internal constructor(
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCharacteristicWrite(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic, status: Int) {
|
||||
aapsLogger.debug(LTag.PUMPBTCOMM, "onCharacteristicWrite status = " + status)
|
||||
|
@ -456,6 +459,7 @@ class BLEComm @Inject internal constructor(
|
|||
mBluetoothGatt?.writeCharacteristic(characteristic)
|
||||
}
|
||||
}, WRITE_DELAY_MILLIS)
|
||||
SystemClock.sleep(WRITE_DELAY_MILLIS)
|
||||
}
|
||||
|
||||
private val uartWriteBTGattChar: BluetoothGattCharacteristic
|
||||
|
|
Loading…
Reference in a new issue