mirror of
https://github.com/gqrx-sdr/gqrx.git
synced 2024-09-21 10:47:10 +00:00
Apply frequency correction.
This commit is contained in:
parent
1947529edd
commit
a20c6c3707
@ -34,6 +34,7 @@ rx_source_fcd_sptr make_rx_source_fcd(const std::string device_name)
|
||||
rx_source_fcd::rx_source_fcd(const std::string device_name)
|
||||
: rx_source_base("rx_source_fcd"),
|
||||
d_freq(144.5e6),
|
||||
d_freq_corr(-12), // S/N 820 or greater
|
||||
d_gain(20.0)
|
||||
{
|
||||
d_audio_src = make_pa_source(device_name, 96000, 2, "GQRX", "I/Q input");
|
||||
@ -71,11 +72,14 @@ void rx_source_fcd::select_device(const std::string device_name)
|
||||
void rx_source_fcd::set_freq(double freq)
|
||||
{
|
||||
FCD_MODE_ENUM fme;
|
||||
double f = freq;
|
||||
|
||||
if ((freq >= get_freq_min()) && (freq <= get_freq_max()))
|
||||
{
|
||||
d_freq = freq;
|
||||
fme = fcdAppSetFreq((int) d_freq);
|
||||
|
||||
f *= 1.0 + d_freq_corr/1000000.0;
|
||||
fme = fcdAppSetFreq((int)f);
|
||||
|
||||
if (fme != FCD_MODE_APP)
|
||||
{
|
||||
@ -181,9 +185,8 @@ std::vector<double> rx_source_fcd::get_sample_rates()
|
||||
/** FIXME: Remove? */
|
||||
void rx_source_fcd::set_freq_corr(int ppm)
|
||||
{
|
||||
//d_fcd_src->set_freq_corr(ppm);
|
||||
// re-tune after frequency correction
|
||||
//d_fcd_src->set_freq((float) d_freq);
|
||||
d_freq_corr = ppm;
|
||||
set_freq(d_freq);
|
||||
}
|
||||
|
||||
/** FIXME: Remove? */
|
||||
|
@ -78,6 +78,7 @@ private:
|
||||
gr_float_to_complex_sptr d_f2c; /*! Block to MUX audio L/R into complex I/Q. */
|
||||
std::vector<double> d_sample_rates; /*! Supported sample rates. */
|
||||
double d_freq; /*! Current RF frequency. */
|
||||
int d_freq_corr; /*! Current frequency correction in ppm. */
|
||||
double d_gain; /*! Current RF gain. */
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user