Skip to content

Commit 5fede66

Browse files
committed
fastddc_inv_cc is now controllable via --fd and --fifo.
1 parent 35b3f63 commit 5fede66

File tree

4 files changed

+37
-18
lines changed

4 files changed

+37
-18
lines changed

csdr.c

+27-8
Original file line numberDiff line numberDiff line change
@@ -1808,22 +1808,38 @@ int main(int argc, char *argv[])
18081808
}
18091809
}
18101810

1811-
if( !strcmp(argv[1],"fastddc_inv_cc") ) //<decimation> <shift_rate> [transition_bw [window]]
1811+
if( !strcmp(argv[1],"fastddc_inv_cc") ) //<shift_rate> <decimation> [transition_bw [window]]
18121812
{
1813-
int decimation;
1814-
if(argc<=2) return badsyntax("need required parameter (decimation)");
1815-
sscanf(argv[2],"%d",&decimation);
1816-
18171813
float shift_rate;
1818-
if(argc>3) sscanf(argv[3],"%g",&shift_rate);
1814+
int plusarg=0;
1815+
1816+
int fd;
1817+
if(fd=init_fifo(argc,argv))
1818+
{
1819+
while(!read_fifo_ctl(fd,"%g\n",&shift_rate)) usleep(10000);
1820+
plusarg=1;
1821+
}
1822+
else
1823+
{
1824+
if(argc<=2) return badsyntax("need required parameter (rate)");
1825+
sscanf(argv[2],"%g",&shift_rate);
1826+
}
1827+
1828+
int decimation;
1829+
if(argc<=3+plusarg) return badsyntax("need required parameter (decimation)");
1830+
sscanf(argv[3+plusarg],"%d",&decimation);
1831+
//fprintf(stderr, "dec=%d %d\n", decimation);
18191832

18201833
float transition_bw = 0.05;
1821-
if(argc>4) sscanf(argv[4],"%g",&transition_bw);
1834+
if(argc>4+plusarg) sscanf(argv[4+plusarg],"%g",&transition_bw);
18221835

18231836
window_t window = WINDOW_DEFAULT;
1824-
if(argc>5) window=firdes_get_window_from_string(argv[5]);
1837+
if(argc>5+plusarg) window=firdes_get_window_from_string(argv[5+plusarg]);
18251838
else fprintf(stderr,"fastddc_apply_cc: window = %s\n",firdes_get_string_from_window(window));
18261839

1840+
for(;;)
1841+
{
1842+
18271843
fastddc_t ddc;
18281844
if(fastddc_init(&ddc, transition_bw, decimation, shift_rate)) { badsyntax("error in fastddc_init()"); return 1; }
18291845
fastddc_print(&ddc,"fastddc_inv_cc");
@@ -1864,6 +1880,9 @@ int main(int argc, char *argv[])
18641880
fwrite(output, sizeof(complexf), shift_stat.output_size, stdout);
18651881
//fprintf(stderr, "ss os = %d\n", shift_stat.output_size);
18661882
TRY_YIELD;
1883+
if(read_fifo_ctl(fd,"%g\n",&shift_rate)) break;
1884+
}
1885+
18671886
}
18681887
}
18691888

ddcd.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ void client()
479479
sprintf(client_subprocess_cmd_buf, subprocess_cmd_td, pipe_ctl[0], decimation, transition_bw);
480480
break;
481481
case M_FASTDDC:
482-
sprintf(client_subprocess_cmd_buf, subprocess_args_fastddc_2, decimation, pipe_ctl[0], transition_bw);
482+
sprintf(client_subprocess_cmd_buf, subprocess_args_fastddc_2, pipe_ctl[0], decimation, transition_bw);
483483
break;
484484
}
485485

ddcd.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ const char subprocess_cmd_td[] = "csdr "
5656
#endif
5757
" --fd %d | csdr fir_decimate_cc %d %g";
5858

59-
//const char subprocess_args_fastddc_1[] = "csdr fastddc_fwd_cc %d %g";
60-
const char subprocess_args_fastddc_1[] = "csdr through %d %g";
61-
//const char subprocess_args_fastddc_2[] = "csdr fastddc_inv_cc %d --pipe %d %g";
62-
const char subprocess_args_fastddc_2[] = "csdr convert_u8_f %d %d %g";
59+
const char subprocess_args_fastddc_1[] = "csdr fastddc_fwd_cc %d %g";
60+
//const char subprocess_args_fastddc_1[] = "csdr through %d %g";
61+
const char subprocess_args_fastddc_2[] = "csdr fastddc_inv_cc --fd %d %d %g";
62+
//const char subprocess_args_fastddc_2[] = "csdr convert_u8_f %d %d %g";

grc_tests/test_fastddc.grc

+5-5
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@
257257
</param>
258258
<param>
259259
<key>_coordinate</key>
260-
<value>(112, 875)</value>
260+
<value>(112, 675)</value>
261261
</param>
262262
<param>
263263
<key>_rotation</key>
@@ -375,7 +375,7 @@
375375
</param>
376376
<param>
377377
<key>_coordinate</key>
378-
<value>(136, 763)</value>
378+
<value>(368, 691)</value>
379379
</param>
380380
<param>
381381
<key>_rotation</key>
@@ -465,7 +465,7 @@
465465
</param>
466466
<param>
467467
<key>commandline</key>
468-
<value>csdr fastddc_fwd_cc %d | csdr fastddc_inv_cc %d 0.4"%(decimation,decimation)+"</value>
468+
<value>csdr fastddc_fwd_cc %d | csdr fastddc_inv_cc 0.4 %d"%(decimation,decimation)+"</value>
469469
</param>
470470
<param>
471471
<key>comment</key>
@@ -690,7 +690,7 @@
690690
</param>
691691
<param>
692692
<key>_coordinate</key>
693-
<value>(616, 379)</value>
693+
<value>(616, 291)</value>
694694
</param>
695695
<param>
696696
<key>_rotation</key>
@@ -789,7 +789,7 @@
789789
</param>
790790
<param>
791791
<key>_coordinate</key>
792-
<value>(400, 691)</value>
792+
<value>(576, 619)</value>
793793
</param>
794794
<param>
795795
<key>_rotation</key>

0 commit comments

Comments
 (0)