Y'a des codeurs de gauges dans la salle ?

Salle réservée aux discussions sur MSFS 2020-2024 et Prepar3D
Avatar de l’utilisateur

Topic author
Daube
Pilote émérite
Pilote émérite
Messages : 9032
Inscription : 04 avril 2002

Y'a des codeurs de gauges dans la salle ?

#1

Message par Daube »

Salut a tous,

Je recopie ici un topic que j'ai cree aujourd'hui sur un autre forum.

J'essaie de solutionner un petit probleme qui se pose sur mes avions de lignes peu complexes. Dans mon vol par defaut, mon switch AVIONICS (les instruments, quoi) est sur OFF. Du coup, dans un avion comme le 737 qui n'a pas de bouton pour les instruments, et bien je suis oblige d'utiliser CTRL+E a la fin de ma procedure de demarrage manuel pour que les radios s'allument :/

Pour resoudre ce soucis, j'ai essaye de creer une gauge en XML qui alume automatiquement les instruments (avionic switch) des que le generateur de l'APU ou l'un des generateurs des moteurs est active. En gros, j'essaie de reproduire la logique suivante:

SI (l'APU est allume ET le GEN de l'APU est actif) OU
(le moteur 1 est allume ET le GEN1 est actif) OU
(le moteur 2 est allume ET le GEN2 est actif)
ALORS
Activer l'Avionic switch.

J'ai jamais fait de gauge de ma vie, et mes connaissances en langage post-fix datent de la fac, mais apres avoir observe le code de plusieurs gauges dans mon FSX, je suis parvenu jusque la:

Code : Tout sélectionner

<Gauge Name="Automatic avionics"> <Element> <Select> <Value> (A:APU PCT RPM,percent) 10 > (A:APU GENERATOR SWITCH,bool) && (A:ENG1 N2 RPM,rpm) 10 > (A:General eng1 generator switch,bool) && || (A:ENG2 N2 RPM,rpm) 10 > (A:General eng2 generator switch,bool) && || if{ 1 (>L:Avionics master switch,bool)}</Value> </Select> </Element> </Gauge>
Seulement, ca marche pas.
J'ai aussi essaye avec (>K:TOGGLE_AVIONICS_MASTER) mais apparemment ce ne suffit pas.
J'ai aussi essaye de virer le 1 dans le IF, et toujours pas de resultat.
J'aimerais que les instruments s'activents des que le pilote active l'un des generateurs (avec le moteur correspondant en train de tourner, evidemment).
Y'a-t-il des programmeurs de gauges dans la salle ? Je suis ouvert a tous les conseils :)
Membre de la Ligue Internationnale Contre le Partage des IRQ :)
Avatar de l’utilisateur

HudLx
Pilote Confirmé
Pilote Confirmé
Messages : 2004
Inscription : 01 juillet 2007

#2

Message par HudLx »

Salut Daube,

Ce ne serait pas plus simple de créer un bouton "avionics master" sur l'overhead panel comme ça se fait avec le 737 par défaut?

Sinon sur la syntaxe, dans une entrée <Value>, je crois qu'il faut que toute la formule tienne sur une seule ligne (pour être sûr, enlever le retour à la ligne automatique dans notepad.exe). Pour vérifier une gauge xml, tu peux l'ouvrir avec internet explorer, ça te met un code couleur qui vérifie la syntaxe à l'aide du xml parser v6.0 je crois.

VMFA_Hud
Image
X5460 @4.33GHz / 8Go DDR2 912 / GTX 560 Ti / Saïtek X52Pro + PZ35 / Cougar FSR mod "Pistolero" + MFD / FreeTrack
Avatar de l’utilisateur

Topic author
Daube
Pilote émérite
Pilote émérite
Messages : 9032
Inscription : 04 avril 2002

#3

Message par Daube »

Pour le panel, justement le but c'est d'eviter l'utilisation de panels 2D.
Pour l'overhead en 3D, j'aimerais par cette simple gauge invisible eviter la modification des fonctions des boutons existants.

Pour le coup de la ligne unique, il me semble que j'ai modifie cela... je reessaierai la semaine prochaine mais bon, j'ai plus grand espoir...

Pour l'ouverture dans Internet Explorer, j'ai eu des soucis avec certains caracteres (genre, j'avais ecrit && au lieu de &&) mais apres le code que tu peux voir s'affiche normallement...
Membre de la Ligue Internationnale Contre le Partage des IRQ :)
Avatar de l’utilisateur

HudLx
Pilote Confirmé
Pilote Confirmé
Messages : 2004
Inscription : 01 juillet 2007

#4

Message par HudLx »

Et une gauge "avionics" dans le cockpit 3D ça doit être faisable, non?

Sinon pour la syntaxe, je vois que tu as mis un if{ 1 (>L:Fonction,bool)} mais je crois qu'il faut qu'il soit suivi d'un els / else non?
Et je vois que pour les ENG N2 RPM tu les exprimes en rpm, ça ne devrait pas être percent comme l'APU?

Bon courage dans tes recherches,
VMFA_Hud
Image
X5460 @4.33GHz / 8Go DDR2 912 / GTX 560 Ti / Saïtek X52Pro + PZ35 / Cougar FSR mod "Pistolero" + MFD / FreeTrack
Avatar de l’utilisateur

Topic author
Daube
Pilote émérite
Pilote émérite
Messages : 9032
Inscription : 04 avril 2002

#5

Message par Daube »

En fait le but etait de minimiser les modifications 3D du cockpit.
De plus, une telle gauge est facilement tranferable a d'autre avions avec une simple ligne dans le panel.cfg, donc c'est plus avantageux.

Pour les rpm, j'ai aussi essaye avec (....,percent) comme l'APU, mais ca n'a rien change.

En fait, j'ai l'impression que l'expression n'est tout simplement pas evaluee...
A un moment, en experimentant un peu a l'arrache, j'ai obtenu une avionique activee en permanence, independemment du status des generateurs... et apres j'ai fait d'autres modifs pour revenir a un truc plus clair...

Bref, j'esperais qu'un expert en code XML de gauges puisse me sortir un truc du genre "mais oui, elle est la ta connerie, tu vois pas ? ", mais je suis content de voir que ce domaine n'est pas obscur que pour moi ^^
Membre de la Ligue Internationnale Contre le Partage des IRQ :)
Avatar de l’utilisateur

HudLx
Pilote Confirmé
Pilote Confirmé
Messages : 2004
Inscription : 01 juillet 2007

#6

Message par HudLx »

Si les doubles barres verticales (||) symbolisent la condition "ou", alors elles sont peut-être mal placées. Pour moi elles devraient être entre (APU,rpm);(APU,switch) && || (ENG1,rpm);(ENG1gen,switch) && || et (ENG2,rpm);(ENG2gen,switch) && et seulement ensuite "if". Et je me demande s'il faut des ";" entre les expressions entre parenthèses ; il faudrait revoir le SDK pour ça.

Essaye comme ça, ça ne coûte rien. Et comme tu dis, je ne suis pas expert en gauges xml, je suis juste familiarisé et j'ai connu pas mal de déboires comme toi jusqu'à m'apercevoir de mes erreurs.

On va bien finir par trouver:sweatdrop,
VMFA_Hud
Image
X5460 @4.33GHz / 8Go DDR2 912 / GTX 560 Ti / Saïtek X52Pro + PZ35 / Cougar FSR mod "Pistolero" + MFD / FreeTrack
Avatar de l’utilisateur

Topic author
Daube
Pilote émérite
Pilote émérite
Messages : 9032
Inscription : 04 avril 2002

#7

Message par Daube »

C'est du post-fix, donc theoriquement les OU sont bien places.
Chaque operateur agit sur les deux elements precedents, donc j'ai:
1- les deux premiers APU ON et APU GEN ON, que je teste avec un ET
2- le moteur 1 ON et le GEN1 1 que je teste avec un ET
3- les points 1 et 2 testes avec un OU.

Donc la syntaxe generale de la premiere partie est bien 1 2 OU.

Ensuite je teste le moteur 2:
4 - Moteur 2 ON et GEN2 ON testes avec un ET
5 - 3 et 4 testes avec un OU.

Ce qui donne la syntaxe totalle 1 2 OU 4 OU.
Et ce total, je le fous dans un gros IF, pour mettre l'avionique sur ON si c'est positif.
C'est con que je sois loin de mon ordi de jeux, j'aurais bien passe un peu plus de temps a jouer avec ca...
Membre de la Ligue Internationnale Contre le Partage des IRQ :)
Avatar de l’utilisateur

HudLx
Pilote Confirmé
Pilote Confirmé
Messages : 2004
Inscription : 01 juillet 2007

#8

Message par HudLx »

Salut Daube,

Voici le lien pour le SDK de FS9 :
http://support.microsoft.com/kb/555857

Et particulièrement celui pour les gauges et panels :
http://download.microsoft.com/download/ ... _setup.exe

Je suppose que tu connais cela, mais au cas où. Les termes diffèrent un tout petit peu mais la syntaxe et l'ordre des sections et sous-sections est resté le même. Et comme je ne sais pas ce qui est fourni avec FSX au niveau SDK (genre juste la création de missions?) ... Le lien au cas où pour FSX SP2 :
http://download.microsoft.com/download/ ... 33/sdk.msi
Et la page de téléchargement du SDK SP1 (qu'il faut installer avant sauf si tu as Accélération au lieu de SP2) :
http://www.microsoft.com/download/en/de ... x?id=10027

VMFA_Hud
Image
X5460 @4.33GHz / 8Go DDR2 912 / GTX 560 Ti / Saïtek X52Pro + PZ35 / Cougar FSR mod "Pistolero" + MFD / FreeTrack
Avatar de l’utilisateur

Topic author
Daube
Pilote émérite
Pilote émérite
Messages : 9032
Inscription : 04 avril 2002

#9

Message par Daube »

Bon finallement j'ai reussi a faire fonctionner cette foutue gauge :)
Je crois qu'elle etait pas executee du tout en fait, parce qu'elle etait directement dans le repertoire panel, au lieu d'etre dans un sous-repertoire ou dans un fichier CAB.
Du coup j'ai cree un sous repertoire, je l'ai mise dedans, j'ai modifie le panel.cfg pour l'appeler correctement, et la ca a fini par marcher.

Voici la derniere version, qui fait EXACTEMENT ce que je voulais au debut:

Code : Tout sélectionner

<Gauge Name="Automatic avionics"> <Element> <Select> <Value>(A:GENERAL ENG GENERATOR ACTIVE:1,bool) (A:GENERAL ENG GENERATOR ACTIVE:2,bool) || (A:APU GENERATOR ACTIVE,bool) || if{ 1 (>K:AVIONICS_MASTER_SET) } els{ 0 (>K:AVIONICS_MASTER_SET) }</Value> </Select> </Element> </Gauge>
Membre de la Ligue Internationnale Contre le Partage des IRQ :)
Avatar de l’utilisateur

HudLx
Pilote Confirmé
Pilote Confirmé
Messages : 2004
Inscription : 01 juillet 2007

#10

Message par HudLx »

Salut Daube,

;) Content que tu aies réussi à faire fonctionner cette fichue gauge.

VMFA_Hud
Image
X5460 @4.33GHz / 8Go DDR2 912 / GTX 560 Ti / Saïtek X52Pro + PZ35 / Cougar FSR mod "Pistolero" + MFD / FreeTrack
Répondre

Revenir à « MSFS 2020-2024 / Prepar3D »