Example #1
0
        private void picPanadapter_MouseDown(object sender, MouseEventArgs e)
        {
            try
            {
                picPanadapter.Focus();

            #if(DirectX)
                if (VideoDriver == DisplayDriver.DIRECTX)
                {
                    if (e.Button == MouseButtons.Left && (tuning_mode == TuneMode.Off ||
                        tuning_mode == TuneMode.VFOA))
                    {
                        float x = PixelToHz(e.X);
                        VFOA = x / 1e6;
                        tbPan.Value = 0;
                    }
                    else if (e.Button == MouseButtons.Left && tuning_mode == TuneMode.VFOB)
                    {
                        float x = PixelToHz(e.X);
                        VFOB = x / 1e6;
                        tbPan.Value = 0;
                    }
                    else if (e.Button == MouseButtons.Right && tuning_mode == TuneMode.Off)
                    {
                        tuning_mode = TuneMode.VFOA;
                        DX.tuning_mode = TuneMode.VFOA;
                        btnRX2On_CheckedChanged(this, EventArgs.Empty);
                        UpdateFilters();
                    }
                    else if (e.Button == MouseButtons.Right && tuning_mode == TuneMode.VFOA && DX.RX2Enabled)
                    {
                        tuning_mode = TuneMode.VFOB;
                        DX.tuning_mode = TuneMode.VFOB;
                        btnRX2On_CheckedChanged(this, EventArgs.Empty);
                        UpdateFilters();
                    }
                    else if (e.Button == MouseButtons.Right && tuning_mode == TuneMode.VFOA && !DX.RX2Enabled)
                    {
                        tuning_mode = TuneMode.Off;
                        DX.tuning_mode = TuneMode.Off;
                        btnRX2On_CheckedChanged(this, EventArgs.Empty);
                        UpdateFilters();
                    }
                    else if (e.Button == MouseButtons.Right && tuning_mode == TuneMode.VFOB)
                    {
                        tuning_mode = TuneMode.Off;
                        DX.tuning_mode = TuneMode.Off;
                        btnRX2On_CheckedChanged(this, EventArgs.Empty);
                        UpdateFilters();
                    }
                }
                else
            #endif
                {
                    if (e.Button == MouseButtons.Left && (tuning_mode == TuneMode.Off ||
                        tuning_mode == TuneMode.VFOA))
                    {
                        float x = PixelToHz(e.X);
                        VFOA = x / 1e6;
                        tbPan.Value = 0;
                    }
                    else if (e.Button == MouseButtons.Left && tuning_mode == TuneMode.VFOB)
                    {
                        float x = PixelToHz(e.X);
                        VFOB = x / 1e6;
                        tbPan.Value = 0;
                    }
                    else if (e.Button == MouseButtons.Right && Display_GDI.tuning_mode == TuneMode.Off)
                    {
                        tuning_mode = TuneMode.VFOA;
                        Display_GDI.tuning_mode = TuneMode.VFOA;
                        btnRX2On_CheckedChanged(this, EventArgs.Empty);
                        UpdateFilters();
                    }
                    else if (e.Button == MouseButtons.Right && Display_GDI.tuning_mode == TuneMode.VFOA &&
                        Display_GDI.RX2Enabled)
                    {
                        tuning_mode = TuneMode.VFOB;
                        Display_GDI.tuning_mode = TuneMode.VFOB;
                        btnRX2On_CheckedChanged(this, EventArgs.Empty);
                        UpdateFilters();
                    }
                    else if (e.Button == MouseButtons.Right && Display_GDI.tuning_mode == TuneMode.VFOA &&
                        !Display_GDI.RX2Enabled)
                    {
                        tuning_mode = TuneMode.Off;
                        Display_GDI.tuning_mode = TuneMode.Off;
                        btnRX2On_CheckedChanged(this, EventArgs.Empty);
                        UpdateFilters();
                    }
                    else if (e.Button == MouseButtons.Right && Display_GDI.tuning_mode == TuneMode.VFOB)
                    {
                        tuning_mode = TuneMode.Off;
                        Display_GDI.tuning_mode = TuneMode.Off;
                        btnRX2On_CheckedChanged(this, EventArgs.Empty);
                        UpdateFilters();
                    }
                }

                if (e.Button == MouseButtons.Right)
                {
                    Mode new_mode = op_mode_vfoA;
                    TuneMode new_tune_mode = tuning_mode;

                    if (tuning_mode == TuneMode.VFOB)
                        new_mode = op_mode_vfoB;

                    switch (new_mode)
                    {
                        case Mode.CW:
                            cWToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;

                        case Mode.RTTY:
                            rTTYToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;

                        case Mode.BPSK31:
                            bPSK31ToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;

                        case Mode.BPSK63:
                            bPSK63ToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;

                        case Mode.BPSK125:
                            bPSK125ToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;

                        case Mode.BPSK250:
                            bPSK250ToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;

                        case Mode.QPSK31:
                            qPSK31ToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;

                        case Mode.QPSK63:
                            qPSK63ToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;

                        case Mode.QPSK125:
                            qPSK125ToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;

                        case Mode.QPSK250:
                            qPSK250ToolStripMenuItem_Click(this, EventArgs.Empty);
                            break;
                    }

                    tuning_mode = new_tune_mode;
                }
            }
            catch (Exception ex)
            {
                Debug.Write(ex.ToString());
            }
        }
Example #2
0
        private void btnRX2On_CheckedChanged(object sender, EventArgs e)
        {
            if (btnRX2On.Checked)
            {
                btnRX2On.BackColor = Color.WhiteSmoke;
                Audio.RX2 = true;
                Display_GDI.RX2Enabled = true;
            #if(DirectX)
                DX.RX2Enabled = true;
            #endif
                btnRX2On.BackColor = Color.LimeGreen;

                switch (op_mode_vfoB)
                {
                    case Mode.CW:
                        cwDecoder.RX2Enabled = true;
                        cwDecoder.run_rx2 = true;
                        SetRXOn(0, 1, true);
                        rtty.run_rx2 = false;
                        psk.run_rx2 = false;

                        switch (op_mode_vfoA)
                        {
                            case Mode.CW:
                                SetRXOn(0, 2, false);
                                SetRXOn(0, 3, false);
                                break;

                            case Mode.RTTY:
                                SetRXOn(0, 2, true);
                                SetRXOn(0, 3, false);
                                break;

                            case Mode.BPSK31:
                            case Mode.BPSK63:
                            case Mode.BPSK125:
                            case Mode.BPSK250:
                            case Mode.QPSK31:
                            case Mode.QPSK63:
                            case Mode.QPSK125:
                            case Mode.QPSK250:
                                SetRXOn(0, 2, false);
                                SetRXOn(0, 3, false);
                                break;
                        }
                        break;

                    case Mode.RTTY:
                        rtty.RX2Enabled = true;
                        rtty.run_rx2 = true;
                        SetRXOn(0, 2, true);
                        SetRXOn(0, 3, true);
                        cwDecoder.run_rx2 = false;
                        psk.run_rx2 = false;

                        switch (op_mode_vfoA)
                        {
                            case Mode.RTTY:
                                break;

                            case Mode.CW:
                            case Mode.BPSK31:
                            case Mode.BPSK63:
                            case Mode.BPSK125:
                            case Mode.BPSK250:
                            case Mode.QPSK31:
                            case Mode.QPSK63:
                            case Mode.QPSK125:
                            case Mode.QPSK250:
                                SetRXOn(0, 1, false);
                                break;
                        }
                        break;

                    case Mode.BPSK31:
                    case Mode.BPSK63:
                    case Mode.BPSK125:
                    case Mode.BPSK250:
                    case Mode.QPSK31:
                    case Mode.QPSK63:
                    case Mode.QPSK125:
                    case Mode.QPSK250:
                        psk.RX2Enabled = true;
                        psk.run_rx2 = true;
                        SetRXOn(0, 1, true);
                        cwDecoder.run_rx2 = false;
                        rtty.run_rx2 = false;

                        switch (op_mode_vfoA)
                        {
                            case Mode.RTTY:
                                SetRXOn(0, 2, true);
                                SetRXOn(0, 3, false);
                                break;

                            case Mode.CW:
                            case Mode.BPSK31:
                            case Mode.BPSK63:
                            case Mode.BPSK125:
                            case Mode.BPSK250:
                            case Mode.QPSK31:
                            case Mode.QPSK63:
                            case Mode.QPSK125:
                            case Mode.QPSK250:
                                SetRXOn(0, 2, false);
                                SetRXOn(0, 3, false);
                                break;
                        }

                        break;
                }
            }
            else
            {
                btnRX2On.BackColor = Color.LimeGreen;
                Audio.RX2 = false;
                Display_GDI.RX2Enabled = false;
            #if(DirectX)
                DX.RX2Enabled = false;
            #endif
                btnRX2On.BackColor = Color.WhiteSmoke;
                Audio.channel = 5;
                btnCH1.BackColor = Color.LimeGreen;
                btnCH2.BackColor = Color.WhiteSmoke;

                switch (op_mode_vfoA)
                {
                    case Mode.CW:
                        cwDecoder.RX2Enabled = false;
                        SetRXOn(0, 1, false);
                        SetRXOn(0, 2, false);
                        SetRXOn(0, 3, false);
                        cwDecoder.run_rx2 = false;
                        break;

                    case Mode.RTTY:
                        rtty.RX2Enabled = false;
                        SetRXOn(0, 2, false);
                        SetRXOn(0, 3, false);
                        rtty.run_rx2 = false;
                        break;

                    case Mode.BPSK31:
                    case Mode.BPSK63:
                    case Mode.BPSK125:
                    case Mode.BPSK250:
                    case Mode.QPSK31:
                    case Mode.QPSK63:
                    case Mode.QPSK125:
                    case Mode.QPSK250:
                        psk.RX2Enabled = false;
                        psk.run_rx2 = false;
                        SetRXOn(0, 1, false);
                        SetRXOn(0, 2, false);
                        SetRXOn(0, 3, false);
                        break;
                }

                if (tuning_mode == TuneMode.VFOB)
                {
                    tuning_mode = TuneMode.Off;
                    Display_GDI.tuning_mode = TuneMode.Off;
            #if(DirectX)
                    DX.tuning_mode = TuneMode.Off;
            #endif
                }
            }

            Mode new_mode = op_mode_vfoA;

            if (tuning_mode == TuneMode.VFOB)
                new_mode = op_mode_vfoB;

            switch (new_mode)
            {
                case Mode.CW:
                    lblRTTYMark.Visible = false;
                    lblRTTYMarkBox.Visible = false;
                    lblRTTYSpace.Visible = false;
                    lblRTTYSpaceBox.Visible = false;
                    radRTTYNormal.Visible = false;
                    radRTTYReverse.Visible = false;
                    lblDCDCh1.Visible = false;
                    lblDCDCh2.Visible = false;
                    lblPSKCH1Freq.Visible = false;
                    lblPSKCH2Freq.Visible = false;
                    lblPSKDCDCh1.Visible = false;
                    lblPSKDCDCh2.Visible = false;
                    chkSQL.Visible = true;
                    chkAFC.Visible = false;
                    break;

                case Mode.RTTY:
                    lblRTTYMark.Visible = true;
                    lblRTTYMarkBox.Visible = true;
                    lblRTTYSpace.Visible = true;
                    lblRTTYSpaceBox.Visible = true;
                    radRTTYNormal.Visible = true;
                    radRTTYReverse.Visible = true;
                    lblDCDCh1.Visible = false;
                    lblDCDCh2.Visible = false;
                    lblPSKCH1Freq.Visible = false;
                    lblPSKCH2Freq.Visible = false;
                    lblPSKDCDCh1.Visible = false;
                    lblPSKDCDCh2.Visible = false;
                    chkSQL.Visible = true;
                    chkAFC.Visible = false;
                    break;

                case Mode.BPSK31:
                case Mode.BPSK63:
                case Mode.BPSK125:
                case Mode.BPSK250:
                case Mode.QPSK31:
                case Mode.QPSK63:
                case Mode.QPSK125:
                case Mode.QPSK250:
                    lblRTTYMark.Visible = false;
                    lblRTTYMarkBox.Visible = false;
                    lblRTTYSpace.Visible = false;
                    lblRTTYSpaceBox.Visible = false;
                    radRTTYNormal.Visible = false;
                    radRTTYReverse.Visible = false;
                    lblDCDCh1.Visible = true;
                    lblDCDCh2.Visible = true;
                    lblPSKCH1Freq.Visible = true;
                    lblPSKCH2Freq.Visible = true;
                    lblPSKDCDCh1.Visible = true;
                    lblPSKDCDCh2.Visible = true;
                    chkSQL.Visible = false;
                    chkAFC.Visible = true;
                    break;
            }
        }
Example #3
0
        private void cWToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Audio.audio_paused = true;

            if (tuning_mode == TuneMode.Off || tuning_mode == TuneMode.VFOA)
            {
                chkSQL.Visible = true;
                chkAFC.Visible = false;
                rTTYToolStripMenuItem.Checked = false;
                cWToolStripMenuItem.Checked = true;
                bPSK250ToolStripMenuItem.Checked = false;
                bPSK125ToolStripMenuItem.Checked = false;
                bPSK63ToolStripMenuItem.Checked = false;
                bPSK31ToolStripMenuItem.Checked = false;
                qPSK31ToolStripMenuItem.Checked = false;
                qPSK63ToolStripMenuItem.Checked = false;
                qPSK125ToolStripMenuItem.Checked = false;
                qPSK250ToolStripMenuItem.Checked = false;
                tuning_mode = TuneMode.Off;
                OpModeVFOA = Mode.CW;
                cwDecoder.run_rx1 = true;
                rtty.run_rx1 = false;
                psk.run_rx1 = false;
                InitLOG();
            }
            else
            {
                OpModeVFOB = Mode.CW;
                cwDecoder.run_rx2 = true;
                rtty.run_rx2 = false;
                psk.run_rx2 = false;
            }

            btnRX2On_CheckedChanged(this, EventArgs.Empty);
            this.grpChannels.Text = "VFOA " + op_mode_vfoA.ToString() + "     VFOB " +
                op_mode_vfoB.ToString() + "     ";
            grpMonitor.Text = "Mode CW";
            Audio.audio_paused = false;
        }
Example #4
0
        public void GetState()
        {
            try
            {
                double Losc = 14.04, VfoA = 14.05, VfoB = 14.05;
                // get list of live controls
                ArrayList temp = new ArrayList();		// list of all first level controls
                ControlList(this, ref temp);

                ArrayList checkbox_list = new ArrayList();
                ArrayList combobox_list = new ArrayList();
                ArrayList numericupdown_list = new ArrayList();
                ArrayList radiobutton_list = new ArrayList();
                ArrayList textbox_list = new ArrayList();
                ArrayList trackbar_list = new ArrayList();
                ArrayList colorbutton_list = new ArrayList();

                foreach (Control c in temp)
                {
                    if (c.GetType() == typeof(CheckBox))
                        checkbox_list.Add(c);
                    else if (c.GetType() == typeof(ComboBox))
                        combobox_list.Add(c);
                    else if (c.GetType() == typeof(NumericUpDown))
                        numericupdown_list.Add(c);
                    else if (c.GetType() == typeof(RadioButton))
                        radiobutton_list.Add(c);
                    //else if (c.GetType() == typeof(TextBox))
                    //textbox_list.Add(c);
                    else if (c.GetType() == typeof(TrackBar))
                        trackbar_list.Add(c);
                }

                temp.Clear();	// now that we have the controls we want, delete first list

                ArrayList a = DB.GetVars("Options");
                a.Sort();

                // restore saved values to the controls
                foreach (string s in a)				// string is in the format "name,value"
                {
                    string[] vals = s.Split('/');

                    if (vals.Length > 2)
                    {
                        for (int i = 2; i < vals.Length; i++)
                            vals[1] += "/" + vals[i];
                    }

                    string name = vals[0];
                    string val = vals[1];

                    if (s.StartsWith("chk"))
                    {
                        for (int i = 0; i < checkbox_list.Count; i++)
                        {
                            CheckBox c = (CheckBox)checkbox_list[i];
                            if (c.Name.Equals(name))		// name found
                            {
                                c.Checked = bool.Parse(val);	// restore value
                                i = checkbox_list.Count + 1;
                            }
                            if (i == checkbox_list.Count)
                                MessageBox.Show("Control not found: " + name);
                        }
                    }
                    else if (s.StartsWith("combo"))	// control is a ComboBox
                    {
                        for (int i = 0; i < combobox_list.Count; i++)
                        {	// look through each control to find the matching name
                            ComboBox c = (ComboBox)combobox_list[i];
                            if (c.Name.Equals(name))		// name found
                            {
                                if (c.Items.Count > 0 && c.Items[0].GetType() == typeof(string))
                                {
                                    c.Text = val;
                                }
                                else
                                {
                                    foreach (object o in c.Items)
                                    {
                                        if (o.ToString() == val)
                                            c.Text = val;	// restore value
                                    }
                                }
                                i = combobox_list.Count + 1;
                            }
                            if (i == combobox_list.Count)
                                MessageBox.Show("Control not found: " + name);
                        }
                    }
                    else if (s.StartsWith("ud"))
                    {
                        for (int i = 0; i < numericupdown_list.Count; i++)
                        {	// look through each control to find the matching name
                            NumericUpDown c = (NumericUpDown)numericupdown_list[i];
                            if (c.Name.Equals(name))		// name found
                            {
                                decimal num = decimal.Parse(val);

                                if (num > c.Maximum) num = c.Maximum;		// check endpoints
                                else if (num < c.Minimum) num = c.Minimum;
                                c.Value = num;			// restore value
                                i = numericupdown_list.Count + 1;
                            }
                            if (i == numericupdown_list.Count)
                                MessageBox.Show("Control not found: " + name);
                        }
                    }
                    else if (s.StartsWith("rad"))
                    {	// look through each control to find the matching name
                        for (int i = 0; i < radiobutton_list.Count; i++)
                        {
                            RadioButton c = (RadioButton)radiobutton_list[i];
                            if (c.Name.Equals(name))		// name found
                            {
                                c.Checked = bool.Parse(val);	// restore value
                                i = radiobutton_list.Count + 1;
                            }
                            if (i == radiobutton_list.Count)
                                MessageBox.Show("Control not found: " + name);
                        }
                    }
                    else if (s.StartsWith("txt"))
                    {	// look through each control to find the matching name
                        for (int i = 0; i < textbox_list.Count; i++)
                        {
                            TextBox c = (TextBox)textbox_list[i];
                            if (c.Name.Equals(name))		// name found
                            {
                                c.Text = val;	// restore value
                                i = textbox_list.Count + 1;
                            }
                            if (i == textbox_list.Count)
                                MessageBox.Show("Control not found: " + name);
                        }
                    }
                    else if (s.StartsWith("tb"))
                    {
                        // look through each control to find the matching name
                        for (int i = 0; i < trackbar_list.Count; i++)
                        {
                            TrackBar c = (TrackBar)trackbar_list[i];
                            if (c.Name.Equals(name))		// name found
                            {
                                c.Value = Int32.Parse(val);
                                i = trackbar_list.Count + 1;
                            }
                            if (i == trackbar_list.Count)
                                MessageBox.Show("Control not found: " + name);
                        }
                    }
                    else if (s.StartsWith("OpModeVFOA"))
                    {
                        vals = s.Split('/');
                        if (vals.Length > 2)
                        {
                            for (int i = 2; i < vals.Length; i++)
                                vals[1] += "/" + vals[i];
                        }

                        val = vals[1];

                        tuning_mode = TuneMode.VFOA;

                        switch (val)
                        {
                            case "CW":
                                OpModeVFOA = Mode.CW;
                                cWToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;

                            case "RTTY":
                                OpModeVFOA = Mode.RTTY;
                                rTTYToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;

                            case "BPSK31":
                                OpModeVFOA = Mode.BPSK31;
                                bPSK31ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "BPSK63":
                                OpModeVFOA = Mode.BPSK63;
                                bPSK63ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "BPSK125":
                                OpModeVFOA = Mode.BPSK125;
                                bPSK125ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "BPSK250":
                                OpModeVFOA = Mode.BPSK250;
                                bPSK250ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "QPSK31":
                                OpModeVFOA = Mode.QPSK31;
                                qPSK31ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "QPSK63":
                                OpModeVFOA = Mode.QPSK63;
                                qPSK63ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "QPSK125":
                                OpModeVFOA = Mode.QPSK125;
                                qPSK125ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "QPSK250":
                                OpModeVFOA = Mode.QPSK250;
                                qPSK250ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                        }
                    }
                    else if (s.StartsWith("OpModeVFOB"))
                    {
                        vals = s.Split('/');
                        if (vals.Length > 2)
                        {
                            for (int i = 2; i < vals.Length; i++)
                                vals[1] += "/" + vals[i];
                        }

                        val = vals[1];

                        tuning_mode = TuneMode.VFOB;

                        switch (val)
                        {
                            case "CW":
                                OpModeVFOB = Mode.CW;
                                cWToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;

                            case "RTTY":
                                OpModeVFOB = Mode.RTTY;
                                rTTYToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;

                            case "BPSK31":
                                OpModeVFOB = Mode.BPSK31;
                                bPSK31ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "BPSK63":
                                OpModeVFOB = Mode.BPSK63;
                                bPSK63ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "BPSK125":
                                OpModeVFOB = Mode.BPSK125;
                                bPSK125ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "BPSK250":
                                OpModeVFOB = Mode.BPSK250;
                                bPSK250ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "QPSK31":
                                OpModeVFOB = Mode.QPSK31;
                                qPSK31ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "QPSK63":
                                OpModeVFOB = Mode.QPSK63;
                                qPSK63ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "QPSK125":
                                OpModeVFOB = Mode.QPSK125;
                                qPSK125ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                            case "QPSK250":
                                OpModeVFOB = Mode.QPSK250;
                                qPSK250ToolStripMenuItem_Click(this, EventArgs.Empty);
                                break;
                        }
                    }
                    else if (s.StartsWith("VFOA"))
                    {
                        vals = s.Split('/');
                        if (vals.Length > 2)
                        {
                            for (int i = 2; i < vals.Length; i++)
                                vals[1] += "/" + vals[i];
                        }

                        val = vals[1];

                        VfoA = double.Parse(val);
                    }
                    else if (s.StartsWith("VFOB"))
                    {
                        vals = s.Split('/');
                        if (vals.Length > 2)
                        {
                            for (int i = 2; i < vals.Length; i++)
                                vals[1] += "/" + vals[i];
                        }

                        val = vals[1];

                        VfoB = double.Parse(val);
                    }
                    else if (s.StartsWith("LOSC"))
                    {
                        vals = s.Split('/');
                        if (vals.Length > 2)
                        {
                            for (int i = 2; i < vals.Length; i++)
                                vals[1] += "/" + vals[i];
                        }

                        val = vals[1];

                        Losc = double.Parse(val);
                    }
                    else if (s.StartsWith("LOG file path"))
                    {
                        vals = s.Split('/');
                        log_file_path = vals[1];
                    }
                    else if (s.StartsWith("main_top"))
                    {
                        int top = Int32.Parse(vals[1]);
                        this.Top = top;
                    }
                    else if (s.StartsWith("main_left"))
                    {
                        int left = Int32.Parse(vals[1]);
                        this.Left = left;
                    }
                    else if (s.StartsWith("main_width"))
                    {
                        int width = Int32.Parse(vals[1]);
                        this.Width = width;
                    }
                    else if (s.StartsWith("main_height"))
                    {
                        int height = Int32.Parse(vals[1]);
                        this.Height = height;
                    }

                    switch (name)
                    {
                        case "tx_image_phase_table":
                            string[] list = val.Split('|');
                            for (int i = 0; i <= (int)Band.B6M && i < list.Length; i++)
                                tx_image_phase_table[i] = float.Parse(list[i]);
                            break;
                        case "tx_image_gain_table":
                            list = val.Split('|');
                            for (int i = 0; i <= (int)Band.B6M && i < list.Length; i++)
                                tx_image_gain_table[i] = float.Parse(list[i]);
                            break;
                        case "rx_image_phase_table":
                            list = val.Split('|');
                            for (int i = 0; i <= (int)Band.B6M && i < list.Length; i++)
                                rx_image_phase_table[i] = float.Parse(list[i]);
                            break;
                        case "rx_image_gain_table":
                            list = val.Split('|');
                            for (int i = 0; i <= (int)Band.B6M && i < list.Length; i++)
                                rx_image_gain_table[i] = float.Parse(list[i]);
                            break;
                    }
                }

                tbZoom.Value = 4;
                tbPan.Value = 0;
                CalcDisplayFreq();

                SetupForm.tbTXPhase.Value = (int)tx_image_phase_table[(int)current_band];
                SetupForm.tbTXGain.Value = (int)tx_image_gain_table[(int)current_band];
                SetupForm.tbRXPhase.Value = (int)rx_image_phase_table[(int)current_band];
                SetupForm.tbRXGain.Value = (int)rx_image_gain_table[(int)current_band];
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error in GetOption function!\n" + ex.ToString());
            }
        }