From 01637ce5038bd76663db9e99a1b82e380bef558a Mon Sep 17 00:00:00 2001 From: jjangddu Date: Mon, 27 Apr 2026 16:04:22 +0900 Subject: [PATCH] =?UTF-8?q?feat:=206=EC=B1=84=EB=84=90=20=EB=AF=B8?= =?UTF-8?q?=EB=A7=8C=20=EC=88=98=EC=8B=A0=20=EC=8B=9C=20=EC=9E=90=EB=8F=99?= =?UTF-8?q?=20retry=20(=ED=8C=A8=ED=82=B7=20=EB=93=9C=EB=9E=8D=20=EB=8C=80?= =?UTF-8?q?=EC=9D=91)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit onMultiChannelComplete에서 receivedCount < 6이면: - 자동 retry (collector reset + 재전송) - 최대 2회 재시도 (maxMeasureRetries) - INCOMPLETE_SCAN 로그 기록 - 6채널 온전히 수신된 경우만 BV 파이프라인 진행 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../ui/views/monitoring/PiezoMonitoringView.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) 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)