Пример #1
0
        /// <summary>
        /// Méthode cyclique du timer
        /// Gestion des tâches périodiques
        /// Pour les demandes de données sur le simulateur
        /// </summary>
        /// <param name="source"></param>
        /// <param name="evt"></param>
        private void OnATCUpdate(object source, ElapsedEventArgs evt)
        {
            if (IsConnected() && SCM.IsConnected())
            {
                int Transponder = Outils.ConvertToBinaryCodedDecimal(Analyse.GetLastState().Squawk);
                if ((Transponder == 1200) || (Transponder == 7000))
                {
                    return;
                }
                XmlBuild(ref SendAtc, XmlCode.atc);
                XmlNodeList Nodes = SendAtc.GetElementsByTagName("atc");
                foreach (XmlNode node in Nodes)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        switch (child.Name)
                        {
                        case "latitude":
                            child.InnerText = string.Format("{0:0.00000}", Analyse.GetLastState().Latitude);
                            break;

                        case "longitude":
                            child.InnerText = string.Format("{0:0.00000}", Analyse.GetLastState().Longitude);
                            break;

                        case "heading":
                            child.InnerText = string.Format("{0:0.}", Analyse.GetLastState().Heading);
                            break;

                        case "altitude":
                            child.InnerText = string.Format("{0:0.}", Analyse.GetLastState().Altitude);
                            break;

                        case "groundSpeed":
                            child.InnerText = string.Format("{0:0.}", Analyse.GetLastState().GSpeed);
                            break;

                        case "iaspeed":
                            child.InnerText = string.Format("{0:0.}", Analyse.GetLastState().IASSpeed);
                            break;

                        case "squawk":
                            child.InnerText = string.Format("{0:0.}", Outils.ConvertToBinaryCodedDecimal(Analyse.GetLastState().Squawk));
                            break;
                        }
                    }
                }
#if DEBUG
                Log.LogMessage("PManager: ATCUpdate =\n " + Beautify(SendAtc), Color.DarkRed, 2);
#endif
                HTTPRequestThread Requete = new HTTPRequestThread(SendAtc, m_sURL, ATCCB);
                Requete.Start();
            }
        }
Пример #2
0
        private void RempliTableau()
        {
            if (m_lvDonneesFS.InvokeRequired)
            {
                RempliTableauCallback d = new RempliTableauCallback(RempliTableau);
                m_lvDonneesFS.Invoke(d);
            }
            else
            {
                // On rempli la ligne correspondante dans la listview
                foreach (ListViewItem Item in m_lvDonneesFS.Items)
                {
                    if (Item.SubItems.Count < 1)
                    {
                        continue;
                    }
                    ListViewItem.ListViewSubItem Sub = Item.SubItems[1];
                    switch (Item.Text)
                    {
                    case "Titre Avion":
                        Sub.Text = GetLastState().Title;
                        break;

                    case "Type Avion":
                        Sub.Text = GetLastState().Type;
                        break;

                    case "Model Avion":
                        Sub.Text = GetLastState().Model;
                        break;

                    case "Catégorie":
                        Sub.Text = GetLastState().Category;
                        break;

                    case "Altitude Avion":
                        Sub.Text = string.Format("{0:0.} ft", GetLastState().Altitude);
                        break;

                    case "Altitude Sol":
                        Sub.Text = string.Format("{0:0.} ft", GetLastState().Altitude - GetLastState().AltitudeSol);
                        break;

                    case "Vario":
                        Sub.Text = string.Format("{0:0.} ft/min", GetLastState().Vario);
                        break;

                    case "Direction":
                        Sub.Text = string.Format("{0:0.} °", GetLastState().Heading);
                        break;

                    case "Delta Altitude":
                        Sub.Text = string.Format("{0:0.} ft", GetLastState().AltitudeSol);
                        break;

                    case "Facteur Temps":
                        Sub.Text = string.Format("{0:0}X", GetLastState().TimeFactor);
                        break;

                    case "Longitude":
                        Sub.Text = string.Format("{0:0.000}°", GetLastState().Longitude);
                        break;

                    case "Latitude":
                        Sub.Text = string.Format("{0:0.000}°", GetLastState().Latitude);
                        break;

                    case "Vitesse Sol":
                        Sub.Text = string.Format("{0:0.}Kts", GetLastState().GSpeed);
                        break;

                    case "Vitesse TAS":
                        Sub.Text = string.Format("{0:0.}Kts", GetLastState().TASSpeed);
                        break;

                    case "Carburant":
                        Sub.Text = string.Format("{0:0.}Lbs", GetLastState().Fuel);
                        break;

                    case "Cabrage Avion":
                        Sub.Text = string.Format("{0:0.0}°", GetLastState().Pitch);
                        break;

                    case "Roulis Avion":
                        Sub.Text = string.Format("{0:0.0}°", GetLastState().Bank);
                        break;

                    case "G Force":
                        Sub.Text = string.Format("{0:0.0} G", GetLastState().GForce);
                        break;

                    case "Poids Avion":
                        Sub.Text = string.Format("{0:0.}Lbs", GetLastState().PoidsAvion);
                        break;

                    case "Total Fuel Capacity":
                        Sub.Text = string.Format("{0:0} Lbs", GetLastState().TotalFuelCapacity);
                        break;

                    case "Vitesse du vent":
                        Sub.Text = string.Format("{0:0} Kts", GetLastState().AmbiantWindVelocity);
                        break;

                    case "Direction du vent":
                        Sub.Text = string.Format("{0:0} °", GetLastState().AmbiantWindDirection);
                        break;

                    case "Précipitation":
                        Sub.Text = string.Format("{0:0}", GetLastState().AmbiantPrecipState);
                        break;

                    case "Pression Atm":
                        Sub.Text = string.Format("{0:0} mBar", GetLastState().AltimeterSetting);
                        break;

                    case "Pression MSL":
                        Sub.Text = string.Format("{0:0} mBar", GetLastState().SeaLevelPressure);
                        break;

                    case "Profondeur":
                        Sub.Text = string.Format("{0:0.000}", GetLastState().ElevatorPos);
                        break;

                    case "Ailerons":
                        Sub.Text = string.Format("{0:0.000}", GetLastState().AileronPos);
                        break;

                    case "Derive":
                        Sub.Text = string.Format("{0:0.000}", GetLastState().RudderPos);
                        break;

                    case "Aerofreins":
                        Sub.Text = string.Format("{0:0.000}", GetLastState().SpoilerPos);
                        break;

                    case "Frein de parking":
                        Sub.Text = string.Format("{0:0.000}", GetLastState().ParkingBrakePos);
                        break;

                    case "Squawk":
                        Sub.Text = string.Format("{0:0}", Outils.ConvertToBinaryCodedDecimal(GetLastState().Squawk));
                        break;

                    default:
                        break;
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Méthode cyclique du timer
        /// Gestion des tâches périodiques
        /// Pour les demandes de données sur le simulateur
        /// </summary>
        /// <param name="source"></param>
        /// <param name="evt"></param>
        private void OnLiveUpdate(object source, ElapsedEventArgs evt)
        {
            if (IsConnected() && SCM.IsConnected())
            {
                XmlBuild(ref SendUpdate, XmlCode.liveupdate);
                XmlNodeList Nodes = SendUpdate.GetElementsByTagName("liveupdate");
                foreach (XmlNode node in Nodes)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        switch (child.Name)
                        {
                        case "pilotID":
                            child.InnerText = User.Login;
                            break;

                        case "registration":
                            child.InnerText = Analyse.GetLastState().Title;
                            break;

                        case "latitude":
                            child.InnerText = string.Format("{0:0.00000}", Analyse.GetLastState().Latitude);
                            break;

                        case "longitude":
                            child.InnerText = string.Format("{0:0.00000}", Analyse.GetLastState().Longitude);
                            break;

                        case "heading":
                            child.InnerText = string.Format("{0:0.}", Analyse.GetLastState().Heading);
                            break;

                        case "altitude":
                            child.InnerText = string.Format("{0:0.}", Analyse.GetLastState().Altitude);
                            break;

                        case "groundSpeed":
                            child.InnerText = string.Format("{0:0.}", Analyse.GetLastState().GSpeed);
                            break;

                        case "iaspeed":
                            child.InnerText = string.Format("{0:0.}", Analyse.GetLastState().IASSpeed);
                            break;

                        case "squawk":
                            child.InnerText = string.Format("{0:0.}", Outils.ConvertToBinaryCodedDecimal(Analyse.GetLastState().Squawk));
                            break;

                        case "onground":
                            child.InnerText = string.Format("{0:0.}", Convert.ToInt32(Analyse.GetLastState().OnGround));
                            break;

                        case "sim":
                            child.InnerText = SCM.GetVersion().ToString();
                            break;
                        }
                    }
                }
#if DEBUG
                Log.LogMessage("PManager: Mise à jour de la position =\n " + Beautify(SendUpdate), Color.DarkRed, 2);
#endif
                HTTPRequestThread Requete = new HTTPRequestThread(SendUpdate, m_sURL, LiveUpdateCB);
                Requete.Start();
            }
        }
Пример #4
0
        public void UpdatePeerDetail()
        {
            if (m_lvUsers.SelectedItems.Count == 0)
            {
                ClearPeerDetail();
                return;
            }
            ListViewItem User = m_lvUsers.SelectedItems[0];
            Peer         Pair = Peers.Find(x => x.CallSign == User.Text);

            if (Pair != null)
            {
                // On rempli la ligne correspondante dans la listview
                foreach (ListViewItem Item in m_lvPeerDetail.Items)
                {
                    if (Item.SubItems.Count < 1)
                    {
                        continue;
                    }
                    ListViewItem.ListViewSubItem Sub = Item.SubItems[1];
                    switch (Item.Text)
                    {
                    case "Statut":
                        if (Pair.IsOnline)
                        {
                            Sub.Text = "Connecté";
                        }
                        else
                        {
                            Sub.Text = "Déconnecté";
                        }
                        break;

                    case "Refresh":
                        Sub.Text = string.Format("{0:0000} mSec", Pair.RefreshRate);
                        break;

                    case "Latence":
                        Sub.Text = string.Format("{0:0.} mSec", Pair.Latence);
                        break;

                    case "Distance":
                        Sub.Text = string.Format("{0:0.0} Nm", Pair.Distance);
                        break;

                    case "Altitude":
                        Sub.Text = string.Format("{0:0.} ft", Pair.Altitude);
                        break;

                    case "Longitude":
                        Sub.Text = string.Format("{0:0.000}°", Pair.Longitude);
                        break;

                    case "Latitude":
                        Sub.Text = string.Format("{0:0.000}°", Pair.Latitude);
                        break;

                    case "Bank Angle":
                        Sub.Text = string.Format("{0:0.000}°", Pair.BankAngle);
                        break;

                    case "Pitch Angle":
                        Sub.Text = string.Format("{0:0.000}°", Pair.PitchAngle);
                        break;

                    case "Vitesse":
                        Sub.Text = string.Format("{0:0.} KIAS", Pair.Vitesse);
                        break;

                    case "Direction":
                        Sub.Text = string.Format("{0:0.} °", Pair.Direction);
                        break;

                    case "OnGround":
                        Sub.Text = string.Format("{0:0.}", Pair.OnGround);
                        break;

                    case "Version":
                        Sub.Text = string.Format("{0:0.}", Pair.Version);
                        break;

                    case "Squawk":
                        Sub.Text = string.Format("{0:0.}", Outils.ConvertToBinaryCodedDecimal(Pair.Squawk));
                        break;

                    case "Titre":
                        Sub.Text = Pair.Titre;
                        break;

                    case "Model":
                        Sub.Text = Pair.Model;
                        break;

                    case "Type":
                        Sub.Text = Pair.Type;
                        break;

                    case "Refresh Distant":
                        Sub.Text = string.Format("{0:0000} mSec", Pair.RemoteRefreshRate);
                        break;

                    case "Décalage":
                        Sub.Text = string.Format("{0:000000} mSec", Pair.Decalage);
                        break;

                    case "Spawned":
                        Sub.Text = Pair.Spawned.ToString();
                        break;

                    case "Object_ID":
                        Sub.Text = Pair.ObjectId.ToString();
                        break;

                    case "Ecart":
                        Sub.Text = string.Format("{0:0.0} Nm", Pair.Ecart);
                        break;

                    case "Last Update":
                        Sub.Text = string.Format(DateTimeEx.TimeFromUnixTimestamp(Pair.LastAIUpdate).ToLongTimeString());
                        break;
                    }
                }
            }
            else
            {
                ClearPeerDetail();
            }
        }