Personnaliser le CDU de Prosim avec les METAR ActiveSky

Poster un commentaire

15/01/2020 par Stephane

Ce tuto a pour but de montrer comment créer des pages personnalisées dans le CDU de Prosim pour obtenir les informations de météo depuis ActiveSky, à savoir: METAR pour un aéroport spécifique, conditions météo à la position actuelle de l’avion et conditions météo pour la station la plus proche.

Le but n’est pas ici de détailler chaque ligne des fichiers à utiliser, pour comprendre le détail, il faut se référer au post de Humberto sur le forum Prosim à https://prosim-ar.com/forum/viewtopic.php?f=12&t=4971, j’essaierai néanmoins de mentionner les points importants.
Il est à noter que ces fonctions sont disponibles de base avec ProsimUtils mais pour qui ne souhaite pas l’utiliser, nous avons la possibilité d’implémenter facilement nous même ces fonctions météo.

Note : Je ne suis pas un expert en xml et il est possible que certaines choses aient pu m’échapper, néanmoins ces fichiers sont fonctionnels.

Les informations météo seront retournées sous forme de messages ACARS dans le CDU. La première chose à faire est alors de créer notre fichier ACARS principal qui sera déclaré dans Prosim.
Tous les fichiers sont à créer dans le répertoire ACARS qui se trouve dans le répertoire principal de Prosim.

Pour accéder à la partie ACARS du CDU, il faut se rentre sur la page principale du CDU et choisir <DLNK

Le fichier ACARS principal se nomme asky.xml et contient ceci :
<?xml version="1.0" encoding="utf-8" ?>
  <acars name="asky" id="asky">
    <include id="menu1"/>
    <include id="metar"/>
    <include id="currentw"/>
    <include id="closest"/>
</acars>

L’attribut nom ici est important car c’est ce qui va permettre à Prosim de populer la liste des fichiers ACARS disponibles.
Ce fichier comprend la liste des autres fichiers qui composent les différentes pages du CDU à savoir menu1.xml, metar.xml, currentw.xml et closest.xml

MENU

Le fichier menu1.xml va nous afficher une nouvelle page avec les choix possibles pour demander les METAR :

<?xml version="1.0" encoding="utf-8"?>
<!--
-->
  <acars id="menu1">
  <page title="WEATHER MENU" id="menu">
    <subpage>
      <lsk1l link="metar">METAR ASKY</lsk1l>
      <lsk2l link="currentw">CURRENT WEATHER ASKY</lsk2l>
      <lsk3l link="closest">CLOSEST WEATHER ASKY</lsk3l>
    </subpage>
  </page>
</acars>

Comme on le voit, le titre de cette page sera WEATHER MENU, les choix possibles sont décrits dans le paragraphe subpage avec les boutons CDU correspondant.
Lsk1l = Left Soft Key 1 left, soit le bouton gauche N.1

L’attribut link indique quel lien le CDU va appeler lorsque l’on appuie sur la touche correspondate, on retrouve les noms metar, currentw et closest

Ce qui donne dans le CDU

METAR pour un aéroport spécifique

Le fichier metar.xml contient ceci :

<?xml version="1.0" encoding="utf-8"?>
<!--
WEATHER CDU FUNCTIONS
-->
<acars id="metar">
<page title="METAR" id="metar">
    <lsk1l send="Metar">REQ METAR</lsk1l>
    <lsk3l input="ICAO" size="4">ICAO</lsk3l>
    <lsk6l link="menu">RETURN</lsk6l>
  </page>
  <page title="METAR" id="_genericUplink" uplink="MetResponse">
    <lsk1l output="_rawMessage" lines="2"/>
    <lsk2l output="_rawMessage" lines="2"/>
    <lsk3l output="_rawMessage" lines="2"/>
    <lsk4l output="_rawMessage" lines="2"/>
    <lsk5l output="_rawMessage" lines="2"/>
    <lsk6l link="menu">RETURN</lsk6l>
    <lsk6r action="print">PRINT</lsk6r>
  </page>
<!--MESSAGE SECTION-->
  <message id="MetResponse" title="metar"></message>
  <message id="Metar" type="http" response="MetResponse">
    <url>http://activesky:19285/ActiveSky/API/GetMetarInfoAt?ICAO=${ICAO}</url>
  </message>
</acars>

Le titre de la page est METAR, les choix possibles de la page sont affichés au niveau des boutons lsk1l, lsk2l et lsk3l
Sur cette page :
– le bouton lsk1l nout permet d’envoyer notre demande de METAR à ActiveSky
– le bouton lsk3l nous permet de saisir le code ICAO de l’aéroport pour lequel nous souhaitons avoir le METAR
– le bouton lsk6l nout permet de revenir à la page précédente

Le paragraphe avec l’id _genericUplink va ouvrir une nouvelle page avec le resultat de la requête qui a été envoyé à ActiveSky.

Enfin le paragraphe avec l’id MetResponse contient le lien http qui nous permet d’interroger ActiveSky.
Sur la ligne <url>http://activesky:19285/ActiveSky/API/GetMetarInfoAt?ICAO=${ICAO}</url>
Vous devez remplacer activesky par le nom ou l’adresse IP du PC sur lequel tourne ActiveSky (mon PC ActiveSky s’appelle activesky), par exemple :
<url>http://monpc:19285/ActiveSky/API/GetMetarInfoAt?ICAO=${ICAO}</url>

Cette ligne envoit donc une requête http au PC ActiveSky en passant en paramètre le nom ICAO de l’aéroport (variable ICAO) et ActiveSky va envoyer en retour le METAR sous format texte qui sera afficher par le CDU .

La page de demande de METAR sera comme ci-dessous:

Après avoir appuyé sur le bouton LSKL1 nous aurons alors notre METAR sur une nouvelle page:

METAR pour notre position actuelle

Le fichier current.xml contient les lignes ci-dessous :

<?xml version="1.0" encoding="utf-8"?>
<!--
WEATHER CDU FUNCTIONS
-->
<acars id="currentw">
  <page title="CURRENT CONDITION" id="currentw">
    <lsk1l send="Currentw">REQ CURRENT CONDITION</lsk1l>
    <lsk6l link="menu">RETURN</lsk6l>
  </page>
  <page title="CURRENT CONDITION" id="_genericUplink2" uplink="MetResponse2">
    <lsk1l output="_rawMessage" lines="2"/>
    <lsk2l output="_rawMessage" lines="2"/>
    <lsk3l output="_rawMessage" lines="2"/>
    <lsk4l output="_rawMessage" lines="2"/>
    <lsk5l output="_rawMessage" lines="2"/>
    <lsk6l link="menu">RETURN</lsk6l>
    <lsk6r action="print">PRINT</lsk6r>
  </page>
<!--MESSAGE SECTION-->
  <message id="MetResponse2" title="current"></message>
  <message id="Currentw" type="http" response="MetResponse2">
    <url>http://activesky:19285/ActiveSky/API/Getcurrentconditions</url&gt;
  </message>
</acars>

Le principe est exactement le même que pour le fichier metar.xml

METAR pour la station la plus proche

Le fichier closest.xml contient les lignes ci-dessous :
<?xml version="1.0" encoding="utf-8"?>
<!--
WEATHER CDU FUNCTIONS
-->
<acars id="closest">
  <page title="CLOSEST CONDITION" id="closest">
    <lsk1l send="closest">REQ CLOSEST CONDITION</lsk1l>
    <lsk6l link="menu">RETURN</lsk6l>
  </page>
  <page title="CLOSEST CONDITION" id="_genericUplink3" uplink="MetResponse1">
    <lsk1l output="_rawMessage" lines="2"/>
    <lsk2l output="_rawMessage" lines="2"/>
    <lsk3l output="_rawMessage" lines="2"/>
    <lsk4l output="_rawMessage" lines="2"/>
    <lsk5l output="_rawMessage" lines="2"/>
    <lsk6l link="menu">RETURN</lsk6l>
    <lsk6r action="print">PRINT</lsk6r>
  </page>
<!--MESSAGE SECTION-->
  <message id="MetResponse1" title="closest"></message>
  <message id="closest" type="http" response="MetResponse1">
    <url>http://activesky:19285/ActiveSky/API/GetClosestStationWeather</url&gt;
  </message>
</acars>

Ici également même principe

Lorsque tous les fichiers sont créés il est maintenant possible dans Prosim et de choisir notre fichier ACARS

A chaque fois qu’un nouveau profile ACARS est choisi dans Prosim il faut redémarrer l’application. Les nouvelles pages seront ensuite disponibles dans le CDU .

Pour finir voici un aperçu global de la structure des menus du CDU et des fichiers xml correspondants

j’espère que ce tuto vous aura plus 🙂

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :