fix(rx): таймаут кандидата преамбулы 3×→1× IR_timeout

Кандидат без фронтов дольше таймаута байта преамбулой быть не может. При 3× (45 мс)
rxLineActive() держал линию «занятой» после паразитных фронтов (засветка своим
дальномером) и откладывал пинг машинки на ~30 мс сверх заданного гэпа.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeA1K5dBUKrnoXVwyoVjzq
This commit is contained in:
2026-09-07 17:07:22 +03:00
parent 5b9f73ec7c
commit 86956bcf99

View File

@ -231,9 +231,11 @@ typedef uint16_t crc_t;
#ifndef IR_PREAMBLE_PERIOD_MAX_FACTOR_PCT
#define IR_PREAMBLE_PERIOD_MAX_FACTOR_PCT 340U
#endif
/** Таймаут окна кандидата преамбулы: IR_timeout * mult. */
/** Таймаут окна кандидата преамбулы: IR_timeout * mult. Кандидат без фронтов дольше таймаута байта
преамбулой быть не может; при 3× линия считалась занятой (rxLineActive) ещё 45 мс после последнего
паразитного фронта (напр. засветка своим дальномером) и откладывала передачу. */
#ifndef IR_PREAMBLE_CANDIDATE_TIMEOUT_MULT
#define IR_PREAMBLE_CANDIDATE_TIMEOUT_MULT 3U
#define IR_PREAMBLE_CANDIDATE_TIMEOUT_MULT 1U
#endif
#define preambPulse 3