Пример #1
0
        private void FalconSupervisor_Load(object sender, EventArgs e)
        {
            Instance = this;

            lb_PowerCentral.ForeColor = Color.Black;
            lb_PowerCentral.BackColor = Color.White;
            lb_PowerCentral.Text      = "kN";
        }
Пример #2
0
        public Falcon9Event(Vessel vessel, Connection connectionLink, Connection connectionFirstStageLink)
        {
            connection           = connectionLink;
            connectionFirstStage = connectionFirstStageLink;
            firstStage           = new F9FirstStage(vessel, RocketBody.F9_FIRST_STAGE);
            var Falcon9 = firstStage;

            Console.WriteLine("Second Stage accisition signal.");

            Console.WriteLine("First Stage accisition signal.");

            Console.WriteLine("Loading...");
            //Task.Run(LoadSupervisor);
            //while (FalconSupervisor.Instance == null) { Thread.Sleep(1000); }
            Console.WriteLine("Loaded !");

            Task.Run(() => {
                while (true)
                {
                    FalconSupervisor.Execute(() =>
                    {
                        try
                        {
                            #region FirstStageThrust
                            FalconSupervisor.Instance.lb_PowerCentral.Text = Math.Round(firstStage.firstStage.Parts.WithTag("MainCentral")[0].Engine.Thrust).ToString() + "kN";
                            FalconSupervisor.Instance.lb_PowerSecond1.Text = Math.Round(firstStage.firstStage.Parts.WithTag("MainSecond")[1].Engine.Thrust).ToString() + "kN";
                            FalconSupervisor.Instance.lb_PowerSecond0.Text = Math.Round(firstStage.firstStage.Parts.WithTag("MainSecond")[0].Engine.Thrust).ToString() + "kN";
                            FalconSupervisor.Instance.lb_PowerMain1.Text   = Math.Round(firstStage.firstStage.Parts.WithTag("Main")[1].Engine.Thrust).ToString() + "kN";
                            FalconSupervisor.Instance.lb_PowerMain2.Text   = Math.Round(firstStage.firstStage.Parts.WithTag("Main")[2].Engine.Thrust).ToString() + "kN";
                            FalconSupervisor.Instance.lb_PowerMain3.Text   = Math.Round(firstStage.firstStage.Parts.WithTag("Main")[3].Engine.Thrust).ToString() + "kN";
                            FalconSupervisor.Instance.lb_PowerMain4.Text   = Math.Round(firstStage.firstStage.Parts.WithTag("Main")[4].Engine.Thrust).ToString() + "kN";
                            FalconSupervisor.Instance.lb_PowerMain5.Text   = Math.Round(firstStage.firstStage.Parts.WithTag("Main")[5].Engine.Thrust).ToString() + "kN";
                            FalconSupervisor.Instance.lb_PowerMain0.Text   = Math.Round(firstStage.firstStage.Parts.WithTag("Main")[0].Engine.Thrust).ToString() + "kN";
                            #endregion

                            #region CenterEngine
                            if (firstStage.firstStage.Parts.WithTag("MainCentral")[0].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("MainCentral")[0].Engine.Thrust < 700000)
                            {
                                FalconSupervisor.Instance.pb_CenterEngine.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Yellow.png");
                            }
                            else if (firstStage.firstStage.Parts.WithTag("MainCentral")[0].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("MainCentral")[0].Engine.Thrust >= 700000)
                            {
                                FalconSupervisor.Instance.pb_CenterEngine.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Green.png");
                            }
                            else
                            {
                                FalconSupervisor.Instance.pb_CenterEngine.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Red.png");
                            }
                            #endregion

                            #region SecondsEngines
                            if (firstStage.firstStage.Parts.WithTag("MainSecond")[0].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("MainSecond")[0].Engine.Thrust < 700000)
                            {
                                FalconSupervisor.Instance.pb_Second0.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Yellow.png");
                            }
                            else if (firstStage.firstStage.Parts.WithTag("MainSecond")[0].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("MainSecond")[0].Engine.Thrust >= 700000)
                            {
                                FalconSupervisor.Instance.pb_Second0.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Green.png");
                            }
                            else
                            {
                                FalconSupervisor.Instance.pb_Second0.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Red.png");
                            }

                            if (firstStage.firstStage.Parts.WithTag("MainSecond")[1].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("MainSecond")[1].Engine.Thrust < 700000)
                            {
                                FalconSupervisor.Instance.pb_Second1.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Yellow.png");
                            }
                            else if (firstStage.firstStage.Parts.WithTag("MainSecond")[1].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("MainSecond")[1].Engine.Thrust >= 700000)
                            {
                                FalconSupervisor.Instance.pb_Second1.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Green.png");
                            }
                            else
                            {
                                FalconSupervisor.Instance.pb_Second1.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Red.png");
                            }
                            #endregion

                            #region MainEngines
                            if (firstStage.firstStage.Parts.WithTag("Main")[0].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[0].Engine.Thrust < 700000)
                            {
                                FalconSupervisor.Instance.pb_Main0.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Yellow.png");
                            }
                            else if (firstStage.firstStage.Parts.WithTag("Main")[0].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[0].Engine.Thrust >= 700000)
                            {
                                FalconSupervisor.Instance.pb_Main0.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Green.png");
                            }
                            else
                            {
                                FalconSupervisor.Instance.pb_Main0.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Red.png");
                            }

                            if (firstStage.firstStage.Parts.WithTag("Main")[1].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[1].Engine.Thrust < 700000)
                            {
                                FalconSupervisor.Instance.pb_Main1.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Yellow.png");
                            }
                            else if (firstStage.firstStage.Parts.WithTag("Main")[1].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[1].Engine.Thrust >= 700000)
                            {
                                FalconSupervisor.Instance.pb_Main1.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Green.png");
                            }
                            else
                            {
                                FalconSupervisor.Instance.pb_Main1.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Red.png");
                            }

                            if (firstStage.firstStage.Parts.WithTag("Main")[2].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[2].Engine.Thrust < 700000)
                            {
                                FalconSupervisor.Instance.pb_Main2.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Yellow.png");
                            }
                            else if (firstStage.firstStage.Parts.WithTag("Main")[2].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[2].Engine.Thrust >= 700000)
                            {
                                FalconSupervisor.Instance.pb_Main2.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Green.png");
                            }
                            else
                            {
                                FalconSupervisor.Instance.pb_Main2.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Red.png");
                            }

                            if (firstStage.firstStage.Parts.WithTag("Main")[3].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[3].Engine.Thrust < 700000)
                            {
                                FalconSupervisor.Instance.pb_Main3.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Yellow.png");
                            }
                            else if (firstStage.firstStage.Parts.WithTag("Main")[3].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[3].Engine.Thrust >= 700000)
                            {
                                FalconSupervisor.Instance.pb_Main3.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Green.png");
                            }
                            else
                            {
                                FalconSupervisor.Instance.pb_Main3.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Red.png");
                            }

                            if (firstStage.firstStage.Parts.WithTag("Main")[4].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[4].Engine.Thrust < 700000)
                            {
                                FalconSupervisor.Instance.pb_Main4.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Yellow.png");
                            }
                            else if (firstStage.firstStage.Parts.WithTag("Main")[4].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[4].Engine.Thrust >= 700000)
                            {
                                FalconSupervisor.Instance.pb_Main4.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Green.png");
                            }
                            else
                            {
                                FalconSupervisor.Instance.pb_Main4.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Red.png");
                            }

                            if (firstStage.firstStage.Parts.WithTag("Main")[5].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[5].Engine.Thrust < 700000)
                            {
                                FalconSupervisor.Instance.pb_Main5.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Yellow.png");
                            }
                            else if (firstStage.firstStage.Parts.WithTag("Main")[5].Engine.Thrust > 0 && firstStage.firstStage.Parts.WithTag("Main")[5].Engine.Thrust >= 700000)
                            {
                                FalconSupervisor.Instance.pb_Main5.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Green.png");
                            }
                            else
                            {
                                FalconSupervisor.Instance.pb_Main5.Image = Image.FromFile("C:/Users/Utilisateur/Documents/SpaceX Computer/SpaceXComputer/SpaceXComputer/SpaceX/Falcon 9/Engine-Red.png");
                            }
                            #endregion



                            FalconSupervisor.Instance.lb_Debug.Text = "Speed : " + Math.Round(firstStage.firstStage.Flight(firstStage.firstStage.SurfaceReferenceFrame).TrueAirSpeed).ToString();
                        }
                        catch
                        {
                        }
                    });

                    Thread.Sleep(200);
                }
            });

            //Thread.Sleep(5000);

            foreach (Vessel vesselTarget in connection.SpaceCenter().Vessels)
            {
                if (Startup.GetInstance().GetFlightInfo().getDragon() == false)
                {
                    if (vesselTarget.Name.Contains("Dragon SpX-C2") && vesselTarget.Type.Equals(VesselType.Probe))
                    {
                        firstStage.firstStage      = vesselTarget;
                        firstStage.firstStage.Name = "Falcon 9 Full";
                        Console.WriteLine("FALCON 9 : Falcon 9 accisition signal.");
                        break;
                    }
                }
                else if (Startup.GetInstance().GetFlightInfo().getDragon() == true)
                {
                    if (vesselTarget.Name.Equals("Falcon 9 Dragon COTS-1") && vesselTarget.Type.Equals(VesselType.Probe))
                    {
                        firstStage.firstStage      = vesselTarget;
                        firstStage.firstStage.Name = "Falcon 9 Dragon";
                        Console.WriteLine("FALCON 9 : Falcon 9 accisition signal.");
                        break;
                    }
                }
            }

            if (Startup.GetInstance().GetFlightInfo().getLZ() == "OCISLY")
            {
                droneShip = new F9FirstStage(vessel, RocketBody.OCISLY);
                foreach (Vessel vesselTarget in connectionFirstStage.SpaceCenter().Vessels)
                {
                    if (vesselTarget.Name.Contains("Of Course I Still Love You") && vesselTarget.Type.Equals(VesselType.Relay))
                    {
                        firstStage.droneShip      = vesselTarget;
                        firstStage.droneShip.Name = "Of Course I Still Love You";
                        Console.WriteLine("FIRST STAGE : OCISLY accisition signal.");
                        Console.WriteLine($"Lat = {firstStage.droneShip.Flight(firstStage.droneShip.SurfaceReferenceFrame).Latitude} | Long = {firstStage.droneShip.Flight(firstStage.droneShip.SurfaceReferenceFrame).Longitude}");
                        //break;
                    }
                }
            }

            Falcon9.F9Startup(connection, connectionFirstStageLink);

            /*Thread Abort = new Thread(FlightAbort);
             * Abort.Start();*/

            while (firstStage.firstStage.Flight(null).SurfaceAltitude < 100)
            {
                Thread.Sleep(100);
            }

            Thread GravityTurn = new Thread(gravityTurn);
            GravityTurn.Start();
            stageSep();

            foreach (Vessel vesselTargetFirst in connectionFirstStage.SpaceCenter().Vessels)
            {
                if (vesselTargetFirst.Name.Contains("Falcon 9") && vesselTargetFirst.Name.Contains("") && vesselTargetFirst.Type.Equals(VesselType.Probe))
                {
                    secondStage            = new F9SecondStage(vessel, RocketBody.F9_SECOND_STAGE);
                    firstStage.secondStage = secondStage;
                    secondStage.secondStage.Control.Forward = 1;
                    secondStage.secondStage.Name            = "F9 Second Stage";
                    secondStage.rocketBody = RocketBody.F9_SECOND_STAGE;
                    Console.WriteLine("FALCON 9 : Second Stage as configured.");
                }
            }


            firstStage.switchToSecondStage = true;

            /*foreach (Vessel vesselTargetSecond in connection.SpaceCenter().Vessels)
             * {
             *  if (Startup.GetInstance().GetFlightInfo().getDragon() == false)
             *  {
             *      if (vesselTargetSecond.Name.Equals("Falcon 9 Block 6.1") && vesselTargetSecond.Type.Equals(VesselType.Probe))
             *      {
             *          secondStage.secondStage = vesselTargetSecond;
             *          secondStage.secondStage.Name = "Falcon 9 Second Stage";
             *          Console.WriteLine("FALCON 9 : Second stage accisition signal.");
             *          break;
             *      }
             *  }
             *  else if (Startup.GetInstance().GetFlightInfo().getDragon() == true)
             *  {
             *      if (vesselTargetSecond.Name.Equals("Falcon 9 Dragon COTS-1") && vesselTargetSecond.Type.Equals(VesselType.Probe))
             *      {
             *          secondStage.secondStage = vesselTargetSecond;
             *          secondStage.secondStage.Name = "Falcon 9 Second Stage";
             *          Console.WriteLine("FALCON 9 : Second stage accisition signal.");
             *          break;
             *      }
             *  }
             * }*/
            foreach (Vessel vesselTargetFirst in connectionFirstStage.SpaceCenter().Vessels)
            {
                if (vesselTargetFirst.Name.Contains("Falcon 9") && vesselTargetFirst.Name.Contains("Sonde") && vesselTargetFirst.Type.Equals(VesselType.Probe))
                {
                    firstStage.firstStage      = vesselTargetFirst;
                    firstStage.firstStage.Name = "F9 First Stage";
                    firstStage.rocketBody      = RocketBody.F9_FIRST_STAGE;
                    Console.WriteLine("FALCON 9 : First Stage as configured.");
                }
            }

            if (Startup.GetInstance().GetFlightInfo().getLZ() == "OCISLY")
            {
                droneShip = new F9FirstStage(vessel, RocketBody.OCISLY);
                foreach (Vessel vesselTarget in connectionFirstStage.SpaceCenter().Vessels)
                {
                    if (vesselTarget.Name.Contains("Of Course I Still Love You") && vesselTarget.Type.Equals(VesselType.Relay))
                    {
                        firstStage.droneShip      = vesselTarget;
                        firstStage.droneShip.Name = "Of Course I Still Love You";
                        Console.WriteLine("FIRST STAGE : OCISLY accisition signal.");
                        break;
                    }
                }
            }
            //connectionFirstStage = new Connection(address: IPAddress.Parse("192.168.1.88"), rpcPort: 50000, streamPort: 50001);
            firstStage.ConnectionF91stStage(connection);
            Thread Boostback = new Thread(firstStage.boostbackStart);
            //Boostback.Start();
            secondStage.SecondStageStartup();
            Thread FairingSep = new Thread(secondStage.fairingSep);
            FairingSep.Start();
            secondStage.SECO(vessel, connection);
            secondStage.satSep();

            Console.WriteLine("Stop ?");
            while (Console.ReadLine() != "stop")
            {
            }
        }