/// <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(); } }
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; } } } }
/// <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(); } }
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(); } }