public SettingsDlg() { InitializeComponent(); try { // populate devices combo box cbb_Device.Items.Clear(); cbb_Device.Items.AddRange((RTLDevice[])Properties.Settings.Default.RTL_Devices); RTLDevice d = new RTLDevice(); foreach (RTLDevice item in cbb_Device.Items) { if (item.Name == Properties.Settings.Default.RTL_Device) { cbb_Device.SelectedItem = item; } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error while getting RTL devices"); } try { cbb_COM.Items.Clear(); cbb_COM.Items.AddRange(SerialPort.GetPortNames()); cbb_COM.Items.Insert(0, "[none]"); cbb_COM.SelectedItem = Properties.Settings.Default.COM_Port; cbb_COM_Noise.Items.AddRange(new string[] { COMSTAT.RTS.ToString(), COMSTAT.DTR.ToString() }); string comnoise = Properties.Settings.Default.COM_Noise; if (Enum.IsDefined(typeof(COMSTAT), comnoise)) { cbb_COM_Noise.SelectedItem = comnoise; } else { cbb_COM_Noise.SelectedItem = COMSTAT.RTS.ToString(); } cbb_COM_DUT.Items.AddRange(new string[] { COMSTAT.RTS.ToString(), COMSTAT.DTR.ToString() }); string comdut = Properties.Settings.Default.COM_DUT; if (Enum.IsDefined(typeof(COMSTAT), comdut)) { cbb_COM_DUT.SelectedItem = comdut; } else { cbb_COM_DUT.SelectedItem = COMSTAT.DTR; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error while getting COM ports"); } // setting up noise calibration if (Properties.Settings.Default.Noise_File_Activate) { rb_Noise_Cal_File.Checked = true; rb_Noise_Cal_Man.Checked = false; } else { rb_Noise_Cal_File.Checked = false; rb_Noise_Cal_Man.Checked = true; } InvalidateCalibration = false; // setup FFT filter combo box cbb_FFT_Filter.Items.Add(FFTALGORITHM.NONE); cbb_FFT_Filter.Items.Add(FFTALGORITHM.LOMONT); cbb_FFT_Filter.Items.Add(FFTALGORITHM.FFTW); try { if (Properties.Settings.Default.FFT_Filter) { cbb_FFT_Filter.SelectedItem = Properties.Settings.Default.FFT_Algorithm; } else { cbb_FFT_Filter.SelectedItem = FFTALGORITHM.NONE; } } catch { cbb_FFT_Filter.SelectedItem = FFTALGORITHM.NONE; } // setup tone output combo box cbb_Tone_Output.Items.Add(TONEOUTPUT.NONE); cbb_Tone_Output.Items.Add(TONEOUTPUT.NF); cbb_Tone_Output.Items.Add(TONEOUTPUT.GAIN); try { cbb_Tone_Output.SelectedItem = Properties.Settings.Default.Tone_Output; } catch { cbb_Tone_Output.SelectedItem = TONEOUTPUT.NONE; } }
private void cbb_Device_SelectedIndexChanged(object sender, EventArgs e) { // set the tuner type and gains according to the selceted tuner RTLDevice item = (RTLDevice)cbb_Device.SelectedItem; if (item == null) { return; } // save index of current selected device Properties.Settings.Default.RTL_DeviceIndex = item.Index; // set tuner type lbl_TunerType.Text = item.TunerType.ToString(); // set up gain control try { // poulate combo box with gains cbb_RTL_TunerGain.Items.Clear(); bool _gainfound = false; for (int i = 0; i < item.TunerGains.Count; i++) { // add gain cbb_RTL_TunerGain.Items.Add(((double)item.TunerGains[i]) / 10.0); // check if gain is selected tuner gain if (item.TunerGains[i] == Properties.Settings.Default.RTL_TunerGain) { cbb_RTL_TunerGain.SelectedIndex = cbb_RTL_TunerGain.Items.Count - 1; _gainfound = true; } } // set tuner gain to maximum if old setting is not found if (!_gainfound) { cbb_RTL_TunerGain.SelectedIndex = cbb_RTL_TunerGain.Items.Count - 1; Properties.Settings.Default.RTL_TunerGain = (int)((double)cbb_RTL_TunerGain.SelectedItem * 10.0); } cb_RTL_AGC_Auto_CheckedChanged(this, null); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error while getting tuner gains"); } // set frequency bounds switch (item.TunerType) { case RtlSdrTunerType.E4000: // set bounds Properties.Settings.Default.RTL_Frequency_Min = 52; Properties.Settings.Default.RTL_Frequency_Max = 2200; // adjust current frequencies to new bounds Properties.Settings.Default.RTL_Frequency = Math.Max(Properties.Settings.Default.RTL_Frequency, Properties.Settings.Default.RTL_Frequency_Min); Properties.Settings.Default.RTL_Frequency = Math.Min(Properties.Settings.Default.RTL_Frequency, Properties.Settings.Default.RTL_Frequency_Max); Properties.Settings.Default.RTL_Frequency_Start = Math.Max(Properties.Settings.Default.RTL_Frequency_Start, Properties.Settings.Default.RTL_Frequency_Min); Properties.Settings.Default.RTL_Frequency_Start = Math.Min(Properties.Settings.Default.RTL_Frequency_Start, Properties.Settings.Default.RTL_Frequency_Max); Properties.Settings.Default.RTL_Frequency_Stop = Math.Max(Properties.Settings.Default.RTL_Frequency_Stop, Properties.Settings.Default.RTL_Frequency_Min); Properties.Settings.Default.RTL_Frequency_Stop = Math.Min(Properties.Settings.Default.RTL_Frequency_Stop, Properties.Settings.Default.RTL_Frequency_Max); break; case RtlSdrTunerType.R820T: Properties.Settings.Default.RTL_Frequency_Min = 24; Properties.Settings.Default.RTL_Frequency_Max = 1766; Properties.Settings.Default.RTL_Frequency = Math.Max(Properties.Settings.Default.RTL_Frequency, Properties.Settings.Default.RTL_Frequency_Min); Properties.Settings.Default.RTL_Frequency = Math.Min(Properties.Settings.Default.RTL_Frequency, Properties.Settings.Default.RTL_Frequency_Max); Properties.Settings.Default.RTL_Frequency_Start = Math.Max(Properties.Settings.Default.RTL_Frequency_Start, Properties.Settings.Default.RTL_Frequency_Min); Properties.Settings.Default.RTL_Frequency_Start = Math.Min(Properties.Settings.Default.RTL_Frequency_Start, Properties.Settings.Default.RTL_Frequency_Max); Properties.Settings.Default.RTL_Frequency_Stop = Math.Max(Properties.Settings.Default.RTL_Frequency_Stop, Properties.Settings.Default.RTL_Frequency_Min); Properties.Settings.Default.RTL_Frequency_Stop = Math.Min(Properties.Settings.Default.RTL_Frequency_Stop, Properties.Settings.Default.RTL_Frequency_Max); break; default: Properties.Settings.Default.RTL_Frequency_Min = 0; Properties.Settings.Default.RTL_Frequency_Max = 99999.999m; Properties.Settings.Default.RTL_Frequency = Math.Max(Properties.Settings.Default.RTL_Frequency, Properties.Settings.Default.RTL_Frequency_Min); Properties.Settings.Default.RTL_Frequency = Math.Min(Properties.Settings.Default.RTL_Frequency, Properties.Settings.Default.RTL_Frequency_Max); Properties.Settings.Default.RTL_Frequency_Start = Math.Max(Properties.Settings.Default.RTL_Frequency_Start, Properties.Settings.Default.RTL_Frequency_Min); Properties.Settings.Default.RTL_Frequency_Start = Math.Min(Properties.Settings.Default.RTL_Frequency_Start, Properties.Settings.Default.RTL_Frequency_Max); Properties.Settings.Default.RTL_Frequency_Stop = Math.Max(Properties.Settings.Default.RTL_Frequency_Stop, Properties.Settings.Default.RTL_Frequency_Min); Properties.Settings.Default.RTL_Frequency_Stop = Math.Min(Properties.Settings.Default.RTL_Frequency_Stop, Properties.Settings.Default.RTL_Frequency_Max); break; } // invalidate calibrations InvalidateCalibration = true; }