private void mnuXVTR_Click(object sender, System.EventArgs e) { if(XVTRForm == null || XVTRForm.IsDisposed) XVTRForm = new XVTRForm(this); XVTRForm.Show(); XVTRForm.Focus(); }
private void InitConsole() { #if(DEBUG) mnuUCB.Visible = true; button1.Visible = true; #endif Thread.Sleep(100); UpdateBandStackRegisters(); Audio.console = this; FWCMidi.console = this; Display.console = this; chkDSPNB2.Enabled = true; vfoa_hover_digit = -1; vfob_hover_digit = -1; rx1_ant_by_band = new FWCAnt[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) rx1_ant_by_band[i] = FWCAnt.ANT1; rx2_ant_by_band = new FWCAnt[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) rx2_ant_by_band[i] = FWCAnt.RX2IN; tx_ant_by_band = new FWCAnt[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) tx_ant_by_band[i] = FWCAnt.ANT1; rx1_loop_by_band = new bool[(int)Band.LAST]; rx1_preamp_by_band = new PreampMode[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) rx1_preamp_by_band[i] = PreampMode.HIGH; rx2_preamp_by_band = new PreampMode[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) rx2_preamp_by_band[i] = PreampMode.HIGH; power_by_band = new int[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) power_by_band[i] = 50; rx1_agct_by_band = new int[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) rx1_agct_by_band[i] = 90; rx2_agct_by_band = new int[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) rx2_agct_by_band[i] = 90; tx1_by_band = new bool[(int)Band.LAST]; tx2_by_band = new bool[(int)Band.LAST]; tx3_by_band = new bool[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) tx1_by_band[i] = tx2_by_band[i] = tx3_by_band[i] = true; vhf_text = new ButtonTS[15]; vhf_text[0] = btnBandVHF0; vhf_text[1] = btnBandVHF1; vhf_text[2] = btnBandVHF2; vhf_text[3] = btnBandVHF3; vhf_text[4] = btnBandVHF4; vhf_text[5] = btnBandVHF5; vhf_text[6] = btnBandVHF6; vhf_text[7] = btnBandVHF7; vhf_text[8] = btnBandVHF8; vhf_text[9] = btnBandVHF9; vhf_text[10] = btnBandVHF10; vhf_text[11] = btnBandVHF11; vhf_text[12] = btnBandVHF12; vhf_text[13] = btnBandVHF13; power_table = new float[(int)Band.LAST][]; for(int i=0; i<(int)Band.LAST; i++) power_table[i] = new float[13]; rx1_image_gain_table = new float[(int)Band.LAST]; rx1_image_phase_table = new float[(int)Band.LAST]; rx2_image_gain_table = new float[(int)Band.LAST]; rx2_image_phase_table = new float[(int)Band.LAST]; tx_image_gain_table = new float[(int)Band.LAST]; tx_image_phase_table = new float[(int)Band.LAST]; tx_carrier_table = new int[(int)Band.LAST][]; for(int i=0; i<(int)Band.LAST; i++) { tx_carrier_table[i] = new int[4]; for(int j=0; j<4; j++) tx_carrier_table[i][j] = 128; } pa_bias_table = new int[4][]; // 4 groups of 8 pot settings for(int i=0; i<4; i++) { pa_bias_table[i] = new int[8]; for(int j=0; j<8; j++) pa_bias_table[i][j] = 0; } rx1_level_table = new float[(int)Band.LAST][]; // 3 settings per band (display_offset, preamp, multimeter offset) for(int i=0; i<(int)Band.LAST; i++) { rx1_level_table[i] = new float[3]; rx1_level_table[i][0] = -59.2f; // setup defaults; rx1_level_table[i][1] = -13.5f; rx1_level_table[i][2] = -32.0f; } rx2_level_table = new float[(int)Band.LAST][]; // 3 settings per band (display_offset, preamp, multimeter offset) for(int i=0; i<(int)Band.LAST; i++) { rx2_level_table[i] = new float[3]; rx2_level_table[i][0] = -59.2f; // setup defaults; rx2_level_table[i][1] = -13.5f; rx2_level_table[i][2] = -32.0f; } pa_bridge_table = new float[(int)Band.LAST][]; for(int i=0; i<(int)Band.LAST; i++) { pa_bridge_table[i] = new float[6]; // 1, 2, 5, 10, 20, 90 for(int j=0; j<6; j++) pa_bridge_table[i][j] = 0.0f; } swr_table = new float[(int)Band.LAST]; for(int i=0; i<(int)Band.LAST; i++) swr_table[i] = 1.0f; atu_tuning = false; tune_power = 10; calibrating = false; run_setup_wizard = true; // get culture specific decimal separator separator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator; last_band = ""; // initialize bandstack wheel_tune_list = new double[13]; // initialize wheel tuning list array wheel_tune_list[0] = 0.000001; wheel_tune_list[1] = 0.000010; wheel_tune_list[2] = 0.000050; wheel_tune_list[3] = 0.000100; wheel_tune_list[4] = 0.000250; wheel_tune_list[5] = 0.000500; wheel_tune_list[6] = 0.001000; wheel_tune_list[7] = 0.005000; wheel_tune_list[8] = 0.009000; wheel_tune_list[9] = 0.010000; wheel_tune_list[10] = 0.100000; wheel_tune_list[11] = 1.000000; wheel_tune_list[12] = 10.000000; wheel_tune_index = 6; meter_text_history = new float[multimeter_text_peak_samples]; current_meter_data = -200.0f; rx1_preamp_offset = new float[4]; rx1_preamp_offset[(int)PreampMode.OFF] = 10.0f; rx1_preamp_offset[(int)PreampMode.LOW] = 0.0f; rx1_preamp_offset[(int)PreampMode.MED] = -16.0f; rx1_preamp_offset[(int)PreampMode.HIGH] = -26.0f; rx2_preamp_offset = new float[4]; rx2_preamp_offset[(int)PreampMode.OFF] = 0.0f; rx2_preamp_offset[(int)PreampMode.HIGH] = 14.0f; this.ActiveControl = chkPower; // Power has focus initially Display.Target = picDisplay; Display.Init(); // Initialize Display variables InitDisplayModes(); // Initialize Display Modes InitAGCModes(); // Initialize AGC Modes InitMultiMeterModes(); // Initialize MultiMeter Modes ProcessSampleThreadController[] pstc = new ProcessSampleThreadController[3]; audio_process_thread = new Thread[3]; for (uint proc_thread=0;proc_thread<3;proc_thread++) { pstc[proc_thread] = new ProcessSampleThreadController(proc_thread); audio_process_thread[proc_thread] = new Thread( new ThreadStart(pstc[proc_thread].ProcessSampleThread)); audio_process_thread[proc_thread].Name = "Audio Process Thread "+proc_thread.ToString(); audio_process_thread[proc_thread].Priority = ThreadPriority.Highest; audio_process_thread[proc_thread].IsBackground = true; audio_process_thread[proc_thread].Start(); /* DttSP.SetThreadCom(proc_thread); audio_process_thread = new Thread( // create audio process thread new ThreadStart(DttSP.ProcessSamplesThread)); audio_process_thread.Name = "Audio Process Thread "; audio_process_thread.Priority = ThreadPriority.Highest; audio_process_thread.IsBackground = true; audio_process_thread.Start(); */ } hw = new HW(0x378); // create hardware object siolisten = new SIOListenerII(this); Keyer = new CWKeyer2(this); // create new Keyer // Keyer.sp.BaudRate = 4800; //[patch_15] EQForm = new EQForm(this); InitFilterPresets(); // Initialize filter values SetupForm = new Setup(this); // create Setup form SetupForm.StartPosition = FormStartPosition.Manual; switch(current_model) { case Model.SDR1000: Hdw.Init(); // Power down hardware Hdw.StandBy(); // initialize hardware device break; /*case Model.SDRX: if(fwc_init) { byte mask; FWC.GetRXPresentMask(out mask); for(int i=0; i<8; i++) { if((mask>>i & 1) == 1) { fwc_index = i; break; } } } break;*/ case Model.FLEX5000: if(fwc_init) fwcMixForm = new FWCMixForm(this); break; } //SetupForm.GetTxProfiles(); UpdateTXProfile(SetupForm.TXProfile); Common.RestoreForm(EQForm, "EQForm", false); XVTRForm = new XVTRForm(this); MemForm = new Memory(this); // create Memory form MemForm.StartPosition = FormStartPosition.Manual; WaveForm = new WaveControl(this); // create Wave form WaveForm.StartPosition = FormStartPosition.Manual; //rx1_filter = Filter.F2600; //RX1AGCMode = AGCMode.MED; // Initialize front panel controls comboPreamp.Text = "High"; chkRX1Preamp.Checked = true; vfob_dsp_mode = DSPMode.LSB; vfob_filter = Filter.F3; comboDisplayMode.Text = "Panadapter"; comboRX2DisplayMode.Text = "Panadapter"; comboMeterRXMode.SelectedIndex = 0; comboRX2MeterMode.SelectedIndex = 0; comboTuneMode.SelectedIndex = 0; quick_save_filter = Filter.F3; quick_save_mode = DSPMode.LSB; udPWR.Value = 50; btnDisplayPanCenter_Click(this, EventArgs.Empty); comboTXProfile.Text = SetupForm.TXProfile; comboDigTXProfile.Text = SetupForm.TXProfile; GetState(); // recall saved state chkFullDuplex.Checked = false; if(rx1_dsp_mode == DSPMode.FIRST || rx1_dsp_mode == DSPMode.LAST) radModeLSB.Checked = true; if(rx2_dsp_mode == DSPMode.FIRST || rx2_dsp_mode == DSPMode.LAST) radRX2ModeLSB.Checked = true; if(rx1_filter == Filter.FIRST || rx1_filter == Filter.LAST || (rx1_filter == Filter.NONE && rx1_dsp_mode != DSPMode.DRM && rx1_dsp_mode != DSPMode.SPEC)) radFilter3.Checked = true; if(rx2_filter == Filter.FIRST || rx2_filter == Filter.LAST || (rx2_filter == Filter.NONE && rx2_dsp_mode != DSPMode.DRM && rx2_dsp_mode != DSPMode.SPEC)) radRX2Filter3.Checked = true; txtVFOAFreq_LostFocus(this, EventArgs.Empty); /* if(fwc_init && current_model == Model.FLEX5000 && !run_setup_wizard) { CheckFLEX5000CalData(); if(fwcAntForm != null && !fwcAntForm.IsDisposed) { fwcAntForm.SetBand(rx1_band); fwcAntForm.CurrentAntMode = current_ant_mode; fwcAntForm.RX1Ant = rx1_ant; fwcAntForm.RX1Loop = rx1_loop; fwcAntForm.RX2Ant = rx2_ant; fwcAntForm.TXAnt = tx_ant; } CheckRX2CalData(); RX1Ant = rx1_ant; if(FWCEEPROM.RX2OK) RX2Ant = rx2_ant; } else PAPresent = pa_present; */ PAPresent = pa_present; if(comboAGC.SelectedIndex < 0) RX1AGCMode = AGCMode.MED; if(comboRX2AGC.SelectedIndex < 0) comboRX2AGC.Text = "Med"; txtVFOBFreq_LostFocus(this, EventArgs.Empty); txtVFOAFreq_LostFocus(this, EventArgs.Empty); udPWR_ValueChanged(this, EventArgs.Empty); udAF_ValueChanged(this, EventArgs.Empty); udMIC_ValueChanged(this, EventArgs.Empty); RX1PreampMode = rx1_preamp_mode; RX2PreampMode = rx2_preamp_mode; tbDisplayZoom_Scroll(this, EventArgs.Empty); tbRX0Gain_Scroll(this, EventArgs.Empty); tbRX1Gain_Scroll(this, EventArgs.Empty); tbPanMainRX_Scroll(this, EventArgs.Empty); tbPanSubRX_Scroll(this, EventArgs.Empty); CalcDisplayFreq(); wheel_tune_index--; // Setup wheel tuning ChangeWheelTuneLeft(); UpdateDisplayOffsets(); SetupForm.initCATandPTTprops(); // wjt added -- get console props setup for cat and ptt if ( CmdLineArgs != null ) { for ( int i = 0; i < CmdLineArgs.Length; i++ ) { switch(CmdLineArgs[i]) { case "--disable-swr-prot-at-my-risk": DisableSWRProtection = true; this.Text = this.Text + " *** SWR Protection Disabled! ***"; break; case "--high-pwr-am": Audio.high_pwr_am = true; MessageBox.Show("high power am"); break; case "--ignore-pp-ptt": // ignore parallel port ptt -- simple testing w/o hardware attached Hdw.ignorePTT(true); this.Text = this.Text + " *** PP PTT disabled ***"; break; // the next 4 opts are for various experimental HPSDR xmit and receive options case "--force-16bit-IQ": Force16bitIQ = true; this.Text = this.Text + " *** 16 bit IQ ***"; break; case "--mercury-xmit-hack": DttSP.SetMercuryXmit(true); this.Text = this.Text + " *** MercXmit ***"; break; case "--eer-xmit-hack": DttSP.SetEerXmit(true); this.Text = this.Text + " *** EerXmit ***"; break; case "--no-send-to-Janus": NoJanusSend = true; this.Text = this.Text + "*** NoJanusSend ***"; break; } } } if(comboMeterTXMode.Items.Count > 0 && comboMeterTXMode.SelectedIndex < 0) comboMeterTXMode.SelectedIndex = 0; chkMOX.Enabled = false; RadioDSP.SyncStatic(); for(int i=0; i<2; i++) { for(int j=0; j<2; j++) { RadioDSPRX dsp_rx = radio.GetDSPRX(i, j); dsp_rx.Force = true; dsp_rx.Update = true; dsp_rx.Force = false; } } for(int i=0; i<1; i++) { RadioDSPTX dsp_tx = radio.GetDSPTX(i); dsp_tx.Force = true; dsp_tx.Update = true; dsp_tx.Force = false; } if(this.SetupForm.FlexProfilerInstalled) mnuProfiles.Visible = true; }