From 19707bf4e1198c7734d668788323c024b4595a4f Mon Sep 17 00:00:00 2001 From: manjaro Date: Sun, 20 Jun 2021 10:54:18 +0100 Subject: [PATCH] syn is not good --- sdr_deepdetect/sdd_reciever/main.cpp | 61 ++++++++++++++++------------ 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/sdr_deepdetect/sdd_reciever/main.cpp b/sdr_deepdetect/sdd_reciever/main.cpp index 10b0078..a145b5c 100644 --- a/sdr_deepdetect/sdd_reciever/main.cpp +++ b/sdr_deepdetect/sdd_reciever/main.cpp @@ -30,7 +30,8 @@ std::atomic curr_deal = 0; //Sample rate in Hz double sprate = 240000 ; -std::atomic syn = false; +const int searchRange = 1001; +std::atomic syn = searchRange/10; //消费者线程,for rx void dealer(); int runRecieve() @@ -173,7 +174,7 @@ int runRecieve() memcpy(dest, src , copyto * sizeof(SPTYPE) * 2 ); total_red = copyto; curr_active = 1 - curr_active; - if (!syn) + if (syn>3) { rx_stream_cmd.stream_mode = UHD_STREAM_MODE_STOP_CONTINUOUS; UHD_DO(uhd_rx_streamer_issue_stream_cmd(rx_streamer, &rx_stream_cmd)); @@ -184,7 +185,6 @@ int runRecieve() } rx_stream_cmd.stream_mode = UHD_STREAM_MODE_START_CONTINUOUS; UHD_DO(uhd_rx_streamer_issue_stream_cmd(rx_streamer, &rx_stream_cmd)); - } } } @@ -200,31 +200,33 @@ int runRecieve() } + void runDeal() { const int DealEnd = READ_BUF_SIZE - WAVSIZE; - const int steps = 201; - float (*cross[steps])[2][2] ; - for (int i=0;i= 1000 || judge[maxDF][i][1] >= 1000 ) + if (judge[maxDF][i][0] >= 5000 || judge[maxDF][i][1] >= 5000 ) { - if (judge[maxDF][i][0] * 8 < judge[maxDF][i][1]) + if (judge[maxDF][i][0] * 32 < judge[maxDF][i][1]) { printf("%lu:0=%f, 1=%f, 1\n",i,judge[maxDF][i][0],judge[maxDF][i][1]); fflush(stdout); i+=WAVSIZE; - startDF = (maxDF - 2)<0?0:(maxDF - 2); - endDF = (maxDF + 2)>steps?steps:((maxDF + 2)); - syn = true; + startDF = (maxDF - stp*2)<0?0:(maxDF - stp*2); + endDF = (maxDF + stp*2)>searchRange?searchRange:((maxDF + stp*2)); + if (syn > 3) + syn = (endDF - startDF)/10; + if (syn<1) + syn = 1; } - else if (judge[maxDF][i][1] * 8 < judge[maxDF][i][0]) + else if (judge[maxDF][i][1] * 32 < judge[maxDF][i][0]) { printf("%lu:0=%f, 1=%f, 0\n",i,judge[maxDF][i][0],judge[maxDF][i][1]); fflush(stdout); i+=WAVSIZE; - startDF = (maxDF - 2)<0?0:(maxDF - 2); - endDF = (maxDF + 2)>steps?steps:((maxDF + 2)); - syn = true; + startDF = (maxDF - stp*2)<0?0:(maxDF - stp*2); + endDF = (maxDF + stp*2)>searchRange?searchRange:((maxDF + stp*2)); + if (syn > 3) + syn = (endDF - startDF)/10; + if (syn<1) + syn = 1; } } @@ -320,7 +329,7 @@ void runDeal() //判决 curr_deal = 1-deal; } - for (int i=0;i