コード例 #1
0
        private void WBIR_thread()
        {
            if (btnStartMR.Checked)
            {
                int fast_count = 0;
                int countdown = 1000;
                //                double rnd = 0.0;

                while (wbir_run)
                {
                    switch (WBIR_state)
                    {
                        case WBIR_State.FastAdapt:
                            if (MOX)
                            {
                                SetCorrectIQMu(0, 0, 0.0);
                                SetCorrectIQMu(0, 1, 0.0);
                                WBIR_state = WBIR_State.MOXAdapt;
                            }
                            else
                            {
                                if (wbir_delay_adapt)
                                {
                                    WBIR_state = WBIR_State.DelayAdapt;
                                    wbir_delay_adapt = false;
                                }
                                else if (wbir_tuned)
                                {
                                    wbir_tuned = false;
                                    fast_count = 0;
                                }

                                SetCorrectIQMu(0, 0, 0.5 - (fast_count * 0.005));
                                SetCorrectIQMu(0, 1, 0.5 - (fast_count * 0.005));

                                //Debug.WriteLine(" WBIR Fast, Mu: " + (0.05 - (fast_count * 0.005)).ToString("f6"));
                                fast_count++;
                                if (fast_count == 10)
                                {
                                    fast_count = 0;
                                    countdown = 1000;
                                    WBIR_state = WBIR_State.SlowAdapt;
                                }
                            }
                            break;
                        case WBIR_State.SlowAdapt:
                            if (MOX)
                            {
                                SetCorrectIQMu(0, 0, 0.0);    // reset wbir
                                SetCorrectIQMu(0, 1, 0.0);
                                WBIR_state = WBIR_State.MOXAdapt;
                            }
                            else
                            {
                                countdown -= 100;
                                //Debug.WriteLine("WBIR Slow, countdown: "+countdown);
                                if (wbir_delay_adapt)
                                {
                                    WBIR_state = WBIR_State.DelayAdapt;
                                    wbir_delay_adapt = false;
                                }
                                else if (countdown <= 0 || wbir_tuned)
                                {
                                    wbir_tuned = false;
                                    WBIR_state = WBIR_State.FastAdapt;
                                }
                            }
                            break;
                        case WBIR_State.NoAdapt:
                            //Debug.WriteLine("WBIR Off");
                            if (!MOX)
                            {
                                SetCorrectIQEnable(0, 0);
                                SetCorrectRXIQw(0, 0, 0, 0, 0);
                                SetCorrectRXIQw(0, 1, 0, 0, 0);
                                SetCorrectRXIQw(0, 0, 0, 0, 1);
                                SetCorrectRXIQw(0, 1, 0, 0, 1);
                                SetCorrectIQEnable(0, 1);
                                wbir_tuned = true;
                                countdown = 1000;
                                WBIR_state = WBIR_State.FastAdapt;
                            }
                            break;
                        case WBIR_State.StopAdapt:
                            {
                                SetCorrectIQEnable(0, 0);
                                SetCorrectRXIQw(0, 0, 0, 0, 0);
                                SetCorrectRXIQw(0, 1, 0, 0, 0);
                                SetCorrectRXIQw(0, 0, 0, 0, 1);
                                SetCorrectRXIQw(0, 1, 0, 0, 1);
                            }
                            break;
                        case WBIR_State.DelayAdapt:
                            {
                                //Thread.Sleep((int)SetupForm.udWBIRTime.Value);
                                WBIR_state = WBIR_State.NoAdapt;
                            }
                            break;
                        case WBIR_State.MOXAdapt:
                            if (!MOX)
                            {
                                Thread.Sleep(100);
                                WBIR_state = WBIR_State.DelayAdapt;
                            }
                            break;
                    }

                    Thread.Sleep(100);
                }
            }
        }
コード例 #2
0
ファイル: console.cs プロジェクト: Dfinitski/genesisradio
        private void chkG6ATT_18dB_CheckedChanged(object sender, EventArgs e)   // -18dB ATT
        {
            if (chkG6ATT_18dB.Checked)
            {
                chkG6ATT_18dB.BackColor = Color.GreenYellow;
                lblATTNewVFO.BackColor = Color.Red;
                g6.WriteToDevice(16, 2);                       // ATT ON
            }
            else
            {
                chkG6ATT_18dB.BackColor = SystemColors.Control;
                lblATTNewVFO.BackColor = NewBackgroundVFOColor;
                g6.WriteToDevice(17, 2);                       // ATT OFF
            }

            WBIR_state = WBIR_State.DelayAdapt;


            if (EthCATIsActive)
                CAT_client_socket.ClientServerSync("ZZGN;");                    // sync with server

            if (!MOX)
            {
                if (vfo_new_look)
                    txtLOSCnew_LostFocus(null, null);
                else
                    txtLOSCFreq_LostFocus(null, null);                              // force WBIR reinit!
            }
        }
コード例 #3
0
ファイル: console.cs プロジェクト: Dfinitski/genesisradio
        private void chkG6RF_CheckedChanged(object sender, EventArgs e)
        {
            if (current_model == Model.GENESIS_G6)
            {
                if (chkG6RF.Checked)
                {
                    chkG6RF.BackColor = Color.GreenYellow;
                    lblRFNewVFO.BackColor = Color.Red;
                    g6.WriteToDevice(11, 0);               // PREAMP ON
                }
                else
                {
                    chkG6RF.BackColor = SystemColors.Control;
                    lblRFNewVFO.BackColor = NewBackgroundVFOColor;
                    g6.WriteToDevice(12, 0);               // PREAMP OFF
                }

                WBIR_state = WBIR_State.DelayAdapt;

                if (EthCATIsActive)
                    CAT_client_socket.ClientServerSync("ZZGR;");                // sync with server

                if (!MOX)
                {
                    if (vfo_new_look)
                        txtLOSCnew_LostFocus(null, null);
                    else
                        txtLOSCFreq_LostFocus(null, null);                          // force WBIR reinit!
                }
            }
        }
コード例 #4
0
ファイル: console.cs プロジェクト: Dfinitski/genesisradio
        private void BandX12(bool save_band_stack, bool get_band_stack, bool clicked)
        {
            if (save_band_stack)
                SaveBand();

            if (last_band.Equals(xBand[12].name) && save_band_stack && get_band_stack && !clicked)
            {
                if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
                    band_X12_index = (band_X12_index - 1 + band_X12_register) % Math.Max(band_X12_register, 1);
                else
                    band_X12_index = (band_X12_index + 1) % Math.Max(band_X12_register, 1);
            }
            else if (last_band.Equals(xBand[12].name) && get_band_stack && save_band_stack && clicked)
            {
                band_X12_index = (band_X12_index + 1) % Math.Max(band_X12_register, 1);
            }

            string filterMainRX, filterSubRX, modeMainRX, modeSubRX;
            double freqA;
            double freqB;
            double losc_freq;
            int af, rf, sql1, sql2;
            double pwr;
            bool sql1_on, sql2_on;

            if (get_band_stack)
            {
                CurrentBand = Band.BX12;

                if (DB.GetBandStack(xBand[12].name, band_X12_index, out modeMainRX, out modeSubRX, out filterMainRX, out filterSubRX,
                    out freqA, out freqB, out losc_freq, out af, out rf, out pwr, out sql1, out sql1_on, out sql2, out sql2_on))
                {
                    SetBand(modeMainRX, modeSubRX, filterMainRX, filterSubRX, freqA, freqB, losc_freq, af, rf, pwr, sql1, sql1_on, sql2, sql2_on);
                }
                else
                {
                    if (xBand[12].name != "")
                    {
                        DB.AddBandStack(xBand[12].name, "CWU", "F7", xBand[12].freq_min, AF, RF, PWR, SquelchMainRX, chkSQLMainRX.Checked,
                        SquelchSubRX, chkSQLSubRX.Checked);
                        DB.AddBandStack(xBand[12].name, "USB", "F7", xBand[12].freq_min, AF, RF, PWR, SquelchMainRX, chkSQLMainRX.Checked,
                        SquelchSubRX, chkSQLSubRX.Checked);
                        DB.AddBandStack(xBand[12].name, "USB", "F7", xBand[12].freq_min, AF, RF, PWR, SquelchMainRX, chkSQLMainRX.Checked,
                        SquelchSubRX, chkSQLSubRX.Checked);
                        DB.Update();
                        UpdateBandStackRegisters();
                    }
                }

                MaxFreq = LOSCFreq + DttSP.SampleRate / 2 * 1e-6;
                MinFreq = LOSCFreq - DttSP.SampleRate / 2 * 1e-6;
                NewVFOLargeFont = new_vfo_large_font;  // refresh Hover
                NewVFOSmallFont = new_vfo_small_font;
                VFOLargeFont = vfo_large_font;
                VFOSmallFont = vfo_small_font;
                WBIR_state = WBIR_State.NoAdapt;
            }
        }
コード例 #5
0
ファイル: console.cs プロジェクト: Dfinitski/genesisradio
        private void Band600(bool save_band_stack, bool get_band_stack, bool clicked)
        {
            if (save_band_stack)
                SaveBand();

            current_band = Band.B600M;

            if (last_band.Equals("600M") && save_band_stack && get_band_stack && !clicked)
            {
                if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
                    band_600m_index = (band_600m_index - 1 + band_600m_register) % Math.Max(band_600m_register, 1);
                else
                    band_600m_index = (band_600m_index + 1) % Math.Max(band_600m_register, 1);
            }
            else if (last_band.Equals("600M") && get_band_stack && save_band_stack && clicked)
            {
                band_600m_index = (band_600m_index + 1) % Math.Max(band_600m_register, 1); ;
            }

            string filterMainRX, filterSubRX, modeMainRX, modeSubRX;
            double freqA;
            double freqB;
            double losc_freq;
            int af, rf, sql1, sql2;
            double pwr;
            bool sql1_on, sql2_on;

            if (get_band_stack)
            {
                if (DB.GetBandStack("600M", band_600m_index, out modeMainRX, out modeSubRX, out filterMainRX, out filterSubRX,
                    out freqA, out freqB, out losc_freq, out af, out rf, out pwr, out sql1, out sql1_on, out sql2, out sql2_on))
                {
                    SetBand(modeMainRX, modeSubRX, filterMainRX, filterSubRX, freqA, freqB, losc_freq, af, rf, pwr, sql1, sql1_on, sql2, sql2_on);
                }
                else
                {
                    DB.AddBandStack("600M", "CWU", "F7", 0.501, AF, RF, PWR, SquelchMainRX, chkSQLMainRX.Checked,
                        SquelchSubRX, chkSQLSubRX.Checked);
                    DB.AddBandStack("600M", "CWU", "F7", 0.502, AF, RF, PWR, SquelchMainRX, chkSQLMainRX.Checked,
                        SquelchSubRX, chkSQLSubRX.Checked);
                    DB.AddBandStack("600M", "CWU", "F7", 0.503, AF, RF, PWR, SquelchMainRX, chkSQLMainRX.Checked,
                        SquelchSubRX, chkSQLSubRX.Checked);
                    DB.Update();
                    UpdateBandStackRegisters();
                }

                MaxFreq = LOSCFreq + DttSP.SampleRate / 2 * 1e-6;
                MinFreq = LOSCFreq - DttSP.SampleRate / 2 * 1e-6;
                CurrentBand = Band.B600M;
                Band bf = BandFilterByFreq(Math.Round(freqA, 6));
                CurrentBandFilter = bf;
                NewVFOLargeFont = new_vfo_large_font;  // refresh Hover
                NewVFOSmallFont = new_vfo_small_font;
                VFOLargeFont = vfo_large_font;
                VFOSmallFont = vfo_small_font;
                WBIR_state = WBIR_State.NoAdapt;
            }
        }
コード例 #6
0
ファイル: console.cs プロジェクト: Dfinitski/genesisradio
        private void WBIR_thread()
        {
            if (PowerOn)
            {
                int fast_count = 0;
                int countdown = 1000;

                while (wbir_run)
                {
                    switch (WBIR_state)
                    {
                        case WBIR_State.FastAdapt:
                            if (MOX)
                            {
                                float real, imag;
                                //DttSP.SetCorrectIQMu(0, 0, 0.0);
                                //DttSP.SetCorrectIQMu(0, 1, 0.0);
                                WBIR_state = WBIR_State.MOXAdapt;

                                if (!SetupForm.chkWBIRfixed.Checked)
                                    DttSP.SetIQSuspended(1);
                            }
                            else
                            {
                                if (wbir_delay_adapt)
                                {
                                    WBIR_state = WBIR_State.DelayAdapt;
                                    wbir_delay_adapt = false;
                                }
                                else if (wbir_tuned)
                                {
                                    wbir_tuned = false;
                                    fast_count = 0;
                                }

                                DttSP.SetCorrectIQMu(0, 0, 0.5 - (fast_count * 0.005));
                                DttSP.SetCorrectIQMu(0, 1, 0.5 - (fast_count * 0.005));

                                //Debug.WriteLine(" WBIR Fast, Mu: " + (0.05 - (fast_count * 0.005)).ToString("f6"));
                                fast_count++;
                                if (fast_count == 10)
                                {
                                    fast_count = 0;
                                    countdown = 1000;
                                    WBIR_state = WBIR_State.SlowAdapt;
                                }
                            }
                            break;
                        case WBIR_State.SlowAdapt:
                            if (MOX)
                            {
                                float real, imag;
                                //DttSP.SetCorrectIQMu(0, 0, 0.0);    // reset wbir
                                //DttSP.SetCorrectIQMu(0, 1, 0.0);
                                WBIR_state = WBIR_State.MOXAdapt;

                                if (!SetupForm.chkWBIRfixed.Checked)
                                    DttSP.SetIQSuspended(1);
                            }
                            else
                            {
                                countdown -= 100;
                                //Debug.WriteLine("WBIR Slow, countdown: "+countdown);
                                if (wbir_delay_adapt)
                                {
                                    WBIR_state = WBIR_State.DelayAdapt;
                                    wbir_delay_adapt = false;
                                }
                                else if (countdown <= 0 || wbir_tuned)
                                {
                                    wbir_tuned = false;
                                    WBIR_state = WBIR_State.FastAdapt;
                                }
                            }
                            break;
                        case WBIR_State.NoAdapt:
                            //Debug.WriteLine("WBIR Off");
                            if (!MOX)
                            {
                                DttSP.SetCorrectIQEnable(0);
                                DttSP.SetCorrectRXIQw(0, 0, 0, 0, 0);
                                DttSP.SetCorrectRXIQw(0, 1, 0, 0, 0);
                                //DttSP.SetCorrectRXIQw(0, 0, 0, 0, 1);
                                //DttSP.SetCorrectRXIQw(0, 1, 0, 0, 1);
                                DttSP.SetCorrectRXIQw(0, 0, rx_image_real_table[(int)current_band],
                                    rx_image_imag_table[(int)current_band], 1);
                                DttSP.SetCorrectRXIQw(0, 0, rx_image_real_table[(int)current_band],
                                    rx_image_imag_table[(int)current_band], 100);                       // for backup
                                DttSP.SetCorrectRXIQw(0, 1, rx_image_real_table[(int)current_band],
                                    rx_image_imag_table[(int)current_band], 1);
                                DttSP.SetCorrectRXIQw(0, 1, rx_image_real_table[(int)current_band],
                                    rx_image_imag_table[(int)current_band], 100);                       // for backup
                                DttSP.SetCorrectIQEnable(1);
                                wbir_tuned = true;
                                countdown = 1000;
                                WBIR_state = WBIR_State.FastAdapt;

                                if (!SetupForm.chkWBIRfixed.Checked)
                                    DttSP.SetIQSuspended(0);
                            }
                            break;
                        case WBIR_State.StopAdapt:
                            {
                                DttSP.SetCorrectIQEnable(0);
                                DttSP.SetCorrectRXIQw(0, 0, 0, 0, 0);
                                DttSP.SetCorrectRXIQw(0, 1, 0, 0, 0);
                                DttSP.SetCorrectRXIQw(0, 0, 0, 0, 1);
                                DttSP.SetCorrectRXIQw(0, 1, 0, 0, 1);
                            }
                            break;
                        case WBIR_State.DelayAdapt:
                            {
                                Thread.Sleep((int)SetupForm.udWBIRTime.Value);
                                WBIR_state = WBIR_State.NoAdapt;
                            }
                            break;
                        case WBIR_State.MOXAdapt:
                            if (!MOX)
                            {
                                Thread.Sleep(100);
                                WBIR_state = WBIR_State.DelayAdapt;
                            }
                            break;
                    }

                    Thread.Sleep(100);
                }
            }
        }