From 6ae9c1b4dc960b51773aed14e7ab40a43aba7b91 Mon Sep 17 00:00:00 2001 From: Dimitri Stolnikov Date: Tue, 1 Jan 2013 23:03:31 +0100 Subject: [PATCH] update tuning ranges --- lib/fcd/fcd_source.cc | 2 +- lib/osmosdr/osmosdr_src_c.cc | 2 +- lib/rtl/rtl_source_c.cc | 11 +++++++---- lib/rtl_tcp/rtl_tcp_source_c.cc | 23 +++++++++++++++++++---- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/lib/fcd/fcd_source.cc b/lib/fcd/fcd_source.cc index c2d07ca..89f6ab5 100644 --- a/lib/fcd/fcd_source.cc +++ b/lib/fcd/fcd_source.cc @@ -152,7 +152,7 @@ double fcd_source::get_sample_rate( void ) osmosdr::freq_range_t fcd_source::get_freq_range( size_t chan ) { - osmosdr::freq_range_t range(50e6, 2.2e9); + osmosdr::freq_range_t range( 52e6, 2.2e9 ); return range; } diff --git a/lib/osmosdr/osmosdr_src_c.cc b/lib/osmosdr/osmosdr_src_c.cc index 8307d7c..26c0ae0 100644 --- a/lib/osmosdr/osmosdr_src_c.cc +++ b/lib/osmosdr/osmosdr_src_c.cc @@ -345,7 +345,7 @@ osmosdr::freq_range_t osmosdr_src_c::get_freq_range( size_t chan ) osmosdr::freq_range_t range; /* there is a (temperature dependent) gap between 1100 to 1250 MHz */ - range += osmosdr::range_t( 50e6, 2.2e9 ); + range += osmosdr::range_t( 52e6, 2.2e9 ); return range; } diff --git a/lib/rtl/rtl_source_c.cc b/lib/rtl/rtl_source_c.cc index 79e045d..cbdb620 100644 --- a/lib/rtl/rtl_source_c.cc +++ b/lib/rtl/rtl_source_c.cc @@ -414,13 +414,16 @@ osmosdr::freq_range_t rtl_source_c::get_freq_range( size_t chan ) if ( tuner == RTLSDR_TUNER_E4000 ) { /* there is a (temperature dependent) gap between 1100 to 1250 MHz */ - range += osmosdr::range_t( 50e6, 2.2e9 ); + range += osmosdr::range_t( 52e6, 2.2e9 ); } else if ( tuner == RTLSDR_TUNER_FC0012 ) { - /* range += osmosdr::range_t( 50e6, 2.2e9 ); */ + range += osmosdr::range_t( 22e6, 948e6 ); } else if ( tuner == RTLSDR_TUNER_FC0013 ) { - /* range += osmosdr::range_t( 50e6, 2.2e9 ); */ + range += osmosdr::range_t( 22e6, 1.1e9 ); } else if ( tuner == RTLSDR_TUNER_FC2580 ) { - /* range += osmosdr::range_t( 50e6, 2.2e9 ); */ + range += osmosdr::range_t( 146e6, 308e6 ); + range += osmosdr::range_t( 438e6, 924e6 ); + } else if ( tuner == RTLSDR_TUNER_R820T ) { + range += osmosdr::range_t( 24e6, 1766e6 ); } } diff --git a/lib/rtl_tcp/rtl_tcp_source_c.cc b/lib/rtl_tcp/rtl_tcp_source_c.cc index b62b77d..95cf084 100644 --- a/lib/rtl_tcp/rtl_tcp_source_c.cc +++ b/lib/rtl_tcp/rtl_tcp_source_c.cc @@ -35,7 +35,7 @@ using namespace boost::assign; -std::string get_tuner_name( enum rtlsdr_tuner tuner_type ) +static std::string get_tuner_name( enum rtlsdr_tuner tuner_type ) { if ( RTLSDR_TUNER_E4000 == tuner_type ) return "E4000"; @@ -177,10 +177,25 @@ double rtl_tcp_source_c::get_sample_rate( void ) osmosdr::freq_range_t rtl_tcp_source_c::get_freq_range( size_t chan ) { - // FIXME: assumption on E4000 tuner + osmosdr::freq_range_t range; - /* there is a (temperature dependent) gap between 1100 to 1250 MHz */ - osmosdr::freq_range_t range( 50e6, 2.2e6 ); + enum rtlsdr_tuner tuner = _src->get_tuner_type(); + + if ( tuner == RTLSDR_TUNER_E4000 ) { + /* there is a (temperature dependent) gap between 1100 to 1250 MHz */ + range += osmosdr::range_t( 52e6, 2.2e9 ); + } else if ( tuner == RTLSDR_TUNER_FC0012 ) { + range += osmosdr::range_t( 22e6, 948e6 ); + } else if ( tuner == RTLSDR_TUNER_FC0013 ) { + range += osmosdr::range_t( 22e6, 1.1e9 ); + } else if ( tuner == RTLSDR_TUNER_FC2580 ) { + range += osmosdr::range_t( 146e6, 308e6 ); + range += osmosdr::range_t( 438e6, 924e6 ); + } else if ( tuner == RTLSDR_TUNER_R820T ) { + range += osmosdr::range_t( 24e6, 1766e6 ); + } else { + range += osmosdr::range_t( 52e6, 2.2e9 ); // assume E4000 tuner + } return range; }