SDR: Add option to set local oscillator (LO) offset

By default it is set to -1 MHz.
This commit is contained in:
Andreas Eversberg
2017-12-04 14:12:11 +01:00
parent c49ee3b2a8
commit 9f901384de
10 changed files with 58 additions and 30 deletions

View File

@@ -62,7 +62,7 @@ static int parse_args(SoapySDRKwargs *args, const char *_args_string)
return 0;
}
int soapy_open(size_t channel, const char *_device_args, const char *_stream_args, const char *_tune_args, const char *tx_antenna, const char *rx_antenna, double tx_frequency, double rx_frequency, double rate, double tx_gain, double rx_gain, double bandwidth)
int soapy_open(size_t channel, const char *_device_args, const char *_stream_args, const char *_tune_args, const char *tx_antenna, const char *rx_antenna, double tx_frequency, double rx_frequency, double lo_offset, double rate, double tx_gain, double rx_gain, double bandwidth)
{
double got_frequency, got_rate, got_gain, got_bandwidth;
const char *got_antenna;
@@ -88,6 +88,13 @@ int soapy_open(size_t channel, const char *_device_args, const char *_stream_arg
if (rc < 0)
return rc;
if (lo_offset) {
char val[32];
snprintf(val, sizeof(val), "%.0f", lo_offset);
val[sizeof(val) - 1] = '\0';
SoapySDRKwargs_set(&tune_args, "OFFSET", val);
}
/* create SoapySDR device */
sdr = SoapySDRDevice_make(&device_args);
if (!sdr) {