mirror of
https://github.com/aljazceru/Android-nRF-Toolbox.git
synced 2025-12-23 17:34:28 +01:00
Add long write
This commit is contained in:
@@ -42,8 +42,11 @@ import kotlinx.coroutines.flow.onEach
|
|||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
import no.nordicsemi.android.kotlin.ble.client.main.callback.BleGattClient
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
import no.nordicsemi.android.kotlin.ble.client.main.connect
|
||||||
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattCharacteristic
|
||||||
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
import no.nordicsemi.android.kotlin.ble.client.main.service.BleGattServices
|
||||||
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
import no.nordicsemi.android.kotlin.ble.core.ServerDevice
|
||||||
|
import no.nordicsemi.android.kotlin.ble.core.data.BleGattProperty
|
||||||
|
import no.nordicsemi.android.kotlin.ble.core.data.BleWriteType
|
||||||
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
import no.nordicsemi.android.kotlin.ble.core.data.GattConnectionState
|
||||||
import no.nordicsemi.android.kotlin.ble.profile.battery.BatteryLevelParser
|
import no.nordicsemi.android.kotlin.ble.profile.battery.BatteryLevelParser
|
||||||
import no.nordicsemi.android.service.DEVICE_DATA
|
import no.nordicsemi.android.service.DEVICE_DATA
|
||||||
@@ -115,13 +118,21 @@ internal class UARTService : NotificationService() {
|
|||||||
.launchIn(lifecycleScope)
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
repository.command
|
repository.command
|
||||||
.onEach { rxCharacteristic.write(it.toByteArray()) }
|
.onEach { rxCharacteristic.write(it.toByteArray(), getWriteType(rxCharacteristic)) }
|
||||||
.onEach { repository.onNewMessageSent(it) }
|
.onEach { repository.onNewMessageSent(it) }
|
||||||
.launchIn(lifecycleScope)
|
.launchIn(lifecycleScope)
|
||||||
|
|
||||||
repository.onInitComplete(device)
|
repository.onInitComplete(device)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getWriteType(characteristic: BleGattCharacteristic): BleWriteType {
|
||||||
|
return if (characteristic.properties.contains(BleGattProperty.PROPERTY_WRITE)) {
|
||||||
|
BleWriteType.DEFAULT
|
||||||
|
} else {
|
||||||
|
BleWriteType.NO_RESPONSE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun stopIfDisconnected(connectionState: GattConnectionState) {
|
private fun stopIfDisconnected(connectionState: GattConnectionState) {
|
||||||
if (connectionState == GattConnectionState.STATE_DISCONNECTED) {
|
if (connectionState == GattConnectionState.STATE_DISCONNECTED) {
|
||||||
stopSelf()
|
stopSelf()
|
||||||
|
|||||||
Reference in New Issue
Block a user