예제 #1
0
        bool ProcessCalibration(bool AllAttenuatorforced = false, UInt16 nCaptureDelay = 0)
        {
            if (!CurrentDeviceDef.Attenuator)
            {
                return(ProcessCalibrationNoAttenuator());
            }

            DialogResult Result;

            if (AllAttenuatorforced)
            {
                Result = MessageBox.Show("We will run calibration for all attenuators setup", "Need calibration", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
            }
            else
            {
                Result = MessageBox.Show("Run calibration for all attenuators setup ?", "Need calibration", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
            }

            if (Result == DialogResult.Cancel)
            {
                LOGDraw(" canceled", true);
                return(false);
            }
            else
            {
                AttLevel Current = (AttLevel)AttLevelcomboBox.SelectedItem;

                if (Result == DialogResult.No)
                {
                    if (DeviceInterface.GetDevice().HaveLogDetector)
                    {
                        LOGDraw("Calibration for " + Current.ToString() + " attenuator, using logarithmic detector", true);
                        DeviceInterface.SetAttenuatorLevel(Current, Current);
                        DeviceInterface.RunCalibration(MyNotifier, 9999, false);
                    }
                    if (DeviceInterface.GetDevice().HaveLinDetector)
                    {
                        LOGDraw("Calibration for " + Current.ToString() + " attenuator, using linear detector..", true);
                        DeviceInterface.SetAttenuatorLevel(Current, Current);
                        DeviceInterface.RunCalibration(MyNotifier, 9999, true);
                    }

                    DeviceInterface.SaveCalibration(Program.CalibrationPath);
                    bCalibrationAvailable = true;
                    LOGDraw("done.");
                }
                else
                {
                    foreach (AttLevel Level in Enum.GetValues(typeof(AttLevel)))
                    {
                        if (DeviceInterface.GetDevice().HaveLogDetector)
                        {
                            LOGDraw("Calibration for " + Level.ToString() + " attenuator, using logarihtmic detector..", true);
                            DeviceInterface.SetAttenuatorLevel(Level, Level);
                            DeviceInterface.RunCalibration(MyNotifier, 4000, false);
                        }

                        if (DeviceInterface.GetDevice().HaveLinDetector)
                        {
                            LOGDraw("Calibration for " + Level.ToString() + " attenuator, using linear detector..", true);
                            DeviceInterface.SetAttenuatorLevel(Level, Level);
                            DeviceInterface.RunCalibration(MyNotifier, 4000, true);
                        }


                        LOGDraw("done.");
                    }
                    DeviceInterface.SaveCalibration(Program.CalibrationPath);
                    bCalibrationAvailable = true;

                    if (Program.Save.AttCal)
                    {
                        DeviceInterface.SetAttenuatorLevel(Current, Current);
                    }
                    else
                    {
                        DeviceInterface.SetAttenuatorLevel(Current, AttLevel._0dB);
                    }
                }

                return(true);
            }
        }
예제 #2
0
        public Form1()
        {
            InitializeComponent();
            SweepModeCurvesList.Clear();
            SweepModeCurvesList.Add(new CCurve());

            CurveListComboBox.DataSource           = null;
            CurveListComboBox.DataSource           = SweepModeCurvesList;
            CurveListComboBox.SelectedItem         = SweepModeCurvesList[0];
            CurveConfigPropertyGrid.SelectedObject = SweepModeCurvesList[0];


            AutodetectCOMcheckBox.Checked = Program.Save.SerialPortAutodetectAtLaunch;
            RawCaptureCheckBox.Checked    = Program.Save.RawCapture;

            //SerialPortComboBox.SelectedValueChanged -= DevicesComboBox_SelectedValueChanged;
            RefreshCOMPortList();
            //SerialPortComboBox.SelectedValueChanged += DevicesComboBox_SelectedValueChanged;


            Text = Program.Version;
            OutputModeComboBox.DataSource   = Enum.GetValues(typeof(OutputMode));
            FilterComboBox.DataSource       = Enum.GetValues(typeof(FilterMode));
            OutputModeComboBox.SelectedItem = Program.Save.Output;
            FilterComboBox.SelectedItem     = Program.Save.Filter;


            AttLevelcomboBox.SelectedIndexChanged -= AttLevelcomboBox_SelectedIndexChanged;
            AttLevelcomboBox.DataSource            = Enum.GetValues(typeof(AttLevel));
            AttLevelcomboBox.SelectedIndexChanged += AttLevelcomboBox_SelectedIndexChanged;

            DetectorCombobox.DataSource = Enum.GetValues(typeof(NWTDevice.DetectorUsed));
            MyNotifier.SetProgressBar(SweepProgressBar);
            MyNotifier.SetForm(this);

            DeviceManagerInit();
            //SerialPortComboBox.Items.AddRange(SerialPort.GetPortNames());
            //AutoDetectserialPort();
            DeviceListMenuRefresh();

            bMuteDeviceComboBoxEvent = true;

            int nDeviceIndex = GetDeviceIndex(Program.Save.LastUsedDevice);

            if (nDeviceIndex >= 0)
            {
                SelectecDeviceComboBox.SelectedIndex = nDeviceIndex;
            }
            else
            {
                SelectecDeviceComboBox.SelectedIndex = 0;
            }

            bMuteDeviceComboBoxEvent = false;

            SetAnalyzer(SelectecDeviceComboBox.SelectedIndex, true);


            if (Program.Save.LastUsedCOMPort != null)
            {
                // we try to initalize this com port
                bool bSuccess = SerialPortInitialize(Program.Save.LastUsedCOMPort);

                if (bSuccess)
                {
                    SerialPortComboBox.SelectedItem = Program.Save.LastUsedCOMPort;
                }


                if (!bSuccess && Program.Save.SerialPortAutodetectAtLaunch)
                {
                    AutoDetectSerialPort();
                }
            }
            else
            {
                if (Program.Save.SerialPortAutodetectAtLaunch)
                {
                    AutoDetectSerialPort();
                }
            }

            AttCalCheckBox.Checked = Program.Save.AttCal;
            SpectrumPictureBox.SetOwnedForm(this);

            SetSampleCount(Program.Save.SampleCount);

            if (DeviceInterface.GetDevice().Attenuator)
            {
                if (Program.Save.AttCal)
                {
                    DeviceInterface.SetAttenuatorLevel((AttLevel)AttLevelcomboBox.SelectedItem, (AttLevel)AttLevelcomboBox.SelectedItem);
                }
                else
                {
                    DeviceInterface.SetAttenuatorLevel((AttLevel)AttLevelcomboBox.SelectedItem, AttLevel._0dB);
                }
            }

            VFOFrequencyTextBox.Text = Utility.GetStringWithSeparators(Program.Save.LastVFOFrequency, " ");
        }