mirror of
https://github.com/Show-maket/IR-protocol.git
synced 2026-09-18 19:13:58 +00:00
feat(rx): rxDeclaredPackSize/rxMaxPackSize + packAirtimeMs — бюджет удержания по размеру
Для гейта заднего у машинки (Даша 04.09): держать задний по СОСТОЯНИЮ приёма, но не дольше airtime кадра — а если объявленный в 1-м байте размер МЕНЬШЕ протокольного максимума, то ровно до его конца (усиление надёжности). rxDeclaredPackSize() = packSize из 1-го байта, если валиден (не битый) и идёт приём, иначе 0 (потребитель берёт rxMaxPackSize() — до CRC значение недоверенное). packAirtimeMs() — публичная обёртка над calculateSendTime (чистая функция протокольных констант, годна и для RX). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J3Ca6J2JJ1NrptqQjKs8BK
This commit is contained in:
@ -60,6 +60,14 @@ public:
|
||||
return isRecive ||
|
||||
(preambleState == PreambleState::Candidate && preambleGoodPeriods >= 1U);
|
||||
}
|
||||
// Объявленная длина ПРИНИМАЕМОГО кадра (байт) из ПЕРВОГО байта, если он уже принят и валиден;
|
||||
// иначе 0 (ещё не знаем / битый). До CRC это НЕДОВЕРЕННОЕ значение — потребитель, получив 0
|
||||
// или чрезмерное, обязан брать rxMaxPackSize() (безопасно держать задний до конца макс.кадра).
|
||||
inline uint16_t rxDeclaredPackSize() const {
|
||||
return (isRecive && packSize && !isWrongPack) ? packSize : 0;
|
||||
}
|
||||
// Протокольный МАКСИМУМ длины кадра (байт) — верхняя граница бюджета удержания заднего.
|
||||
static constexpr uint16_t rxMaxPackSize() { return (uint16_t)dataByteSizeMax; }
|
||||
uint32_t pulseFilterDroppedByFilteredOverflow() const { return 0; }
|
||||
uint32_t pulseFilterDroppedByHoldOverflow() const { return pulseFilterDropHoldOverflow; }
|
||||
uint32_t pulseFilterDroppedGlitchPairs() const { return pulseFilterDropGlitchPairs; }
|
||||
|
||||
Reference in New Issue
Block a user