fix(align V1): edge fail hint 간소화 + step 3 회귀 차단
1) hint 텍스트에서 채널 정보 제거: "Slide up slightly ↑ (ch3 short)" → "Slide up slightly ↑" "Slide down slightly ↓ (ch0 short)" → "Slide down slightly ↓" 사용자 피드백 — 채널 번호 표시 빼고 방향만. 2) edge 만 fail (CV·lrPass·rPeakOk 통과) 인 경우 GREEN 유지: 기존: 방향 화살표면 무조건 nextPhase = VERTICAL → step indicator 3 → 1 회귀. 변경: edgeOnlyFail 시 stayGreen=true → nextPhase = GREEN, step 3 유지. 이유: edge 비대칭은 mm 단위 미세조정 — 전체 vertical 재시작 불필요. CV/lrPass 가 진짜 어긋난 경우는 기존대로 VERTICAL 회귀. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+7
-4
@@ -1935,11 +1935,11 @@ private fun computePlacementGuide(
|
|||||||
}
|
}
|
||||||
// Edge 비대칭 — ch3 짧음 (센서 너무 아래) → 위로 미세 조정
|
// Edge 비대칭 — ch3 짧음 (센서 너무 아래) → 위로 미세 조정
|
||||||
!edgePass && edgeAsym > 0 -> {
|
!edgePass && edgeAsym > 0 -> {
|
||||||
adjustHint = "Slide up slightly ↑ (ch3 short)"; adjustIcon = "arrow.up"
|
adjustHint = "Slide up slightly ↑"; adjustIcon = "arrow.up"
|
||||||
}
|
}
|
||||||
// Edge 비대칭 — ch0 짧음 (센서 너무 위) → 아래로 미세 조정
|
// Edge 비대칭 — ch0 짧음 (센서 너무 위) → 아래로 미세 조정
|
||||||
!edgePass && edgeAsym < 0 -> {
|
!edgePass && edgeAsym < 0 -> {
|
||||||
adjustHint = "Slide down slightly ↓ (ch0 short)"; adjustIcon = "arrow.down"
|
adjustHint = "Slide down slightly ↓"; adjustIcon = "arrow.down"
|
||||||
}
|
}
|
||||||
gradient > 0.3 -> {
|
gradient > 0.3 -> {
|
||||||
adjustHint = "Slide down ↓"; adjustIcon = "arrow.down"
|
adjustHint = "Slide down ↓"; adjustIcon = "arrow.down"
|
||||||
@@ -1966,8 +1966,11 @@ private fun computePlacementGuide(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 구체적 방향(↑↓←→)이면 VERTICAL 복귀, 아니면 GREEN 유지
|
// 구체적 방향(↑↓←→)이면 보통 VERTICAL 복귀, 아니면 GREEN 유지.
|
||||||
val stayGreen = adjustIcon == "checkmark.circle"
|
// 단 edge 만 fail(CV·lr 통과)인 케이스는 mm 단위 미세조정이라
|
||||||
|
// GREEN 그대로 유지 — step indicator 3 → 1 회귀 방지.
|
||||||
|
val edgeOnlyFail = !edgePass && cv <= cvThr && lrPass && rPeakOk
|
||||||
|
val stayGreen = adjustIcon == "checkmark.circle" || edgeOnlyFail
|
||||||
val nextPh = if (stayGreen) PlacementPhase.GREEN else PlacementPhase.VERTICAL
|
val nextPh = if (stayGreen) PlacementPhase.GREEN else PlacementPhase.VERTICAL
|
||||||
return PlacementGuideResult(adjustHint, adjustIcon, 50, cv, false, lrDev, lrPass,
|
return PlacementGuideResult(adjustHint, adjustIcon, 50, cv, false, lrDev, lrPass,
|
||||||
phase = PlacementPhase.GREEN, nextPhase = nextPh)
|
phase = PlacementPhase.GREEN, nextPhase = nextPh)
|
||||||
|
|||||||
Reference in New Issue
Block a user