feat(ble): R100 견고성 3종 · startup 지연 대응 + hang 안내 + 재연결 제한
배경 (2026-08-04 · VBT0607R100 로그 분석): - 연결 직후 첫 msn/mid 명령이 9초간 무응답 → CMDQ timeout 3회 · 사용자 노출 - mpa → mtb 발사 후 GATT status=8 (link supervision timeout) · 기기 hang - 이후 재연결 5회+ 실패 · 기기가 air 상에 안 잡힘 (advertising 죽음) - FW 사이드 문제 · 앱 층에서 UX 완화 가능한 부분 개선 변경: 1. INITIAL_TX_DELAY_MS = 2_000ms — CCCD write 후 첫 명령 2초 지연 R100 boot 늦은 케이스에서 초기 timeout 반복 방지. Watchdog 은 즉시 시작. 2. GATT status 8/19/22 별도 처리 - status=8 GATT_CONN_TIMEOUT (link supervision timeout · FW hang) - status=19 GATT_CONN_TERMINATE_PEER_USER - status=22 GATT_CONN_TERMINATE_LOCAL_HOST → connectionError = "DEVICE_UNRESPONSIVE:\$status" marker → UI 에서 "전원 15초 롱프레스로 재부팅 후 다시 연결하세요" 안내 Bond conflict (status=5) 는 기존대로 별도 처리 유지. 3. MAX_RECONNECT_ATTEMPTS 10 → 5 실패 후 connectionError = "RECONNECT_GAVE_UP" marker + onReconnectionFailed → UI 에서 "기기가 켜져 있는지 확인 후 다시 시도" 안내 무한 시도 로그 스팸 방지. 4. mtb_response_reconnect 문구 개선 "연결을 재시도합니다" → "재부팅이 필요할 수 있습니다 (전원 15초 롱프레스)" 3회 consecutive mtb timeout 시 사용자에게 더 actionable 안내. strings.xml (KR/EN): - ble_error_device_unresponsive (재부팅 안내) - ble_error_reconnect_gave_up (재연결 포기 안내) - mtb_response_reconnect 갱신 FW 팀 조사와 병행. 로그 (2026-08-04_134048) FW 팀 전달 예정.
This commit is contained in:
@@ -323,7 +323,7 @@
|
||||
<string name="placement_in_position">Optimal position!</string>
|
||||
<string name="placement_position_lost">Position lost. Restart above pubic bone.</string>
|
||||
<string name="mtb_response_delayed">Device response delayed. Please wait…</string>
|
||||
<string name="mtb_response_reconnect">Device not responding. Reconnecting.</string>
|
||||
<string name="mtb_response_reconnect">Device not responding. A reboot may be required (long-press power 15 seconds).</string>
|
||||
<string name="placement_detached_restart">Sensor detached. Restart above pubic bone.</string>
|
||||
<string name="placement_signal_lost">Signal lost — slide up ↑</string>
|
||||
<string name="placement_sweep_start">Start near navel, slide down slowly ↓</string>
|
||||
@@ -383,6 +383,10 @@
|
||||
<string name="ble_error_bond_conflict">This device is already paired with another app. Long-press the device power button for 15 seconds to clear its pairing, then try again.</string>
|
||||
<string name="ble_action_reset_bond">Reset Pairing (this phone)</string>
|
||||
<string name="ble_toast_bond_removed">Pairing info removed. Please try connecting again.</string>
|
||||
<!-- Device unresponsive (GATT status 8/19/22 · FW hang) — 2026-08-04 -->
|
||||
<string name="ble_error_device_unresponsive">Device stopped responding. Long-press the device power button for 15 seconds to reboot, then reconnect.</string>
|
||||
<!-- Reconnect give-up (MAX_RECONNECT_ATTEMPTS reached) -->
|
||||
<string name="ble_error_reconnect_gave_up">Could not reconnect to device after several attempts. Please check the device is powered on and try again.</string>
|
||||
<string name="device_scan_back_desc">Back</string>
|
||||
<string name="device_scan_warning_desc">Warning</string>
|
||||
<string name="device_scan_error_desc">Error</string>
|
||||
|
||||
Reference in New Issue
Block a user