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); } } }
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! } }
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! } } }
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; } }
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; } }
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); } } }