[hamradio-commits] [dump1090] 48/373: Strong preamble detection even with --aggressive.

Matthew Ernisse mernisse-guest at moszumanska.debian.org
Thu Oct 23 14:58:04 UTC 2014


This is an automated email from the git hooks/post-receive script.

mernisse-guest pushed a commit to branch backport
in repository dump1090.

commit 977493cf6323bb9e2e17aee3856e020783d436b9
Author: antirez <antirez at gmail.com>
Date:   Sat Jan 26 13:03:24 2013 +0100

    Strong preamble detection even with --aggressive.
    
    To try to decode messages with a fundamentally flawed preamble is mostly
    a useless waste of CPU time.
    
    The new aggressive mode still detects a sensible percentage of
    additional messages because of the error tolerance and two-bits fixes
    but does not waste your CPU time.
---
 README.md  |  1 -
 dump1090.c | 60 +++++++++++++++++++++++++++++-------------------------------
 2 files changed, 29 insertions(+), 32 deletions(-)

diff --git a/README.md b/README.md
index 87e9b96..8a9f752 100644
--- a/README.md
+++ b/README.md
@@ -195,7 +195,6 @@ sending DF17 packets), but can detect a few more messages.
 
 The algorithm in aggressive mode is modified in the following ways:
 
-* Preamble detection is weakened to be more liberal in what is consdered valid.
 * Up to two demodulation errors are tolerated (adjacent entires in the magnitude
   vector with the same eight). Normally only messages without errors are
   checked.
diff --git a/dump1090.c b/dump1090.c
index 9990aef..c3a6f6f 100644
--- a/dump1090.c
+++ b/dump1090.c
@@ -1361,38 +1361,36 @@ void detectModeS(uint16_t *m, uint32_t mlen) {
             continue;
         }
 
-        if (!Modes.aggressive) {
-            /* The samples between the two spikes must be < than the average
-             * of the high spikes level. We don't test bits too near to
-             * the high levels as signals can be out of phase so part of the
-             * energy can be in the near samples. */
-            high = (m[j]+m[j+2]+m[j+7]+m[j+9])/6;
-            if (m[j+4] >= high ||
-                m[j+5] >= high)
-            {
-                if (Modes.debug & MODES_DEBUG_NOPREAMBLE &&
-                    m[j] > MODES_DEBUG_NOPREAMBLE_LEVEL)
-                    dumpRawMessage(
-                        "Too high level in samples between 3 and 6",
-                        msg, m, j);
-                continue;
-            }
+        /* The samples between the two spikes must be < than the average
+         * of the high spikes level. We don't test bits too near to
+         * the high levels as signals can be out of phase so part of the
+         * energy can be in the near samples. */
+        high = (m[j]+m[j+2]+m[j+7]+m[j+9])/6;
+        if (m[j+4] >= high ||
+            m[j+5] >= high)
+        {
+            if (Modes.debug & MODES_DEBUG_NOPREAMBLE &&
+                m[j] > MODES_DEBUG_NOPREAMBLE_LEVEL)
+                dumpRawMessage(
+                    "Too high level in samples between 3 and 6",
+                    msg, m, j);
+            continue;
+        }
 
-            /* Similarly samples in the range 11-14 must be low, as it is the
-             * space between the preamble and real data. Again we don't test
-             * bits too near to high levels, see above. */
-            if (m[j+11] >= high ||
-                m[j+12] >= high ||
-                m[j+13] >= high ||
-                m[j+14] >= high)
-            {
-                if (Modes.debug & MODES_DEBUG_NOPREAMBLE &&
-                    m[j] > MODES_DEBUG_NOPREAMBLE_LEVEL)
-                    dumpRawMessage(
-                        "Too high level in samples between 10 and 15",
-                        msg, m, j);
-                continue;
-            }
+        /* Similarly samples in the range 11-14 must be low, as it is the
+         * space between the preamble and real data. Again we don't test
+         * bits too near to high levels, see above. */
+        if (m[j+11] >= high ||
+            m[j+12] >= high ||
+            m[j+13] >= high ||
+            m[j+14] >= high)
+        {
+            if (Modes.debug & MODES_DEBUG_NOPREAMBLE &&
+                m[j] > MODES_DEBUG_NOPREAMBLE_LEVEL)
+                dumpRawMessage(
+                    "Too high level in samples between 10 and 15",
+                    msg, m, j);
+            continue;
         }
         Modes.stat_valid_preamble++;
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/dump1090.git



More information about the pkg-hamradio-commits mailing list