Esempio n. 1
0
        private void InitConsole()      // changes yt7pwr
        {
            this.Text = this.Text + GSDR_version + GSDR_revision;
            WinVer = WindowsVersion.WindowsXP;      // default
            OSInfo = System.Environment.OSVersion;
            Mixer.console = this;

            switch (OSInfo.Version.Major)
            {
                case 5:
                    {
                        switch (OSInfo.Version.Minor)
                        {
                            case 0:
                                WinVer = WindowsVersion.Windows2000;
                                break;
                            case 1:
                                WinVer = WindowsVersion.WindowsXP;
                                break;
                        }
                    }
                    break;
                case 6:
                    {
                        switch (OSInfo.Version.Minor)
                        {
                            case 0:
                                WinVer = WindowsVersion.WindowsVista;
                                break;
                            case 1:
                                WinVer = WindowsVersion.Windows7;
                                break;
                            case 2:
                                WinVer = WindowsVersion.Windows8;
                                break;
                            case 3:
                                WinVer = WindowsVersion.Windows8;
                                break;
                            default:
                                WinVer = WindowsVersion.WindowsVista;
                                break;
                        }
                    }
                    break;
                default:
                    WinVer = WindowsVersion.WindowsXP;
                    break;
            }

            booting = true;
            skin = new Skin(this);
            VoiceMsgForm = new VoiceMessages(this);
            g59 = new GenesisG59.G59(Handle);
            g59.booting = true;
            g11 = new GenesisG11.G11(Handle);
            g11.booting = true;
            g6 = new GenesisG6.G6(Handle);
            g6.booting = true;
            g6.SetCallback(GenesisG6CommandCallback);
            g6.SetIQCallback(Audio.G6AudioCallback);
            //g6.SetIQCallback(Audio.G6ADCaudioCallback);
            //g6.SetDACcallback(Audio.G6DACaudioCallback);
            net_device = new GenesisNetBox.NetBox(Handle);
            net_device.booting = true;
            qrp2000 = new QRP2000(this);
            AnalogSignalGauge = new AGauge(this);
            NewVFOSignalGauge = new AGauge(this);

            try
            {
                ServerSocket = new ServerSendData(this);    // error!
                ClientSocket = new ClientRecvData(this);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error1 in network configuration!\nCheck your network settings!\n" +
                    ex.ToString());
            }

            try
            {
                CAT_server_socket = new CAToverEthernetServer(this);
                CAT_client_socket = new CAToverEthernetClient(this);
            }
            catch (Exception ex)
            {
                Debug.Write("Error while creating network CAT!\n" +
                    ex.ToString());
            }

            try
            {
                MultiPSKServer = new MultiPSKEthernetServer(this);
            }
            catch (Exception ex)
            {
                Debug.Write("Error in MultiPSK network configuration!\nCheck your network settings!\n" +
                    ex.ToString());
            }

            UpdateBandStackRegisters();

            Audio.console = this;
            chkDSPNB2.Enabled = true;
            Display_GDI.console = this;     // for GDI+
#if(DirectX)
            try
            {
                Display_DirectX.console = this; // for DirectX
            }
            catch (Exception ex)
            {
                MessageBox.Show("DirectX general fault!\n" + ex.ToString());
            }
#endif

            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 "--debug-enable":
                            debug_enabled = true;
                            debug = new DebugForm(this, true);
                            debug.StartPosition = FormStartPosition.Manual;
                            debug.Show();
                            debug.Focus();
                            Win32.SetWindowPos(debug.Handle.ToInt32(),
                                -1, this.Left, this.Top, debug.Width, debug.Height, 0);
                            this.Text = this.Text + " Debug enabled!";
                            break;
                    }
                }
            }

            losc_hover_digit = -1;
            vfoA_hover_digit = -1;
            vfoB_hover_digit = -1;
            run_setup_wizard = true;

            // get culture specific decimal separator
            separator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;

            last_band = "";						// initialize bandstack

            wheel_tune_list = new double[15];		// 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] = 0.250000;
            wheel_tune_list[12] = 0.500000;
            wheel_tune_list[13] = 1.000000;
            wheel_tune_list[14] = 10.000000;
            wheel_tune_index = 6;
            wheel_tune_index_subRX = 6;

            meter_text_history = new float[multimeter_text_peak_samples];
            current_meter_data = -200.0f;
            this.ActiveControl = chkPower;		// Power has focus initially

            Display_GDI.Target = picDisplay;
            Display_GDI.Init();					// Initialize Display variables
            InitDisplayModes();					// Initialize Display Modes
            InitAGCModes();						// Initialize AGC Modes
            InitMultiMeterModes();				// Initialize MultiMeter Modes

            ProcessSampleThreadController[] pstc = new ProcessSampleThreadController[1];
            audio_process_thread = new Thread[1];

            for (uint proc_thread = 0; proc_thread < 1; 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();
            }

            siolisten = new SIOListenerII(this);

            Keyer = new CWKeyer2(this);			// create new Keyer
            CWXForm = new CWX(this);            // create CWX form
            CWXForm.stopButton_Click(null, null);
            EQForm = new EQForm();
            XTRVForm = new XTRV(this);
            UpdateBandStackRegisters();

            InitFilterPresets(ref filter_presets, ref filter_presets_subRX);					// Initialize filter values

            SI570 = new ExtIO_si570_usb(this);
            RTL_SDR = new ExtIO_RTL(this);

            ir_remote = new WinLIRC(this);

            rx_image_real_table = new float[(int)Band.LAST + 1];
            rx_image_imag_table = new float[(int)Band.LAST + 1];
            tx_image_phase_table = new float[(int)Band.LAST + 1];
            tx_image_gain_table = new float[(int)Band.LAST + 1];
            rx_image_phase_table = new float[(int)Band.LAST + 1];
            rx_image_gain_table = new float[(int)Band.LAST + 1];

            SetupForm = new Setup(this);		// create Setup form
            SetupForm.StartPosition = FormStartPosition.Manual;

            SetupForm.GetTxProfiles();
            UpdateTXProfile();

            WaveForm = new WaveControl(this);	// create Wave form
            WaveForm.StartPosition = FormStartPosition.Manual;

            CurrentAGCMode = AGCMode.MED;				// Initialize front panel controls
            vfob_dsp_mode = DSPMode.LSB;
            vfob_filter = Filter.F3;
            comboDisplayMode.Text = "Panafall";
            comboMeterRXMode.SelectedIndex = 0;
            ptbPWR.Value = 10;

            CurrentDSPMode = DSPMode.CWU;
            CurrentDSPModeSubRX = DSPMode.CWU;
            old_dsp_mode = DSPMode.CWU;
            old_dsp_mode_subRX = DSPMode.CWU;
            Splash.SetStatus("Restore Console state...");
            GetState();							// recall saved state

            if (current_dsp_mode == DSPMode.FIRST || current_dsp_mode == DSPMode.LAST)
                radModeLSB.Checked = true;
            if (current_dsp_mode_subRX == DSPMode.FIRST || current_dsp_mode == DSPMode.LAST)
                radSUBRxModeLSB.Checked = true;
            if (current_filter == Filter.FIRST || current_filter == Filter.LAST ||
                (current_filter == Filter.NONE && current_dsp_mode != DSPMode.DRM && current_dsp_mode != DSPMode.SPEC))
                radFilter3.Checked = true;
            if (current_filter_subRX == Filter.FIRST || current_filter_subRX == Filter.LAST ||
                (current_filter_subRX == Filter.NONE && current_dsp_mode_subRX != DSPMode.DRM &&
                current_dsp_mode_subRX != DSPMode.SPEC))
                radSubRXFilter3.Checked = true;

            booting = false;
            EQForm.Init();                  // set EQU parameter
            SetupForm.DSPBufferSize = 0;    // force refresh
            VFOAFreq = vfoAFreq;
            VFOBFreq = vfoBFreq;
            LOSCFreq = loscFreq;
            PWR_ValueChanged();
            udMIC_ValueChanged(this, EventArgs.Empty);
            tbRX0Gain_Scroll(this, EventArgs.Empty);
            tbRX1Gain_Scroll(this, EventArgs.Empty);
            tbPanMainRX_Scroll(this, EventArgs.Empty);
            tbPanSubRX_Scroll(this, EventArgs.Empty);
            ptbPanMainRX.Value = pan_main_rx;
            ptbPanSubRX.Value = pan_sub_rx;
            ptbDisplayZoom.Value = 4;
            CalcDisplayFreq();

            wheel_tune_index--;					// Setup wheel tuning
            wheel_tune_index_subRX--;
            ChangeWheelTuneLeft();
            ChangeWheelTuneLeftSubRX();

            SetupForm.initCATandPTTprops();   // wjt added -- get console props setup for cat and ptt 

            if (comboMeterTXMode.Items.Count > 0 && comboMeterTXMode.SelectedIndex < 0)
                comboMeterTXMode.SelectedIndex = 0;
            chkMOX.Enabled = false;

            CheckSkins();

#if(DirectX)
            if (CurrentDisplayEngine == DisplayEngine.DIRECT_X)
            {
                CurrentDisplayEngine = current_display_engine;
            }
#endif

            // yt7pwr
            if (!skins_enabled)
            {
                radDisplayZoom1x.BackColor = button_selected_color;
                radDisplayZoom2x.BackColor = SystemColors.Control;
                radDisplayZoom4x.BackColor = SystemColors.Control;
                radDisplayZoom8x.BackColor = SystemColors.Control;
            }
            else
                radDisplayZoom1x.Checked = true;

            Splash.SetStatus("Initializing Genesis radio communication");	// Set progress point
            g59.booting = false;
            g11.booting = false;
            g6.booting = false;
            net_device.booting = false;
            g59.si570_i2c_address = (int)SetupForm.udSi570_address.Value;
            g59.si570_fxtal = (int)SetupForm.udSi570_xtal1.Value;
            g59.HSDiv = (int)SetupForm.udSi570_divisor.Value;
            g11.si570_i2c_address = (int)SetupForm.udSi570_address.Value;
            g11.si570_fxtal = (int)SetupForm.udSi570_xtal1.Value;
            g11.HSDiv = (int)SetupForm.udSi570_divisor.Value;
            g6.si570_i2c_address = (int)SetupForm.udSi570_address.Value;
            g6.si570_fxtal = (int)SetupForm.udSi570_xtal1.Value;
            g6.HSDiv = (int)SetupForm.udSi570_divisor.Value;
            net_device.si570_i2c_address = (int)SetupForm.udSi570_address.Value;
            net_device.si570_fxtal = (int)SetupForm.udSi570_xtal1.Value;
            net_device.si570_div = (int)SetupForm.udSi570_divisor.Value;

            if (CurrentModel == Model.GENESIS_G59USB)
            {
                bool conn = false;
                g59.USB_Serial = SetupForm.USB_serial_No;
                conn = g59.Connect();

                if (conn)
                {
                    G59Init();
                    btnUSB.BackColor = Color.Green;
                }
                else
                {
                    btnUSB.BackColor = Color.Red;
                }
            }
            else if (CurrentModel == Model.GENESIS_G11)
            {
                bool conn = false;
                g11.USB_Serial = SetupForm.USB_serial_No;
                conn = g11.Connect();

                if (conn)
                {
                    G11Init();
                    btnUSB.BackColor = Color.Green;
                }
                else
                {
                    btnUSB.BackColor = Color.Red;
                }
            }
            else if (CurrentModel == Model.GENESIS_G6)
            {
                bool conn = false;
                g6.USB_Serial = SetupForm.USB_serial_No;
                conn = g6.Connect();

                if (conn)
                {
                    G11Init();
                    btnUSB.BackColor = Color.Green;
                }
                else
                {
                    btnUSB.BackColor = Color.Red;
                }
            }
            else if (current_model == Model.QRP2000)
            {
                ReInit_USB();
            }
            else if (current_model == Model.RTL_SDR)
            {
                bool result = RTL_SDR.InitUSB();

                if (result)
                {
                    btnUSB.Visible = true;
                    btnUSB.BackColor = Color.Green;
                }
                else
                {
                    btnUSB.BackColor = Color.Red;
                }
            }
            else if (SetupForm.chkGeneralUSBPresent.Checked)
            {
                bool result = SI570.Init_USB();

                if (result)
                {
                    btnUSB.Visible = true;
                    btnUSB.BackColor = Color.Green;
                }
                else
                {
                    btnUSB.BackColor = Color.Red;
                }
            }

            txtMemory_fill();
            txtFMmemory_fill();

            SetTXOscFreqs(false, false);

            btnG3020_X1.Text = G3020Xtal1.ToString();
            btnG3020_X2.Text = G3020Xtal2.ToString();
            btnG3020_X3.Text = G3020Xtal3.ToString();
            btnG3020_X4.Text = G3020Xtal4.ToString();
            btnG160_X1.Text = G160Xtal1.ToString();
            btnG160_X2.Text = G160Xtal2.ToString();
            btnG80_X1.Text = G80Xtal1.ToString();
            btnG80_X2.Text = G80Xtal2.ToString();
            btnG80_X3.Text = G80Xtal3.ToString();
            btnG80_X4.Text = G80Xtal4.ToString();
            btnG40_X1.Text = G40Xtal1.ToString();
            btnG137_X1.Text = G137Xtal1.ToString();
            btnG500_X1.Text = G500Xtal1.ToString();

            txtVFOAMSD.Font = vfo_large_font;
            txtVFOBMSD.Font = vfo_large_font;
            txtLOSCMSD.Font = (vfo_large_font);
            txtVFOAFreq.Font = vfo_large_font;
            txtVFOBFreq.Font = vfo_large_font;
            txtLOSCFreq.Font = vfo_large_font;
            txtVFOALSD.Font = vfo_small_font;
            txtVFOBLSD.Font = vfo_small_font;
            txtLOSCLSD.Font = vfo_small_font;
            NewVFOLargeFont = new_vfo_large_font;     // refresh
            NewVFOSmallFont = new_vfo_small_font;
            VFOLargeFont = vfo_large_font;
            VFOSmallFont = vfo_small_font;
            network_event = new AutoResetEvent(false);
            sMeterDigital2.MeterForeColor = vfo_text_dark_color;
            sMeterDigital1.MeterForeColor = vfo_text_dark_color;

            try
            {
                eventWatcher = new ManagementEventWatcher("root\\wmi", "SELECT * FROM MSNdis_StatusMediaDisconnect");
                eventWatcher.EventArrived += new
                EventArrivedEventHandler(eventWatcher_EventArrived);
                eventWatcher.Start();
            }
            catch (Exception ex)
            {
                //MessageBox.Show("Error starting Network watcher!\nCheck you network settings!\n" +
                    //ex.ToString());
            }

            if (current_model == Model.GENESIS_G59NET)
                NetworkThreadRunning = true;

            SetupForm.StartEthernetCATServer();       // try ethernet CAT 
            SetupForm.StartEthernetCATClient();
            SetupForm.StartMultiPSKServer();

            InitSMeterModes();

            if (File.Exists(SetupForm.txtLoopDll.Text + "\\loop.dll") &&
                SetupForm.chkAudioEnableVAC.Checked &&
                SetupForm.comboAudioInputVAC.Text == "loop.dll" &&
                SetupForm.comboAudioOutputVAC.Text == "loop.dll")
            {
                loopDLL = new LoopDLL(this);
                Audio.loopDLL_enabled = true;
            }
            else
                Audio.loopDLL_enabled = false;

            chkVFOSplit.Enabled = false;

            switch (current_model)
            {
                case Model.GENESIS_G59NET:
                case Model.GENESIS_G59USB:
                    if (SetupForm.chkG59RX2.Checked)
                        lblRX2.BackColor = Color.Red;
                    else
                        lblRX2.BackColor = NewBackgroundVFOColor;
                    break;

                case Model.GENESIS_G11:
                    if (SetupForm.chkG11RX2.Checked)
                        lblRX2.BackColor = Color.Red;
                    else
                        lblRX2.BackColor = NewBackgroundVFOColor;
                    break;
            }

            EQForm.RestoreSettings();
            band_button_height = radMoreBands.Height;
            band_button_width = radMoreBands.Width;
            AF_ValueChanged();
            SetupForm.MultimeterCalOffset = multimeter_cal_offset;
            SetupForm.DisplayCalOffset = display_cal_offset;
            FilterUpdate();
            PWR_ValueChanged();

            if (radMoreBands.Checked)
            {
                radMoreBands_Click(this, EventArgs.Empty);
            }

            IR_Remote_enabled = ir_remote_enabled;      // try WinLIRC
            SetTXOscFreqs(true, true);
            SetTXOscFreqs(false, true);

            SetupForm.ForceAllEvents();
        }
Esempio n. 2
0
        public bool InitNetworkDevice()     // yt7pwr
        {
            if (!booting)
            {
                if (current_model == Model.GENESIS_G59NET)
                {
                    string host = "192.168.10.166";
                    int HostPort = 14345;
                    int RemotePort = 14346;
                    btnNetwork.BackColor = Color.Red;
                    net_device.Connected = false;

                    if (File.Exists("NetworkControl.dll"))
                    {
                        if (net_device == null)
                        {
                            net_device = new NetBox(Handle);
                        }

                        net_device.Connect(host, HostPort, RemotePort);
                        Thread.Sleep(5000);
                        if (net_device.Connected)
                        {
                            btnNetwork.BackColor = Color.Green;
                            return true;
                        }
                        else
                        {
                            btnNetwork.BackColor = Color.Red;
                            return false;
                        }
                    }
                    else
                    {
                        net_device = null;
                        return false;
                    }
                }
            }
            return false;
        }