diff --git a/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PiezoMonitoringView.kt b/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PiezoMonitoringView.kt index 2c3fd03..64dae3c 100644 --- a/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PiezoMonitoringView.kt +++ b/app/src/main/java/com/medithings/vesiscan/ui/views/monitoring/PiezoMonitoringView.kt @@ -643,7 +643,11 @@ fun PiezoMonitoringView(appState: AppState) { } bleManager.piezoCollector.onLog = { msg -> Log.d("PiezoCollector", msg) } - if (!bleManager.sendChannelsOnly()) { + // 2026-07-07 fix: sendChannelsOnly (maa, 6ch only) → sendMtb (6ch + IMU). + // Auto scan 중 IMU 완전 실종 (line 843 주석 "mtb 응답에 IMU" 는 정확하지만 + // 실제 코드는 maa 였음 → 회귀 버그). mtb 는 응답에 rim: (IMU 15 sample) 포함, + // imuCollector.onComplete 로 posture 자동 갱신. + if (!bleManager.sendMtb()) { // Throttle됨 — isMeasuring 리셋 (deadlock 방지) isMeasuring = false try { measureDoneSignal.value.complete(Unit) } catch (_: Exception) {} @@ -657,7 +661,7 @@ fun PiezoMonitoringView(appState: AppState) { measureRetryCount++ Log.w("PiezoMonitor", "Timeout — auto-retry $measureRetryCount/$maxMeasureRetries") bleManager.piezoCollector.reset() - bleManager.sendChannelsOnly() + bleManager.sendMtb() // Second timeout for retry handler.postDelayed({ if (!isMeasuring) return@postDelayed