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 7b041c2..6e1321b 100644 --- a/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt +++ b/app/src/main/java/com/example/medilightv2android/ble/BleManager.kt @@ -995,7 +995,12 @@ class BleManager private constructor(private val context: Context) { } } "rid:" -> { - val info = if (data.size > 4) String(data, 4, data.size - 4, Charsets.US_ASCII).trim() else "?" + // BLE 응답 끝에 NULL byte padding이 붙는 경우가 있음 — PostgreSQL JSONB가 + // 0x00을 거부하므로 trim()으로 안 빠지는 NULL/제어문자를 명시적으로 제거. + val info = if (data.size > 4) + String(data, 4, data.size - 4, Charsets.US_ASCII) + .replace(Regex("[\\x00-\\x1F\\x7F]"), " ").trim() + else "?" debugLogger.rx("rid", data.size, "device_info=$info") debugLogger.info("DEVICE_INFO $info") // 형식: "VBTHW0100 VBT26040001 VBTFW0111" (HW, Serial, FW) diff --git a/app/src/main/java/com/example/medilightv2android/services/labdb/LabdbClient.kt b/app/src/main/java/com/example/medilightv2android/services/labdb/LabdbClient.kt index bb4035b..e287f04 100644 Binary files a/app/src/main/java/com/example/medilightv2android/services/labdb/LabdbClient.kt and b/app/src/main/java/com/example/medilightv2android/services/labdb/LabdbClient.kt differ