de6e1d193168cb101a42ec533162c1ddd7afa69f
GUARDIAN-01 §Rev2 개선 4건 (파트너 앱 개발 지원):
1. BleManager · Battery/BleConnection emit 지점 추가
- emitBatteryEvent(pct): 임계 bucket 전이 (CRITICAL<5, LOW<20, OK≥20)
- emitConnectionEvent(state, reason): CONNECTED / DISCONNECTED / FAILED
- CONNECTED · STATE_DISCONNECTED · GATT_ERROR · 좀비 watchdog 4 경로 wire
2. AlarmAggregator (신규 · telemetry/) — subscriber 참조 구현
- Bus 구독 · BvEvent/PostureEvent/GaitEvent/BleConn/Battery → AlarmEvent 재발행
- 재귀 방지 (filterNot { it is AlarmEvent })
- Category 매핑: BV_URGENT/BV_WARN/POSTURE_TRANSITION/GAIT_STARTED/STOPPED/
BLE_LOST/BATTERY_CRITICAL/BATTERY_LOW
- Guardian 앱 로직 단순화 (AlarmEvent 하나만 구독하면 됨)
3. Dev-mode overlay 확장 (PiezoMonitoringView · RSSI 옆)
- ClinicalEventBus 최근 5개 이벤트 rolling 표시
- Type(BV/PST/GAI/BLE/BAT/ALM) + severity color + 요약
- LaunchedEffect + mutableStateListOf · isDevMode gate
4. NotificationSubscriber (신규 · telemetry/) — in-app 소비 참조 구현
- AlarmEvent 구독 · Android push notification 발행
- BATTERY_CRITICAL/LOW → device_status 채널 (신규)
- BLE_LOST → 30초 debounce · CONNECTED 시 reset
- BV_URGENT/WARN → AppState.updateLevelFromMeasurement 직접 호출과 중복 방지 · NO-OP
- MainActivity.onCreate 에서 start(this) 1회 호출
NotificationService 확장:
- device_status 채널 신규 (배터리·BLE 알람용)
- sendBatteryNotification(level, isCritical) · bucket dedup
- sendBleLostNotification(reason) · resetBleDebounce()
의도: Guardian 앱 (동업자 · Supabase 경유) 이 in-app subscriber 와 동일 패턴으로
소비하도록 참조. 다음 단계는 GUARDIAN-02 파트너용 스키마 문서 (cloud-mvp).
Description
No description provided
Languages
Kotlin
97.1%
Python
2.9%