From 8b3dbb08b943661523db165bd5e6de966ee19dd3 Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Thu, 11 Dec 2014 19:19:51 +0100 Subject: [PATCH] only correct line after 5 mismatches when in sync mode --- app/src/main/rs/decoder.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/rs/decoder.rs b/app/src/main/rs/decoder.rs index 92216de..6c3411a 100644 --- a/app/src/main/rs/decoder.rs +++ b/app/src/main/rs/decoder.rs @@ -63,9 +63,11 @@ static void save_buffer() static void robot36_decoder() { - static prev_timeout; - if (free_running && !prev_timeout && 2 * abs(seperator_counter) > seperator_length) - vpos = (~1 & vpos) | (seperator_counter > 0); + static int prev_timeout, mismatch_counter; + if (!prev_timeout && 2 * abs(seperator_counter) > seperator_length) + mismatch_counter = (vpos & 1) ^ (seperator_counter > 0) ? mismatch_counter + 1 : 0; + if ((free_running && mismatch_counter > 1) || mismatch_counter > 5) + vpos ^= 1; prev_timeout = hpos >= maximum_length; if (vpos & 1) { for (int i = 0; i < bitmap_width; ++i) {