TBD-008 이 "위치 확인 방식과 센서 조합"을 확정할 항목이다.
| 방식 | 원리 | 특징 |
|---|---|---|
| 홀 센서 2채널 | 자석 + 홀 IC, 펄스 카운트와 위상차 | 정확, 방향 판별 가능 |
| 리플 카운팅 | DC 모터 정류자 리플을 전류에서 추출 | 센서 없음. 저속·기동 시 뭉개짐 |
| 끝단 리미트 스위치 | 완전 열림·닫힘 위치에 스위치 | 절대 기준. 중간은 모름 |
실무에서는 상대 위치 카운트 + 끝단 절대 기준 리셋을 조합한다. 끝단에 닿으면 카운트를 리셋해 누적 오차를 씻는다.
왜 UNKNOWN 상태가 별도로 필요한가
§6.2.3 이 두 문장으로 요구한다.
"윈도우가 정상 끝단 이외의 위치에서 정지한 경우, 해당 상태를 완전 열림 또는 완전 닫힘 상태로 처리하지 않아야 한다." "윈도우 위치 정보를 신뢰할 수 없는 경우 정상 끝단 도달 상태를 확정하지 않아야 한다."
Anti-pinch 로 중간에 멈췄는데 "닫힘 완료"로 기록하면, 이후 "이미 닫혀 있으니 무시"(멱등성)에 걸려 창문을 못 닫게 된다.
상태 축과 신뢰도 축은 직교한다
typedef enum { WIN_ST_FULL_OPEN, ..., WIN_ST_ERROR } win_state_t;
typedef enum { WIN_TRUST_OK, WIN_TRUST_STALE, WIN_TRUST_UNKNOWN } win_trust_t;
FULL_CLOSED + STALE 는 **"예전에 닫혀 있었는데 지금은 모름"**이고, HMI 는 이걸 "닫힘"으로 그리면 안 된다.