aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/sdr.c
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2017-08-10 17:42:54 +0200
committerAndreas Eversberg <jolly@eversberg.eu>2017-08-10 17:42:54 +0200
commit3afcac83426babaedc1c67f45955410823ea4602 (patch)
tree95993006cbfc0fcd8d0e94c3e899cb40fce920d4 /src/common/sdr.c
parentf2d439c1ae5ab8c82a4b09863018699a9b88b822 (diff)
SDR: Add option to swap RX and TX frequencies (for testing)
Diffstat (limited to 'src/common/sdr.c')
-rw-r--r--src/common/sdr.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/common/sdr.c b/src/common/sdr.c
index 41f78c8..b54caf0 100644
--- a/src/common/sdr.c
+++ b/src/common/sdr.c
@@ -70,6 +70,7 @@ typedef struct sdr_thread {
double max_fill_timer; /* timer to display/reset maximum fill */
} sdr_thread_t;
+/* preferences */
static int sdr_use_uhd, sdr_use_soapy;
static int sdr_channel;
static const char *sdr_device_args, *sdr_stream_args, *sdr_tune_args;
@@ -82,8 +83,9 @@ static int sdr_oversample;
static int sdr_latspl;
static int sdr_threads;
static sdr_thread_t sdr_thread_read, sdr_thread_write;
+static int sdr_swap_links;
-int sdr_init(int sdr_uhd, int sdr_soapy, int channel, const char *device_args, const char *stream_args, const char *tune_args, const char *tx_antenna, const char *rx_antenna, double tx_gain, double rx_gain, int samplerate, double bandwidth, const char *write_iq_tx_wave, const char *write_iq_rx_wave, const char *read_iq_tx_wave, const char *read_iq_rx_wave, int latspl)
+int sdr_init(int sdr_uhd, int sdr_soapy, int channel, const char *device_args, const char *stream_args, const char *tune_args, const char *tx_antenna, const char *rx_antenna, double tx_gain, double rx_gain, int samplerate, double bandwidth, const char *write_iq_tx_wave, const char *write_iq_rx_wave, const char *read_iq_tx_wave, const char *read_iq_rx_wave, int latspl, int swap_links)
{
PDEBUG(DSDR, DEBUG_DEBUG, "Init SDR\n");
@@ -106,6 +108,7 @@ int sdr_init(int sdr_uhd, int sdr_soapy, int channel, const char *device_args, c
sdr_samplerate = samplerate;
sdr_oversample = 1;
sdr_latspl = latspl;
+ sdr_swap_links = swap_links;
return 0;
}
@@ -312,6 +315,14 @@ void *sdr_open(const char __attribute__((__unused__)) *audiodev, double *tx_freq
}
}
+ if (sdr_swap_links) {
+ double temp;
+ PDEBUG(DSDR, DEBUG_NOTICE, "Sapping RX and TX frequencies!\n");
+ temp = rx_center_frequency;
+ rx_center_frequency = tx_center_frequency;
+ tx_center_frequency = temp;
+ }
+
#ifdef HAVE_UHD
if (sdr_use_uhd) {
rc = uhd_open(sdr_channel, sdr_device_args, sdr_stream_args, sdr_tune_args, sdr_tx_antenna, sdr_rx_antenna, tx_center_frequency, rx_center_frequency, sdr_samplerate, sdr_tx_gain, sdr_rx_gain, sdr_bandwidth);