From 85162669e4b616f1d8c4006a3c1da4be31a79137 Mon Sep 17 00:00:00 2001 From: jjangddu Date: Thu, 30 Apr 2026 10:37:14 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20BLE=20=ED=8C=A8=ED=82=B7=20=EC=88=98?= =?UTF-8?q?=EC=8B=A0=20=EB=A9=94=EC=9D=B8=EC=8A=A4=EB=A0=88=EB=93=9C=20?= =?UTF-8?q?=EC=9D=98=EC=A1=B4=20=EC=A0=9C=EA=B1=B0=20+=20Auto=20=EA=B0=84?= =?UTF-8?q?=EA=B2=A9=201.5=EC=B4=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BLE: - onCharacteristicChanged에서 handler.post 제거 - processReceivedData를 Binder 스레드에서 직접 실행 - 메인 스레드 큐 대기로 인한 reb 패킷 유실 방지 Auto: - 최소 간격 1000ms → 1500ms (기기 연속 maa 채널 드롭 방지) - 10개 × 1.5초 = ~15초마다 trimmed mean 업데이트 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../java/com/example/medilightv2android/ble/BleManager.kt | 4 ++-- .../ui/views/monitoring/PiezoMonitoringView.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt b/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt index aea0331..2e687b7 100644 --- a/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt +++ b/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt @@ -807,7 +807,7 @@ class BleManager private constructor(private val context: Context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (characteristic.uuid == RX_CHAR_UUID) { if (value.size < 4) return - handler.post { processReceivedData(value) } + processReceivedData(value) } } } @@ -819,7 +819,7 @@ class BleManager private constructor(private val context: Context) { @Suppress("DEPRECATION") val data = characteristic.value ?: return if (data.size < 4) return - handler.post { processReceivedData(data) } + processReceivedData(data) } } } diff --git a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt index cf45846..1cecf87 100644 --- a/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt +++ b/app/src/main/java/com/example/medilightv2android/ui/views/monitoring/PiezoMonitoringView.kt @@ -358,9 +358,9 @@ fun PiezoMonitoringView(appState: AppState) { kotlinx.coroutines.delay(100) } autoTickCount++ - // 최소 1000ms 간격 보장 (기기 측정 한계 ~0.6초 + 여유) + // 최소 1500ms 간격 보장 (기기 연속 maa 채널 드롭 방지) val elapsed = System.currentTimeMillis() - measureStartMs - val remaining = 1000L - elapsed + val remaining = 1500L - elapsed if (remaining > 0) kotlinx.coroutines.delay(remaining) } kotlinx.coroutines.delay(50)