diff --git a/IR_DecoderRaw.h b/IR_DecoderRaw.h index 4c2d98e..4b12363 100644 --- a/IR_DecoderRaw.h +++ b/IR_DecoderRaw.h @@ -25,6 +25,7 @@ class Print; #define riseTimeMin (riseTime - riseTolerance) #define aroundRise(t) (riseTimeMin < t && t < riseTimeMax) #define IR_timeout (riseTimeMax * (8 + syncBits + 1)) // us // таймаут в 8 data + 3 sync + 1 +constexpr uint16_t IR_ResponseDelay = ((uint16_t)(((bitTime+riseTolerance) * (8 + syncBits + 1))*2.7735))/1000; class IR_Encoder; class IR_DecoderRaw : virtual public IR_FOX diff --git a/IR_config.h b/IR_config.h index 7fca919..6997da5 100644 --- a/IR_config.h +++ b/IR_config.h @@ -286,9 +286,6 @@ constexpr uint32_t irLockLatencyUs = irTicksToUs(irLockTicks); /// Таймаут байта декодера (как IR_timeout при номинальном bitTime) и тишина, по которой декодер обрывает приём. constexpr uint32_t irRxByteTimeoutUs = ((uint32_t)bitTime + tolerance) * ((uint32_t)bitPerByte + syncBits + 1U); constexpr uint32_t irRxAbortSilenceUs = 2U * irRxByteTimeoutUs; -/// Оборот ответа (КТ отвечает на пинг через это время; машинка — задний после принятого кадра): таймаут байта × -/// 2.7735 = 42 мс. Коэффициент исторический, подобран под 42; зависит только от bitTime/tolerance/syncBits. -constexpr uint16_t IR_ResponseDelay = (uint16_t)((irRxByteTimeoutUs * 2.7735) / 1000); /// Протокольный максимум длины кадра (5-битное поле длины). constexpr uint8_t irMaxPackSize = IR_MASK_MSG_INFO; /// Размер кадра по полезной нагрузке: DATA (from+to) и BACK (только from).