Beispiel #1
0
 static void Main()
 {
     Application.ThreadException += Application_ThreadException;
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     Forms.Main = new Main();
     UserInterfaceFactory.GetUiSystem().DisplayMainForm(Forms.Main);
 }
Beispiel #2
0
        public void ShowSiteProperties()
        {
            DialogSitePropertiesViewModel vm = new DialogSitePropertiesViewModel();

            UserInterfaceFactory.GetUiSystem().DisplayForm(AvailableForms.SiteProperties, vm);
            if (vm.IsCallsignAndGridSquareValid() == false)
            {
                UserInterfaceFactory.GetUiSystem().DisplayModalError(
                    "Paclink must have a valid configuration to continue...", "Error");
                Environment.Exit(-1);
            }
        }
Beispiel #3
0
        public void FormLoading()
        {
            Globals.strProductName       = typeof(Main).Assembly.GetName().Name; // TBD: might need to use different property to retrieve this
            Globals.strProductVersion    = typeof(Main).Assembly.GetName().Version.ToString();
            Globals.blnRunningInTestMode = false;

            var startupPath = typeof(Main).Assembly.Location;

            if (startupPath.IndexOf("Source") == -1)
            {
                Globals.SiteBinDirectory = startupPath + @"\";
                int intDirPtr = Globals.SiteBinDirectory.ToLower().IndexOf(@"bin\");
                if (intDirPtr != -1)
                {
                    Globals.SiteRootDirectory = Globals.SiteBinDirectory.Substring(0, intDirPtr);
                }
            }
            else
            {
                Globals.blnRunningInTestMode = true;
                string strProgramFiles = Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
                Globals.SiteRootDirectory = Path.Combine(strProgramFiles, @"Paclink\");
                Globals.SiteBinDirectory  = Globals.SiteRootDirectory + @"Bin\";
            }

            Globals.SiteDataDirectory = Globals.SiteRootDirectory + @"Data\";
            if (Globals.SiteBinDirectory.ToLower().IndexOf("bin") == -1)
            {
                UserInterfaceFactory.GetUiSystem().DisplayModalError(
                    "Illegal Paclink directory structure...Paclink.exe " + @"Must be in the \Bin subdirectory as installed!",
                    "Directory Error");
                Environment.Exit(0);
            }

            Globals.Settings.Save("Main", "Program Version", Globals.strProductVersion);
            Globals.blnUseRMSRelay        = Globals.Settings.Get("Properties", "Use RMS Relay", false);
            Globals.strRMSRelayIPPath     = Globals.Settings.Get("Properties", "Local IP Path", "");
            Globals.intRMSRelayPort       = Globals.Settings.Get("Properties", "RMS Relay Port", 8772);
            Globals.blnUseExternalDNS     = Globals.Settings.Get("Properties", "Use External DNS", false);
            Globals.blnForceHFRouting     = Globals.Settings.Get("Properties", "Force radio-only", false);
            Globals.blnEnablAutoforward   = Globals.Settings.Get("Properties", "Enable Autoforward", false);
            Globals.blnPactorDialogResume = Globals.Settings.Get("Properties", "Pactor Dialog Resume", true);

            Globals.InitializeLocalIPAddresses();
        }
Beispiel #4
0
        public void OpenPOP3AndSMTPPorts()
        {
            try
            {
                // Open SMTP/POP3 ports...
                if (Globals.objSMTPPort != null)
                {
                    Globals.objSMTPPort.LocalPort = Globals.intSMTPPortNumber;
                    Globals.objSMTPPort.Listen(true);
                }

                if (Globals.objPOP3Port != null)
                {
                    Globals.objPOP3Port.LocalPort = Globals.intPOP3PortNumber;
                    Globals.objPOP3Port.Listen(true);
                }
            }
            catch (Exception ex)
            {
                UserInterfaceFactory.GetUiSystem().DisplayModalError("Error restarting POP3 and SMTP Ports: " + ex.Message, "Error");
            }
        }
Beispiel #5
0
 public void ShowPollingInterval()
 {
     UserInterfaceFactory.GetUiSystem().DisplayForm(AvailableForms.Polling, Globals.PollingData);
 }
Beispiel #6
0
 public void ShowAGWEngine()
 {
     UserInterfaceFactory.GetUiSystem().DisplayForm(AvailableForms.AgwEngine, new DialogAgwEngineViewModel());
 }
        public PrimaryThread()
        {
            //
            // Initializes the program on startup...
            //
            int intIndex = Globals.Settings.Get("Properties", "Default Local IP Address Index", 0);

            if (intIndex < 0)
            {
                intIndex = 0;
            }
            if (Globals.strLocalIPAddresses.Length - 1 >= intIndex)
            {
                Globals.strLocalIPAddress = Globals.strLocalIPAddresses[intIndex];
            }

            Globals.SiteCallsign      = Globals.Settings.Get("Properties", "Site Callsign", "");
            Globals.SiteGridSquare    = Globals.Settings.Get("Properties", "Grid Square", "");
            Globals.intSMTPPortNumber = Globals.Settings.Get("Properties", "SMTP Port Number", 25);
            Globals.intPOP3PortNumber = Globals.Settings.Get("Properties", "POP3 Port Number", 110);
            Globals.blnLAN            = Globals.Settings.Get("Properties", "LAN Connection", true);
            Globals.blnEnableRadar    = Globals.Settings.Get("Properties", "Enable Radar", false);
            Globals.strServiceCodes   = Globals.Settings.Get("Properties", "ServiceCodes", "");
            if (string.IsNullOrEmpty(Globals.strServiceCodes))
            {
                if (Globals.IsMARSCallsign(Globals.SiteCallsign))
                {
                    Globals.strServiceCodes = Globals.strMARSServiceCode;
                }
                else
                {
                    Globals.strServiceCodes = Globals.strHamServiceCode;
                }

                Globals.Settings.Save("Properties", "ServiceCodes", Globals.strServiceCodes);
            }
            string strSitePassword = Globals.Settings.Get("Properties", "Site Password", "");

            Globals.POP3Password = Globals.Settings.Get("Properties", "EMail Password", strSitePassword);
            Globals.Settings.Save("Properties", "EMail Password", Globals.POP3Password);
            Globals.Settings.Save("Properties", "Site Password", "");
            Globals.SecureLoginPassword = Globals.Settings.Get("Properties", "Secure Login Password", "");
            Channels.FillChannelCollection();
            try
            {
                Globals.PollingData.LoadParameters();
            }
            catch (Exception ex)
            {
                _log.Error("[Main.Startup C] " + ex.Message);
            }

            try
            {
                // Open the properties dialog box if no initial configuration has been set...
                DialogSitePropertiesViewModel vm = new DialogSitePropertiesViewModel();
                if (vm.IsCallsignAndGridSquareValid() == false)
                {
                    UserInterfaceFactory.GetUiSystem().DisplayForm(AvailableForms.SiteProperties, vm);
                    if (vm.IsCallsignAndGridSquareValid() == false)
                    {
                        MessageBox.Show("Paclink must have a valid initial configuration to continue...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        MyApplication.Forms.Main.CloseWindow();
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                _log.Error("[Main.Startup F] " + ex.Message);
            }

            try
            {
                Accounts.RefreshAccountsList();
            }
            catch (Exception ex)
            {
                _log.Error("[Main.Startup G] " + ex.Message);
            }

            try
            {
                MyApplication.Forms.Main.UpdateChannelList();
            }
            catch (Exception ex)
            {
                _log.Error("[Main.Startup G] " + ex.Message);
            }

            MyApplication.Forms.Main.UpdateSiteCallsign(Globals.SiteCallsign);
            if (Globals.UseRMSRelay())
            {
                Globals.queChannelDisplay.Enqueue("G*** Paclink is set to connect to RMS Relay.");
            }

            if (Globals.blnForceHFRouting)
            {
                Globals.queChannelDisplay.Enqueue("G*** Paclink is set to send messages via radio-only forwarding.");
            }

            Globals.queChannelDisplay.Enqueue("G*** Paclink " + Application.ProductVersion + " ready...");
            MyApplication.Forms.Main.EnableMainWindowInterface();
            if (thrSMTP != null)
            {
                _abortSMTPThread = true;
                thrSMTP.Join();
                thrSMTP = null;
            }

            thrSMTP      = new Thread(SMTPThread);
            thrSMTP.Name = "SMTP";
            thrSMTP.Start();
            if (thrChannel != null)
            {
                _abortChannelThread = true;
                thrChannel.Join();
                thrChannel = null;
            }

            thrChannel      = new Thread(ChannelThread);
            thrChannel.Name = "Channel";
            thrChannel.Start();
        }