From 16f8adb4b3fa8b2649dee347c1702c99722f4144 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Tue, 27 Sep 2022 22:07:31 -0400 Subject: [PATCH] hysteresis: avoid subtracting unsigned integers - avoid potential errors with timestamp passed in from different sources --- src/lib/hysteresis/hysteresis.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/lib/hysteresis/hysteresis.cpp b/src/lib/hysteresis/hysteresis.cpp index 07f14e4b2e..22593b2d6e 100644 --- a/src/lib/hysteresis/hysteresis.cpp +++ b/src/lib/hysteresis/hysteresis.cpp @@ -74,17 +74,15 @@ Hysteresis::update(const hrt_abstime &now_us) { if (_requested_state != _state) { - const hrt_abstime elapsed = now_us - _last_time_to_change_state; - if (_state && !_requested_state) { // true -> false - if (elapsed >= _time_from_true_us) { + if (now_us >= _last_time_to_change_state + _time_from_true_us) { _state = false; } } else if (!_state && _requested_state) { // false -> true - if (elapsed >= _time_from_false_us) { + if (now_us >= _last_time_to_change_state + _time_from_false_us) { _state = true; } }