Пример #1
0
 public void Connect()
 {
     if (SimConnectHelpers.IsLocalRunning)
     {
         try
         {
             log.Info("Opening SimConnect connection.");
             sc.Open(appName);
         }
         catch (SimConnect.SimConnectException ex)
         {
             log.Warning(string.Format("Local connection failed.\r\n{0}", ex.ToString()));
             try
             {
                 bool ipv6support = System.Net.Sockets.Socket.OSSupportsIPv6;
                 log.Info("Opening SimConnect connection " + (ipv6support ? "(IPv6)." : "(IPv4)."));
                 int scPort = ipv6support ? SimConnectHelpers.LookupDefaultPortNumber("SimConnect_Port_IPv6") : SimConnectHelpers.LookupDefaultPortNumber("SimConnect_Port_IPv4");
                 if (scPort == 0)
                 {
                     throw new SimConnect.SimConnectException("Invalid port.");
                 }
                 sc.Open(appName, null, scPort, ipv6support);
             }
             catch (SimConnect.SimConnectException innerEx)
             {
                 log.Error(string.Format("Local connection failed.\r\n{0}", innerEx.ToString()));
             }
         }
     }
     else
     {
         log.Warning("Flight Simulator must be running in order to connect to SimConnect.");
     }
 }
Пример #2
0
        //-----------------------------------------------------------------------------

        private void OpenConnection()
        {
            if (IsLocalRunning)
            {
                try
                {
                    Log.Instance.Info("Attempting SimConnect connection.");
                    Client.Open(ApplicationName);
                }
                catch (SimConnect.SimConnectException ex)
                {
                    Log.Instance.Warning(string.Format("Local connection failed.\r\n{0}", ex.ToString()));
                    try
                    {
                        bool ipv6support = System.Net.Sockets.Socket.OSSupportsIPv6;
                        Log.Instance.Info($"Attempting SimConnect connection ({(ipv6support ? "IPv6" : "IPv4")}).");
                        int scPort = LookupDefaultPortNumber(ipv6support ? "SimConnect_Port_IPv6" : "SimConnect_Port_IPv4");
                        if (scPort == 0)
                        {
                            throw new SimConnect.SimConnectException("Invalid port.");
                        }
                        Client.Open(ApplicationName, null, scPort, ipv6support);
                    }
                    catch (SimConnect.SimConnectException innerEx)
                    {
                        Log.Instance.Error(string.Format("Local connection failed.\r\n{0}", innerEx.ToString()));
                    }
                }
            }
            else
            {
                Log.Instance.Warning("Flight Simulator must be running in order to connect to SimConnect.");
            }
        }
Пример #3
0
        private void SimConnectConnect(object sender, RoutedEventArgs e)
        {
            bool   bConnected = false;
            string strAppName = "SimConnectTestWPF";

            if (sender == ConnectLocal)
            {
                try
                {
                    sc.Open(strAppName);
                }
                catch (SimConnect.SimConnectException)
                {
                    MessageBox.Show(this, "Local connection failed", strAppName, MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                bConnected = true;
            }
            else if (sender == ConnectCustom)
            {
                SimConnectConfigure scConfig = new SimConnectConfigure();
                scConfig.NetworkMode   = LastNetworkMode;
                scConfig.NetworkServer = LastNetworkServer;
                scConfig.NetworkPort   = LastNetworkPort;
                scConfig.ShowDialog();
                if (scConfig.OKPressed)
                {
                    try
                    {
                        if (scConfig.NetworkMode == SimConnectConfigure.NetworkingMode.Pipe)
                        {
                            sc.Open(strAppName, scConfig.NetworkServer, scConfig.NetworkPort);
                        }
                        else if (scConfig.NetworkMode == SimConnectConfigure.NetworkingMode.IPv4)
                        {
                            sc.Open(strAppName, scConfig.NetworkServer, scConfig.NetworkPortInt, false);
                        }
                        else
                        {
                            sc.Open(strAppName, scConfig.NetworkServer, scConfig.NetworkPortInt, true);
                        }
                    }
                    catch (SimConnect.SimConnectException)
                    {
                        MessageBox.Show(this, "Remote connection failed", strAppName, MessageBoxButton.OK, MessageBoxImage.Error);
                        return;
                    }
                    LastNetworkMode   = scConfig.NetworkMode;
                    LastNetworkServer = scConfig.NetworkServer;
                    LastNetworkPort   = scConfig.NetworkPort;
                }
                bConnected = scConfig.OKPressed;
            }
            if (bConnected)
            {
                Connect.Visibility    = Visibility.Collapsed;
                Disconnect.Visibility = Visibility.Visible;
            }
        }
Пример #4
0
 private void menuConnectLocal_Click(object sender, EventArgs e)
 {
     try
     {
         sc.Open(strAppName);
     }
     catch (SimConnect.SimConnectException)
     {
         MessageBox.Show(this, "Local connection failed", strAppName, MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
     menuConnect.Visible    = false;
     menuDisconnect.Visible = true;
 }
Пример #5
0
 public void Connect()
 {
     if (SimConnectHelpers.IsLocalRunning)
     {
         try {
             sc.Open(appName);
         }
         catch (SimConnect.SimConnectException) {
             bool ipv6support = System.Net.Sockets.Socket.OSSupportsIPv6;
             int  scPort      = ipv6support ? SimConnectHelpers.LookupDefaultPortNumber("SimConnect_Port_IPv6") : SimConnectHelpers.LookupDefaultPortNumber("SimConnect_Port_IPv4");
             if (scPort == 0)
             {
                 throw new SimConnect.SimConnectException("Invalid port.");
             }
             sc.Open(appName, null, scPort, ipv6support);
         }
     }
 }
Пример #6
0
        private void connectLocalToolStripMenuItem_Click(object sender, EventArgs e)
        {
            sc             = new SimConnect(this);
            sc.OnRecvOpen += new SimConnect.RecvOpenEventHandler(sc_OnRecvOpen);

            sc.Open("WinFormMap");

            this.connectToolStripMenuItem.Visible    = false;
            this.disconnectToolStripMenuItem.Visible = true;
        }
Пример #7
0
        private void SimConnectConnect(object sender, RoutedEventArgs e)
        {
            string strAppName = "SimConnectTestSilverLight";

            sc = new SimConnect(this.Dispatcher);

            sc.OnRecvOpen                 += new SimConnect.RecvOpenEventHandler(sc_OnRecvOpen);
            sc.OnRecvException            += new SimConnect.RecvExceptionEventHandler(sc_OnRecvException);
            sc.OnRecvQuit                 += new SimConnect.RecvQuitEventHandler(sc_OnRecvQuit);
            sc.OnRecvEventObjectAddremove += new SimConnect.RecvEventObjectAddremoveEventHandler(sc_OnRecvEventObjectAddremove);
            sc.OnRecvSimobjectDataBytype  += new SimConnect.RecvSimobjectDataBytypeEventHandler(sc_OnRecvSimobjectDataBytype);

            sc.Open(strAppName, "localhost", 4504);

            Connect.Visibility    = Visibility.Collapsed;
            Disconnect.Visibility = Visibility.Visible;
        }
Пример #8
0
        private void connectCustomToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SimConnectConfigure scConfig = new SimConnectConfigure(LastServerName, LastServerPort);

            if (scConfig.ShowDialog(this) == DialogResult.OK)
            {
                sc             = new SimConnect(this);
                sc.OnRecvOpen += new SimConnect.RecvOpenEventHandler(sc_OnRecvOpen);

                sc.Open("WinFormMap", scConfig.ServerName, scConfig.ServerPortInt);

                LastServerName = scConfig.ServerName;
                LastServerPort = scConfig.ServerPort;

                this.connectToolStripMenuItem.Visible    = false;
                this.disconnectToolStripMenuItem.Visible = true;
            }
        }
Пример #9
0
 public void ConnectLocal()
 {
     sc.Open("ClientDataClient");
 }