From 8527ebea83151d6fbc61f1dce3818f386b0903ad Mon Sep 17 00:00:00 2001 From: ismail Date: Tue, 22 Jul 2025 09:58:59 +0300 Subject: [PATCH] Fix imbalanced tilt counts. Fixed the tilt count logic that causes an imbalance in tilting within the same run frame but opposite direction. Fixes #1057. --- src/relay_chn.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/relay_chn.c b/src/relay_chn.c index 6fdc016..069fe96 100644 --- a/src/relay_chn.c +++ b/src/relay_chn.c @@ -1268,8 +1268,11 @@ static uint32_t relay_chn_tilt_count_update(relay_chn_t *relay_chn) return ++relay_chn->tilt_control.tilt_counter.tilt_forward_count; } else if (relay_chn->tilt_control.cmd == RELAY_CHN_TILT_CMD_REVERSE) { - if (relay_chn->tilt_control.tilt_counter.tilt_forward_count > 0) - return --relay_chn->tilt_control.tilt_counter.tilt_forward_count; + if (relay_chn->tilt_control.tilt_counter.tilt_forward_count > 0) { + --relay_chn->tilt_control.tilt_counter.tilt_forward_count; + // Still should do one more move, return non-zero value + return 1; + } else return 0; } @@ -1283,8 +1286,11 @@ static uint32_t relay_chn_tilt_count_update(relay_chn_t *relay_chn) return ++relay_chn->tilt_control.tilt_counter.tilt_reverse_count; } else if (relay_chn->tilt_control.cmd == RELAY_CHN_TILT_CMD_FORWARD) { - if (relay_chn->tilt_control.tilt_counter.tilt_reverse_count > 0) - return --relay_chn->tilt_control.tilt_counter.tilt_reverse_count; + if (relay_chn->tilt_control.tilt_counter.tilt_reverse_count > 0) { + --relay_chn->tilt_control.tilt_counter.tilt_reverse_count; + // Still should do one more move, return non-zero value + return 1; + } else return 0; }