Пытаюсь реализовать график данных датчиков в реальном времени в Jetpack Compose, но не могу найти правильный способ передачи данных датчиков в график.
Приложение получает новые данные датчиков через BLE каждые 40 мс в классе Kotlin, и я хотел бы передать их в специальную линейную диаграмму Compose. Я попытался реализовать это с помощью Stateflow, который затем собирается в Composable для заполнения списка, но это слишком медленно:
DataReceiver:
Код: Выделить всё
private val _liveData = MutableStateFlow(0)
// The UI collects from this StateFlow to get its state updates
val liveData: StateFlow = _liveData
override fun onCharacteristicChanged(
characteristic: BluetoothGattCharacteristic,
value: ByteArray,
) {
_liveData.value = value[0].toInt()
}
Но когда я пытаюсь собрать это из составного объекта, например:
< бр />
Код: Выделить всё
LaunchedEffect(DataReceiver.liveData) {
DataReceiver.liveData
.collect {
Log.d("BLE", "Value: " + it.value.toString())
}
}
How can I improve this or what is the best way to receive these values from an event and add it to a list in a composable?
Источник: https://stackoverflow.com/questions/781 ... ck-compose
Мобильная версия