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 dad7a59..cf8873c 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 @@ -107,6 +107,17 @@ fun PiezoMonitoringView(appState: AppState) { bleManager.piezoCollector.onMultiChannelComplete = { channels -> handler.post { + // 6채널 미만 수신 → 자동 retry (패킷 드랍 대응) + val receivedCount = channels.count { it.buffer.isNotEmpty() } + if (receivedCount < 6 && measureRetryCount < maxMeasureRetries) { + measureRetryCount++ + Log.w("PiezoMonitor", "Incomplete: $receivedCount/6 channels — retry $measureRetryCount") + bleManager.debugLogger.warn("INCOMPLETE_SCAN $receivedCount/6 — retry $measureRetryCount") + bleManager.piezoCollector.reset() + bleManager.sendChannelsOnly() + return@post + } + lastMultiChannelResult.clear() lastMultiChannelResult.addAll(channels)