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:
@ -62,6 +62,10 @@ public:
|
||||
/// @param decPair Если задан, конструктор регистрирует этот один приёмник как blind-decoder
|
||||
/// (аналог setBlindDecoders() для одного RX).
|
||||
IR_Encoder(uint8_t pin, uint16_t addr = 0, IR_DecoderRaw *decPair = nullptr, bool autoHandle = true);
|
||||
/// Публичная оценка airtime кадра (мс) по его полной длине в байтах (packSize). Чистая функция
|
||||
/// протокольных констант — подходит и для приёма (напр. бюджет удержания заднего по объявленному
|
||||
/// в 1-м байте размеру принимаемого ответа). БЕЗ +30% компенсации занижения sync — добавляет потребитель.
|
||||
uint32_t packAirtimeMs(uint8_t packSize) const { return calculateSendTime(packSize); }
|
||||
static void isr();
|
||||
static void begin(HardwareTimer* timer, uint8_t channel, IRQn_Type IRQn, uint8_t priority, void(*isrCallback)() = nullptr);
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user