diff --git a/app/src/main/java/com/example/medilightv2android/ble/PiezoPacketCollector.kt b/app/src/main/java/com/example/medilightv2android/ble/PiezoPacketCollector.kt index 567622a..c0644a2 100644 --- a/app/src/main/java/com/example/medilightv2android/ble/PiezoPacketCollector.kt +++ b/app/src/main/java/com/example/medilightv2android/ble/PiezoPacketCollector.kt @@ -130,12 +130,19 @@ class PiezoPacketCollector { private fun processEndPacket(prefix: String, bytes: ByteArray) { if (isMultiChannel && prefix == "raa:") { + // Final completion marker — save last channel and finish if (hasFirstPacket && rawData.isNotEmpty()) saveCurrentChannel() isComplete = true val validChannels = channelResults.filterNotNull() onLog?.invoke("raa: multi-channel complete — ${validChannels.size} channels") onMultiChannelComplete?.invoke(validChannels) - } else if (!isMultiChannel) { + } else if (isMultiChannel) { + // ree: in multi-channel = channel separator, save and continue + if (hasFirstPacket && rawData.isNotEmpty()) { + saveCurrentChannel() + } + } else { + // Single-channel complete (ree:) finishSingleChannel() } }