Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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;
        }