Vous n'êtes pas identifié(e).
Pages : 1
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
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) > 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 + (>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
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
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
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
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"
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
Pages : 1