fix(alignment): 0/6 walls 시 즉시 팝업 강제 (rising-edge 놓치는 케이스)
증상 (사용자 보고 2026-08-05):
6채널 다 안 잡히는데 "센서 분리됨" 팝업이 안 뜸.
원인:
DetachmentDetection 은 mean·std AND rule (threshold 30) — EMI/노이즈로 std ≥ 30 이면
isDetached=false 반환 → rising-edge 트리거 (line 882) 가 발화 안 됨. 화면상 6채널이
전부 미검출이어도 팝업이 안 뜨는 gap.
수정:
0/6 walls sanity check 에서 showDetachAlert = true 를 직접 세팅.
prevDetached=true 도 같이 세팅해 재부착 시 auto-dismiss 정상 동작.
이전 fix (982df04) 는 waitingForStart 복귀까지만 처리했음. Start 재클릭 시 팝업이
뜨긴 했지만 사용자 입장에선 여전히 "안 뜬다" 로 느껴졌음.
feature/cloud-mvp d4dac71 과 대칭 (cloud-mvp 는 팝업 UI 자체를 새로 추가).
This commit is contained in:
@@ -934,14 +934,16 @@ fun PlacementGuideView(appState: AppState) {
|
||||
directionHint = context.getString(R.string.placement_check_attachment)
|
||||
directionIcon = ""
|
||||
placementScore = 0
|
||||
// 2026-08-05: 사용자가 Start 눌렀는데 0/6 감지 시 · Start 화면 복귀.
|
||||
// 그렇지 않으면 "아무것도 안 됨" 처럼 느껴짐 (button 사라진 채 hint 만 반복).
|
||||
// prevDetached=true 로 세팅해 Start 재클릭 시 즉시 팝업 발생 (line ~1229 가드).
|
||||
// 2026-08-05: Start 후 0/6 감지 시 · Start 화면 복귀 + 즉시 팝업.
|
||||
// DetachmentDetection 은 EMI/노이즈로 std ≥ 30 이면 false 를 반환할 수
|
||||
// 있어 rising-edge 팝업이 안 뜨는 케이스가 있음. 0/6 은 그 자체로 부착
|
||||
// 실패 신호 → 즉시 팝업 강제.
|
||||
if (!waitingForStart) {
|
||||
isContinuousMode = false
|
||||
waitingForStart = true
|
||||
prevDetached = true
|
||||
bleManager.debugLogger.warn("ALIGN_V2 sanity: 0/6 walls · Start 후 부착 실패 · waitingForStart 복귀")
|
||||
prevDetached = true // 재부착 시 dismiss 정상 동작
|
||||
showDetachAlert = true // 즉시 팝업 (재클릭 대기 없이)
|
||||
bleManager.debugLogger.warn("ALIGN_V2 sanity: 0/6 walls · Start 후 부착 실패 · waitingForStart 복귀 + 팝업")
|
||||
} else {
|
||||
bleManager.debugLogger.info("ALIGN_V2 sanity: 0/6 walls · override to attachment check")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user