From 9fb3b5ba16dd5ba49c6531f6cbbc8748db2debca Mon Sep 17 00:00:00 2001 From: Zilog80 Date: Fri, 22 Feb 2019 22:05:21 +0100 Subject: [PATCH] dft_detect: polarity change DFM9=-DFM --- scan/dft_detect.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/scan/dft_detect.c b/scan/dft_detect.c index cbc1e0a..7ab4a52 100644 --- a/scan/dft_detect.c +++ b/scan/dft_detect.c @@ -22,8 +22,8 @@ static int wav_channel = 0; // audio channel: left //int dfm_bps = 2500; -static char dfm_header[] = "01100101011001101010010110101010"; - +static char dfm_header[] = "10011010100110010101101001010101"; // DFM-09 + // "01100101011001101010010110101010"; // DFM-06 //int vai_bps = 4800; static char rs41_header[] = "00001000011011010101001110001000" "01000100011010010100100000011111"; @@ -54,7 +54,7 @@ static char imet_preamble[] = "11110000111100001111000011110000" //int imet1ab_bps = 9600; // 1200 bits/sec static char imet1ab_header[] = "11110000111100001111000011110000" - // "11110000""10101100110010101100101010101100" + // "11110000""10101100110010101100101010101100" "11110000""10101100110010101100101010101100"; @@ -83,14 +83,14 @@ typedef struct { float thres; float complex *Fm; char *type; - unsigned char tn; + ui8_t tn; // signed? } rsheader_t; #define Nrs 9 #define idxAB 7 #define idxRS 8 static rsheader_t rs_hdr[Nrs] = { - { 2500, 0, 0, dfm_header, 1.0, 0.0, 0.65, NULL, "DFM", 2}, + { 2500, 0, 0, dfm_header, 1.0, 0.0, 0.65, NULL, "DFM9", 2}, // DFM6: -2 (unsigned) { 4800, 0, 0, rs41_header, 0.5, 0.0, 0.70, NULL, "RS41", 3}, { 4800, 0, 0, rs92_header, 0.5, 0.0, 0.70, NULL, "RS92", 4}, { 4800, 0, 0, lms6_header, 1.0, 0.0, 0.70, NULL, "LMS6", 8}, @@ -661,6 +661,7 @@ int main(int argc, char **argv) { int header_found = 0; int herrs; float thres = 0.76; + float tl = -1.0; int j_max; float mv_max; @@ -686,6 +687,11 @@ int main(int argc, char **argv) { else if ( (strcmp(*argv, "-s") == 0) || (strcmp(*argv, "--silent") == 0) ) { option_silent = 1; } + else if ( (strcmp(*argv, "-t") == 0) || (strcmp(*argv, "--time") == 0) ) { + ++argv; + if (*argv) tl = atof(*argv); + else return -50; + } else if ( (strcmp(*argv, "--ch2") == 0) ) { wav_channel = 1; } // right channel (default: 0=left) else if ( (strcmp(*argv, "--ths") == 0) ) { ++argv; @@ -693,13 +699,13 @@ int main(int argc, char **argv) { thres = atof(*argv); for (j = 0; j < Nrs; j++) rs_hdr[j].thres = thres; } - else return -1; + else return -50; } else { fp = fopen(*argv, "rb"); if (fp == NULL) { fprintf(stderr, "%s konnte nicht geoeffnet werden\n", *argv); - return -1; + return -50; } wavloaded = 1; } @@ -712,14 +718,14 @@ int main(int argc, char **argv) { if ( j < 0 ) { fclose(fp); fprintf(stderr, "error: wav header\n"); - return -1; + return -50; } K = init_buffers(); if ( K < 0 ) { fprintf(stderr, "error: init buffers\n"); - return -1; + return -50; }; for (j = 0; j < Nrs; j++) { @@ -732,6 +738,8 @@ int main(int argc, char **argv) { while ( f32buf_sample(fp, option_inv, 1) != EOF ) { + if (tl > 0 && sample_in > (tl+1)*sample_rate) break; // (int)sample_out < 0 + k += 1; if (k >= K-4) { @@ -841,7 +849,7 @@ int main(int argc, char **argv) { if (header_found) { if (!option_silent) { - fprintf(stdout, "sample: %d\n", mv_pos[j]); + if (option_verbose) fprintf(stdout, "sample: %d\n", mv_pos[j]); fprintf(stdout, "%s: %.4f\n", rs_hdr[j].type, mv[j]); } if ((j < 3) && mv[j] < 0) header_found = -1;