mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-06 04:23:42 +08:00
safety: integer math for the RX check lag threshold (#3869)
This commit is contained in:
committed by
firestar5683
parent
fb72658c89
commit
ccf112fb9c
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user