From 633153916b8fc29c52164b960aa4806c11615ff1 Mon Sep 17 00:00:00 2001 From: Kamal Mostafa Date: Fri, 8 Jul 2011 13:16:06 -0700 Subject: [PATCH] minimodem: --confidence param --- src/minimodem.1 | 3 +++ src/minimodem.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/minimodem.1 b/src/minimodem.1 index 1943a92..35e9c92 100644 --- a/src/minimodem.1 +++ b/src/minimodem.1 @@ -45,6 +45,9 @@ transmit mode: generate audio tones receive mode: decode audio tones .SH OPTIONS .TP +.B \-c, \-\-confidence threshold +set receive confidence threshold (0.0 to 1.0, default 0.6) +.TP .B \-8, \-\-ascii ASCII 8\-N\-1 .TP diff --git a/src/minimodem.c b/src/minimodem.c index 926337a..d2e8833 100644 --- a/src/minimodem.c +++ b/src/minimodem.c @@ -220,6 +220,8 @@ main( int argc, char*argv[] ) char *filename = NULL; char *program_name; + float bfsk_confidence_threshold = 0.6; + program_name = strrchr(argv[0], '/'); if ( program_name ) program_name++; @@ -238,6 +240,7 @@ main( int argc, char*argv[] ) { "rx", 0, 0, 'r' }, { "receive", 0, 0, 'r' }, { "read", 0, 0, 'r' }, + { "confidence", 1, 0, 'c' }, { "ascii", 0, 0, '8' }, { "baudot", 0, 0, '5' }, { "file", 1, 0, 'f' }, @@ -247,7 +250,7 @@ main( int argc, char*argv[] ) { "txstopbits", 1, 0, 'T' }, { 0 } }; - c = getopt_long(argc, argv, "Vtr85f:b:M:S:T:", + c = getopt_long(argc, argv, "Vtrc:85f:b:M:S:T:", long_options, &option_index); if ( c == -1 ) break; @@ -265,6 +268,9 @@ main( int argc, char*argv[] ) usage(); TX_mode = 0; break; + case 'c': + bfsk_confidence_threshold = atof(optarg); + break; case 'f': filename = optarg; break; @@ -615,12 +621,11 @@ main( int argc, char*argv[] ) else bits = ( bits >> 2 ) & 0xFF; -#define FSK_MIN_CONFIDENCE 0.60 #define FSK_MAX_NOCONFIDENCE_BITS 20 #define FSK_SCAN_LAG 0.2 - if ( confidence <= FSK_MIN_CONFIDENCE ) { + if ( confidence <= bfsk_confidence_threshold ) { // FIXME: explain if ( ++noconfidence > FSK_MAX_NOCONFIDENCE_BITS ) {