From be9dfd6f2dcdc7e44bb1400765f7bb225f5a4b40 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Sun, 9 Jan 2022 20:12:19 +0100 Subject: Add -i to fl2k_tcp too, and document better --- src/fl2k_tcp.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/fl2k_tcp.c') diff --git a/src/fl2k_tcp.c b/src/fl2k_tcp.c index 871ac26..c93777b 100644 --- a/src/fl2k_tcp.c +++ b/src/fl2k_tcp.c @@ -60,6 +60,7 @@ typedef int socklen_t; static SOCKET s; static fl2k_dev_t *dev = NULL; +static int interleaved = 0; static volatile int do_exit = 0; static volatile int connected = 0; static char *txbuf = NULL; @@ -74,6 +75,7 @@ void usage(void) "\t[-d device index (default: 0)]\n" "\t[-p port (default: 1234)]\n" "\t[-s samplerate in Hz (default: 100 MS/s)]\n" + "\t[-i (0|1) (1: input samples are interleaved Red/Green values, useful for I/Q data, default: 0 Red values only)]\n" "\t[-b number of buffers (default: 4)]\n" ); exit(1); @@ -117,7 +119,11 @@ void fl2k_callback(fl2k_data_info_t *data_info) return; data_info->sampletype_signed = 1; - data_info->r_buf = txbuf; + if (interleaved) { + data_info->iq_buf = txbuf; + } else { + data_info->r_buf = txbuf; + } while (!do_exit && (left > 0)) { FD_ZERO(&readfds); @@ -158,12 +164,15 @@ int main(int argc, char **argv) struct sigaction sigact, sigign; #endif - while ((opt = getopt(argc, argv, "d:s:a:p:b:")) != -1) { + while ((opt = getopt(argc, argv, "d:i:s:a:p:b:")) != -1) { switch (opt) { case 'd': dev_index = (uint32_t)atoi(optarg); dev_given = 1; break; + case 'i': + interleaved = (int)atoi(optarg); + break; case 's': samp_rate = (uint32_t)atof(optarg); break; @@ -189,7 +198,7 @@ int main(int argc, char **argv) exit(1); } - txbuf = malloc(FL2K_BUF_LEN); + txbuf = malloc(FL2K_BUF_LEN * (interleaved ? 2 : 1)); if (!txbuf) { fprintf(stderr, "malloc error!\n"); -- cgit v1.2.3