From cc7a6dcf71fba7f09f0c4958e1892eca1856a793 Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Mon, 29 Apr 2024 14:28:28 +0200 Subject: [PATCH] replace with new pulse if too close to the previous one --- app/src/main/java/xdsopl/robot36/Decoder.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/xdsopl/robot36/Decoder.java b/app/src/main/java/xdsopl/robot36/Decoder.java index 21fc091..ac733dc 100644 --- a/app/src/main/java/xdsopl/robot36/Decoder.java +++ b/app/src/main/java/xdsopl/robot36/Decoder.java @@ -243,11 +243,13 @@ public class Decoder { } private boolean processSyncPulse(ArrayList modes, float[] freqOffs, int[] pulses, int[] lines, int index) { - for (int i = 1; i < lines.length; ++i) - lines[i - 1] = lines[i]; - lines[lines.length - 1] = index - pulses[pulses.length - 1]; - for (int i = 1; i < pulses.length; ++i) - pulses[i - 1] = pulses[i]; + if (Math.abs(index - pulses[pulses.length - 1]) > scanLineToleranceSamples) { + for (int i = 1; i < lines.length; ++i) + lines[i - 1] = lines[i]; + for (int i = 1; i < pulses.length; ++i) + pulses[i - 1] = pulses[i]; + } + lines[lines.length - 1] = index - pulses[pulses.length - 2]; pulses[pulses.length - 1] = index; for (int i = 1; i < freqOffs.length; ++i) freqOffs[i - 1] = freqOffs[i];