CDU Prosim737 METAR ActiveSky

stephanev

PILOTE PRO
Messages
1 377
Réactions
53
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ét'ailler chaque ligne des fichiers à utiliser, pour comprendre le dét'ail, 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

acars_1-1.jpg


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="clos'est"/>
</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 clos'est.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="clos'est">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 clos'est

Ce qui donne dans le CDU

acars-2-2.JPG


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:

acars_3-1.jpg


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

acars_5-1.jpg


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>
</message>

</acars>


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


acars_7-1.jpg

acars_8-1.jpg


METAR pour la station la plus proche

Le fichier clos'est.xml contient les lignes ci-dessous :
<?xml version="1.0" encoding="utf-8"?>
<!--
WEATHER CDU FUNCTIONS
-->
<acars id="clos'est">
<page title="CLOSEST CONDITION" id="clos'est">
<lsk1l send="clos'est">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="clos'est"></message>
<message id="clos'est" type="http" response="MetResponse1">
<url>http://activesky:19285/ActiveSky/API/GetClos'estStationWeather</url>
</message>

</acars>


Ici également même principe

47.JPG


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

acars_0-1.jpg


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

fmc-schema.jpg


j'espère que ce tuto vous aura plus :)
 
Oui, y'a moyen de faire plein de trucs sympathiques avec Prosim. Genre la gestion de toutes mes annonces cabines en automatique comme tu l'avais vu chez moi.

Tiens, je viens de m'apercevoir qu'il y a plein d'apostrophes qui ont été rajoutées que je n'avais pas vu à la relecture, du genre: menus
Bizarre...
Y'aurait moyen de corriger ? Il semble que je ne puisse plus éditer mon post
 
Oui c'est depuis le bug de BDD (mauvaise manip de ma part) mais je traite le probleme car il est présent sur tout le forum et il faut traiter globalement. Les apostrophes

Au pire quand tu vois un mot, fait le moi remonter dans le sujet Apostrophes...
 
Retour
Haut