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 5f0cab0..4c3fa8f 100644 --- a/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt +++ b/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt @@ -816,6 +816,7 @@ class BleManager private constructor(private val context: Context) { "rbb:" -> { debugLogger.rx("rbb", data.size, "full measurement header (battery+IMU+temp)") onMbbHeaderReceived?.invoke(data) + piezoCollector.addPacket(data) } "rsp:" -> { if (data.size >= 16) { 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 c0644a2..2ab6947 100644 --- a/app/src/main/java/com/example/medilightv2android/ble/PiezoPacketCollector.kt +++ b/app/src/main/java/com/example/medilightv2android/ble/PiezoPacketCollector.kt @@ -64,6 +64,9 @@ class PiezoPacketCollector { val prefix = String(data, 0, 4, Charsets.US_ASCII) when (prefix) { + "rbb:" -> { + onLog?.invoke("rbb: header skipped (${data.size}B) — waiting for reb:") + } "reb:" -> processRebPacket(data) "red:" -> processRedPacket(data) "ree:", "raa:" -> processEndPacket(prefix, 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 2ebb4f9..c45887b 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 @@ -181,7 +181,7 @@ fun PiezoMonitoringView(appState: AppState) { } bleManager.piezoCollector.onLog = { msg -> Log.d("PiezoCollector", msg) } - bleManager.sendChannelsOnly() + bleManager.sendFullMeasurement() // Timeout with auto-retry (15s) handler.postDelayed({ @@ -190,7 +190,7 @@ fun PiezoMonitoringView(appState: AppState) { measureRetryCount++ Log.w("PiezoMonitor", "Timeout — auto-retry $measureRetryCount/$maxMeasureRetries") bleManager.piezoCollector.reset() - bleManager.sendChannelsOnly() + bleManager.sendFullMeasurement() // Second timeout for retry handler.postDelayed({ if (!isMeasuring) return@postDelayed