From ccf112fb9c400efb8a80eaba1088ce07dc48c1f8 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Mon, 2 Nov 2026 20:16:39 +0000 Subject: [PATCH] safety: integer math for the RX check lag threshold (#3869) --- opendbc_repo/opendbc/safety/safety.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc_repo/opendbc/safety/safety.h b/opendbc_repo/opendbc/safety/safety.h index f4010f11f8..a6defcaabc 100644 --- a/opendbc_repo/opendbc/safety/safety.h +++ b/opendbc_repo/opendbc/safety/safety.h @@ -401,8 +401,8 @@ void safety_tick(void) { // Quite conservative to not risk false triggers. // 2s of lag is worse case, since the function is called at 1Hz uint32_t frequency = current_safety_config.rx_checks[i].msg[current_safety_config.rx_checks[i].status.index].frequency; - uint32_t timestep = 1e6 / frequency; - bool lagging = elapsed_time > SAFETY_MAX(timestep * MAX_MISSED_MSGS, 1e6); + uint32_t timestep = 1000000U / SAFETY_MAX(frequency, 1U); // frequency < 10Hz is invalid below + bool lagging = elapsed_time > SAFETY_MAX(timestep * MAX_MISSED_MSGS, 1000000U); current_safety_config.rx_checks[i].status.lagging = lagging; // enforce minimum frequency for safety-relevant messages