#1 [↑][↓] 09-03-2014 19:03:38

Pat_59
Membre
Lieu : Sailly sur la lys près de LFQT
Inscription : 11-05-2013
Renommée :   17 

[FSX]Syntaxe XML

Bonjour à tous,

Malgré toutes mes recherches sur le Net et ailleurs, je bute sur un problème de syntaxe.
J'ai créer une petite "gauge" (je vais employé le terme anglais) sans aucune prétention qui devrait m'afficher dans une petite fenêtre sous forme de texte l'accélération, en G subit par l'appareil, mini et maxi.
Le principe : stocké dans une variable l'accélération actuelle, la comparer avec Gmin et Gmax (variables créées pour l'occasion) et mettre celle-ci en Gmax ou Gmin quand les précédentes sont dépassées.
D'après ce que j'ai pu comprendre, toutes ces comparaisons s'effectuent à l'intérieur des balises <string> <\string> ainsi que l'affichage dans la gauge.
Là, je me perds un peu (même beaucoup) dans les parenthèses et les points-virgule afin que mes comparaisons s'effectuent et que mon résultat apparaisse.
Si quelqu'un connaît une documentation appropriée sur la syntaxe à employer dans ce genre de balise (notamment pour les boucles if), je lui en saurai gré de bien vouloir partager ses connaissances.
Merci d'avance.

Un petit débutant en xml


Amicalement  Patrick[img align=D]http://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg[/img]
Configuration: Intel I7 3770k OC 4,4 GHz, CM Asrock Z77 Extrem 9
8Gb Gskill DDR3 2133, CG Nvidia 980 GTX TI 6Gb, Windows 8 64bits
P3D V3.3, X52 Pro, CH Product "Éclipse", TIR 5 etc....

Hors ligne

#2 [↑][↓] 09-03-2014 19:29:48

Lagaffe
Membre
Lieu : LFPO / retraité
Inscription : 13-03-2008

Re : [FSX]Syntaxe XML

Bonsoir,

Si cela peux t'aider voici le code XML utilisé pour l'accéléromètre du Cessna 150 (fichier modeldef.xml). Tu pourras t'inspirer des variables et du calcul.

<!-- anim d'une aiguille de g meter qui permet de la faire bouger de 0 a -5 G-->
  <PartInfo>
    <Name>needle_G_min</Name>
    <AnimLength>150</AnimLength>
    <Animation>
      <Parameter>
        <Code>(A:MIN G FORCE, Gforce) -5 max 10 min 10 * 50 + </Code>
      </Parameter>
    </Animation>
    <MouseRect>
        <Cursor>Hand</Cursor>
        <TooltipText>%Accelerometer %((L:g_min,Gforce))%!1.1f! G</TooltipText>   
    </MouseRect>
  </PartInfo>
 
  <PartInfo>
    <Name>needle_G_max</Name>
    <AnimLength>150</AnimLength>
    <Animation>
      <Parameter>
        <Code>(A:MAX G FORCE, Gforce) -5 max 10 min 10 * 50 + </Code>
      </Parameter>
    </Animation>
    <MouseRect>
        <Cursor>Hand</Cursor>
        <TooltipText>%Accelerometer %((L:g_max,Gforce))%!1.1f! G</TooltipText>   
    </MouseRect>
  </PartInfo>
 
  <PartInfo>
    <Name>needle_G</Name>
    <AnimLength>150</AnimLength>
    <Animation>
      <Parameter>
        <Code>(A:G FORCE, Gforce) -5 max 10 min 10 * 50 + </Code>
      </Parameter>
    </Animation>
    <MouseRect>
        <Cursor>Hand</Cursor>
        <TooltipText>%Accelerometer %((A:G force,Gforce))%!1.1f! G</TooltipText>   
    </MouseRect>
  </PartInfo>
 
  <PartInfo>
    <Name>switch_G_reset</Name>
    <AnimLength>100</AnimLength>
    <Animation>
      <Parameter>
        <Code>(L:G_reset) (P:local time, seconds) &gt; if{ 100 } els{ 0 }</Code>
        <Lag>400</Lag>
      </Parameter>
    </Animation>
    <MouseRect>
      <Cursor>hand</Cursor>
      <HelpID>HELPID_EXTR_G_METER_RESET</HelpID>
      <CallbackCode>(>K:RESET_G_FORCE_INDICATOR) (P:local time, seconds) 0.5 + (&gt;L:G_reset)</CallbackCode>
    </MouseRect>
  </PartInfo>

La jauge est prévue pour afficher +1 G au sol et à l'arrêt (merci BeeGee).
Sinon pour afficher cela sous forme de texte, il y a un tuto je crois sur http://fassapi.eklablog.com - "section tutoriel"


@+ Didier
mini-Logo-Beaver-small.jpg
W10 Pro 64b Build 22H2 - Boitier HAF 932 - Z390 STRIX-F - 9900K - 2x16 Go - NVidia 3060 Ti 8 Go - Alim Corsair 800W - Ecran 34" - NVidia Studio ready 536.23
P3D v5.4 = http://www.pilote-virtuel.com/img/members/53/P3Dv5HF-Reglages-A.jpg - MSFS Deluxe/STORE - X-Plane 12B

Hors ligne

#3 [↑][↓] 09-03-2014 20:07:46

Avro
Modérateur
Lieu : LFPN (Yvelines)
Inscription : 26-04-2013
Renommée :   20 
Site Web

Re : [FSX]Syntaxe XML

Bonjour,

En XML, les balises se ferment avec le symbole / soit :

<string> </string>

Le contenu des balises, ce n'est généralement pas du code XML. Enfin le XML est un langage descriptif et non un langage de programmation ; les  conditions et les variables appartiennent a FSX.


Emmanuel

Simulateur en jachère. 2 PC en réseau, un i5 + un  i9 9900KF, 32 Go RAM, 1 SSD 1to, RTX 2080 8go, 5 écrans 24 pouces. Hardware EFDE et Opencockpits.

Hors ligne

#4 [↑][↓] 09-03-2014 20:49:04

BERJU83
Membre
Inscription : 02-10-2009
Renommée :   32 

Re : [FSX]Syntaxe XML

Bonsoir,

Voici le code de l'accéléromètre que j'utilise (mais qui n'est pas de moi) pour mon TB30 perso, si ça peut aider...

<?xml version="1.0"?>
<Gauge Version="1.0" Name="Accelerom">
<Image Name="Accelerom_bgrd.bmp" ImageSizes="175,180"/>

<Element>
<Position Y="100" X="100"/>
<Image Name="Accelerom_min_ndl.bmp" ImageSizes="81,14" PointsTo="East">
<Axis Y="6" X="20"/>
</Image>
<Rotate>
<Value Maximum="1" Minimum="-4.0">(A:G FORCE, G Force) 1 - s0 (G:Var3) s1 < if{ l0 (>G:Var3) } l1</Value>
<Failures>
<SYSTEM_ELECTRICAL_PANELS Action="0"/>
</Failures>
<Nonlinearity>
<Item Y="140" X="109" Value="-4"/>
<Item Y="88" X="26" Value="1"/>
</Nonlinearity>
<Delay DegreesPerSecond="360"/>
</Rotate>
</Element>

<Element>
<Position Y="100" X="100"/>
<Image Name="Accelerom_max_ndl.bmp" ImageSizes="81,14" PointsTo="East">
<Axis Y="6" X="20"/>
</Image>
<Rotate>
<Value Maximum="10" Minimum="1">(A:G FORCE, G Force) 1 - s0 (G:Var2) s1 > if{ l0 (>G:Var2) } l1</Value>
<Failures>
<SYSTEM_ELECTRICAL_PANELS Action="0"/>
</Failures>
<Nonlinearity>
<Item Y="87" X="29" Value="1"/>
<Item Y="106" X="144" Value="10"/>
</Nonlinearity>
<Delay DegreesPerSecond="360"/>
</Rotate>
</Element>

<Element>
<Position Y="100" X="100"/>
<Image Name="Accelerom_ndl.bmp" ImageSizes="81,14">
<Axis Y="6" X="20" PointsTo="East"/>
</Image>
<Rotate>
<Value Maximum="10" Minimum="-4">(A:G FORCE,Gforce)</Value>
<Nonlinearity>
<Item Y="140" X="109" Value="-4"/>
<Item Y="109" X="30" Value="0"/>
<Item Y="106" X="144" Value="10"/>
</Nonlinearity>
<Delay DegreesPerSecond="360"/>
</Rotate>
</Element>

<Mouse>
<Area Bottom="190" Top="150" Right="31" Left="11">
<Click>0 (>G:Var3)</Click>
<Cursor Type="DownArrow"/>
</Area>
<Area Bottom="190" Top="150" Right="53" Left="32">
<Click>0 (>G:Var2)</Click>
<Cursor Type="UpArrow"/>
</Area>
</Mouse>
</Gauge>

Hors ligne

#5 [↑][↓] 09-03-2014 22:08:55

Pat_59
Membre
Lieu : Sailly sur la lys près de LFQT
Inscription : 11-05-2013
Renommée :   17 

Re : [FSX]Syntaxe XML

Merci à tous pour vos conseils et exemples fournis.

@Herji85 : Autant pour moi, j'ai inversé le slash et l'anti-slash (erreur de frappe) mais j'ai compris le principe.

@Lagaffe : Merci pour le code de ta gauge mais celle-ci est graphique avec aiguilles. Par contre ton lien est super intéressant (je l'avais zappé celui-là) mais il va falloir se dépêcher, l'auteur parle de fermer son site.
D'autre part j'avais déjà essayé avec les variables FSX (A:MIN G FORCE, Gforce) et (A:MAX G FORCE, Gforce) cela fonctionnait bien mais je n'arrivais pas à "réinitialiser" celles-ci. Une partie de ton code m'a peut-être donné la solution. Merci encore.

@Berju83 : Idem que pour Didier, c'est une gauge à aiguilles mais merci cela permet de comparer deux codes différents pour, en principe, le même résultat. "Tous les chemins mènent à Rome" wink

J'utilise beaucoup le LUA que je pense maîtriser correctement mais le XML (pour les gauges) c'est quand même bien différent du point de vue de la syntaxe sans compter cette fameuse notation polonaise inversée qui m'a fait perdre quelques cheveux.

Bonne soirée et merci à tous


Amicalement  Patrick[img align=D]http://www.pilote-virtuel.com/img/members/8639/P3DV3.jpg[/img]
Configuration: Intel I7 3770k OC 4,4 GHz, CM Asrock Z77 Extrem 9
8Gb Gskill DDR3 2133, CG Nvidia 980 GTX TI 6Gb, Windows 8 64bits
P3D V3.3, X52 Pro, CH Product "Éclipse", TIR 5 etc....

Hors ligne

Pied de page des forums