]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Improve spkmomdem reliability by adding a separator between bytes.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 21 Jan 2013 13:55:30 +0000 (14:55 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Mon, 21 Jan 2013 13:55:30 +0000 (14:55 +0100)
ChangeLog
util/spkmodem-recv.c

index ff291774fb85a512a0cbc8bc751e98cef5c13c04..3c7552b52d2b3623e2f4c390614ac92f6fd36c71 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-01-21  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Improve spkmomdem reliability by adding a separator between bytes.
+
 2013-01-21  Colin Watson  <cjwatson@ubuntu.com>
 
        * grub-core/partmap/msdos.c (embed_signatures): Add the signature of
index 9075f9ad587034b7a0e3cd63a5e8fcde19ee1b8a..9083c1aabacb6f9931ab8a1580e6a983c826c73d 100644 (file)
@@ -24,7 +24,7 @@
 /* Usage: parecord --channels=1 --rate=48000 --format=s16le | ./spkmodem-recv */
 
 #define SAMPLES_PER_TRAME 240
-#define FREQ_SEP_MIN 6
+#define FREQ_SEP_MIN 5
 #define FREQ_SEP_MAX 15
 #define FREQ_DATA_MIN 15
 #define FREQ_DATA_THRESHOLD 25
@@ -32,6 +32,7 @@
 #define THRESHOLD 500
 
 #define DEBUG 0
+#define FLUSH_TIMEOUT 1
 
 static signed short trame[2 * SAMPLES_PER_TRAME];
 static signed short pulse[2 * SAMPLES_PER_TRAME];
@@ -70,15 +71,18 @@ main ()
   int bitn = 7;
   char c = 0;
   int i;
+  int llp = 0;
   while (!feof (stdin))
     {
-      if (lp > 20000)
+      if (lp > 3 * SAMPLES_PER_TRAME)
        {
-         fflush (stdout);
          bitn = 7;
          c = 0;
          lp = 0;
+         llp++;
        }
+      if (llp == FLUSH_TIMEOUT)
+       fflush (stdout);
       if (f2 > FREQ_SEP_MIN && f2 < FREQ_SEP_MAX
          && f1 > FREQ_DATA_MIN && f1 < FREQ_DATA_MAX)
        {
@@ -100,6 +104,7 @@ main ()
              c = 0;
            }
          lp = 0;
+         llp = 0;
          for (i = 0; i < SAMPLES_PER_TRAME; i++)
            read_sample ();
          continue;