From de3177e5e0046c7603006c7ae032afe4afcfd139 Mon Sep 17 00:00:00 2001 From: jjangddu Date: Wed, 27 May 2026 10:09:22 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20ClinicalSession=20meta.json=EC=97=90=20?= =?UTF-8?q?firmware/hardware/serial=20=EC=9E=90=EB=8F=99=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit R&D 분석 시 펌웨어 버전별 데이터 grouping 가능 (VBTFW0111 vs VBTFW0116 등). writeMeta()에서 BleManager 인스턴스의 firmwareVersion/hardwareVersion/serialNumber state를 읽어 meta.json에 기록: - "firmware_version": "VBTFW0116" - "hardware_version": "VBTHW0100" - "serial_number": "VBT26040001" 값이 비어있으면(연결 안 됨/응답 안 옴) 필드 생략. 측정 종료 시점(endMeasurement)에 한 번 더 writeMeta 호출되므로 측정 중 BLE 응답 받으면 자동 갱신됨. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../medilightv2android/services/ClinicalSessionStore.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/com/example/medilightv2android/services/ClinicalSessionStore.kt b/app/src/main/java/com/example/medilightv2android/services/ClinicalSessionStore.kt index 062c4bc..fbac0b6 100644 --- a/app/src/main/java/com/example/medilightv2android/services/ClinicalSessionStore.kt +++ b/app/src/main/java/com/example/medilightv2android/services/ClinicalSessionStore.kt @@ -88,6 +88,14 @@ object ClinicalSessionStore { put("device_manufacturer", android.os.Build.MANUFACTURER) put("android_release", android.os.Build.VERSION.RELEASE) put("android_sdk", android.os.Build.VERSION.SDK_INT) + // VBT 디바이스 정보 (mid?/rid: 응답 파싱값) — 분석 시 펌웨어별 데이터 grouping용 + val ble = com.example.medilightv2android.ble.BleManager.getInstance(context) + val fw = ble.firmwareVersion.value + val hw = ble.hardwareVersion.value + val sn = ble.serialNumber.value + if (fw.isNotEmpty()) put("firmware_version", fw) + if (hw.isNotEmpty()) put("hardware_version", hw) + if (sn.isNotEmpty()) put("serial_number", sn) } File(dir, "meta.json").writeText(meta.toString(2)) }