detectLowEcho: 고정 1150 → adaptive threshold (기본 활성화)
1. ringSkip(3) 이후 신호에서 q25/q50/q75 계산
2. percentile 기반: q25 + iqr*0.3 ~ q50 - iqr*0.3
3. 고정값(1150) 범위 제한: ×0.7 ~ ×1.5 (805~1725)
4. 가중 평균: 고정 40% + adaptive 60%
→ 신호 레벨에 자동 적응하되 급격한 변동 방지
WaveformChart: threshold 점선도 adaptive 값으로 표시
useAdaptiveThreshold 플래그로 on/off 전환 가능
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
GreenZoneConstants.kt — all 16 constants (thresholds, physical)
UrinAI.kt — urine gatekeeper (binary threshold detection)
PiezoEchoAnalyzer.kt — low-echo detection with prominence-based wall selection
PiezoBVEstimator.kt — Frustum BV estimation with device presets
1:1 port from Swift, same logic, same constants.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>