#1 [↑][↓]  03-05-2013 21:24:42

BERJU83
Commandant de bord
Date d'inscription: 02-10-2009
Renommée :   32 

[FSX] Alarme centralisée XML? possible?

Bonjour à tous,

Une question aux connaisseurs en codage xml pour fs:

Je voudrais simuler une alarme centralisée qui en regroupe plusieurs autres, chacune d'elles pouvant isolément allumer le voyant alarme centralisé indépendamment ou ensemble.

Voici un exemple de code qui fonctionne:
<Select>
      <Value>  (A:GENERAL ENG FAILED:1,bool) (A:Eng1 oil temperature,celsius) 150 &gt;  OR </Value>
    <Case Value="1">
        <Image Name="Alarm_Gen.bmp" Bright="Yes">
        </Image>
    </Case>
</Select>

Voici celui qui ne fonctionne pas, le OR étant exclusif:
<Select>
      <Value>  (A:GENERAL ENG FAILED:1,bool)  (A:GENERAL ENG FAILED:2,bool) (A:ELECTRICAL GENALT BUS VOLTAGE:1,volts) 20 &lt; (A:Eng2 oil temperature,celsius) 150 &gt;     (A:Eng1 oil temperature,celsius) 150 &gt; (A:Eng1 oil pressure,PSI) 10 &lt; (A:Eng2 oil pressure,PSI) 10 &lt;  OR </Value>
    <Case Value="1">
        <Image Name="Alarm_Gen.bmp" Bright="Yes">
        </Image>
    </Case>
</Select>

Existe-t-il un moyen de faire fonctionner cette alarme regroupée?

Merci d'avance,
Bernard.

Hors ligne

 

#2 [↑][↓]  03-05-2013 22:07:30

Squirrel
Copilote
Membre donateur
Lieu: EDMA
Date d'inscription: 25-11-2012
Renommée :   17 

Re: [FSX] Alarme centralisée XML? possible?

Bonjour Bernard,

Selon moi, il faudrait juste utiliser plusieurs "or" :
<Select>
      <Value>  (A:GENERAL ENG FAILED:1,bool)  (A:GENERAL ENG FAILED:2,bool) or (A:ELECTRICAL GENALT BUS VOLTAGE:1,volts) 20 &lt; or (A:Eng2 oil temperature,celsius) 150 &gt; or (A:Eng1 oil temperature,celsius) 150 &gt; or (A:Eng1 oil pressure,PSI) 10 &lt; or (A:Eng2 oil pressure,PSI) 10 &lt;  or </Value>
    <Case Value="1">
        <Image Name="Alarm_Gen.bmp" Bright="Yes">
        </Image>
    </Case>
</Select>

Je m'explique : le xml fonctionne selon un principe de colonnes, dans lesquelles sont empilées les valeurs.
Le résultat de la première comparaison est donc stockée, puis, au-dessus, la seconde...
Ensuite, les outils logiques "and" ou "or" ou "xor"... vont "dépiler" : ils prennent les deux valeurs du haut de la colonne, les enlèvent, puis placent une nouvelle valeur.
Si c'est "or", il placera un 1 en haut de la colonne, si une des deux conditions est vérifiée (égale à 1) ou si les deux sont vérifiées, dans le cas d'un "and". Ensuite, le second "or" refera le même boulot, avec le 1 placé juste avant, et la valeur du dessous.

Je précise que les comparateurs ">", "<", "=="... fonctionnent de la même manière : on place deux valeurs, puis ceux-ci "dépilent".

Pour clarifier tout ça (je sens que c'est confus wacko) rien ne vaut un petit schéma :
http://img22.imageshack.us/img22/7553/principexml.jpg

Bonne soirée,
Squirrel

Edit: L'image était un peu grande, j'en ai mis une plus petite.

Dernière modification par Squirrel (03-05-2013 22:10:57)

Hors ligne

 

#3 [↑][↓]  03-05-2013 22:36:43

BERJU83
Commandant de bord
Date d'inscription: 02-10-2009
Renommée :   32 

Re: [FSX] Alarme centralisée XML? possible?

Bonsoir,

Et merci pour la noisette Squirrel!
M'en vais tester tout ça...

A plus,
Bernard.

Hors ligne

 

#4 [↑][↓]  04-05-2013 03:34:22

Cedric
Pilote Virtuel
Lieu: Aix en Provence
Date d'inscription: 05-04-2008
Renommée :   67 

Re: [FSX] Alarme centralisée XML? possible?

très intéressant , merci!Un +1 pour la peine...
Le probleme:faudra que je relise ça demain je rentre d'un petit apero...laugh


i99900K @ 4.9/RTX4070TI/32Gg/Valve Index/ et toujours la grosse cafetière.
http://www.fsairlines.net/signatures/107400.pnghttp://my.vatsim.net/indicators/1049718

Hors ligne

 

#5 [↑][↓]  04-05-2013 11:22:32

Lagaffe
Pilote Virtuel
Membre donateur
Lieu: LFPO / retraité
Date d'inscription: 13-03-2008
Site web

Re: [FSX] Alarme centralisée XML? possible?

Très bon exemple de cours de XML: je note cela dans mes tablettes, cela va servir très prochainement, sans aucun doute !


@+ Didier
http://www.pilote-virtuel.com/img/members/53/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/membe … ages-A.jpg - MSFS Deluxe/STORE - X-Plane 12B

Hors ligne

 

#6 [↑][↓]  04-05-2013 13:52:22

Squirrel
Copilote
Membre donateur
Lieu: EDMA
Date d'inscription: 25-11-2012
Renommée :   17 

Re: [FSX] Alarme centralisée XML? possible?

Bonjour,

Merci à vous trois !

Je vais en profiter pour rajouter encore une chose : il existe aussi "not" :
Il place un 1 quand les deux conditions précédentes ne sont pas vérifiées ( = 0 ).

Pour simplifier, si on traduit en français ces opérateurs, ça donne :
"or" = si une des deux ...
"and" = si les deux ...
"not" = si aucune des deux ...

Encore une chose : on peut très bien tout "dépiler" juste avant le "if". Mais dans ce cas, n'oubliez pas que l'ordre du "dépilage" sera changé. Ce dernier point est très important si vous avez besoin d'opérateurs différents pour la même condition.

... C'est vrai que c'est plus simple à comprendre la tête reposée wink

Bonne journée,
Squirrel

Hors ligne

 

#7 [↑][↓]  05-05-2013 17:44:19

BERJU83
Commandant de bord
Date d'inscription: 02-10-2009
Renommée :   32 

Re: [FSX] Alarme centralisée XML? possible?

Bonjour à tous,

Je confirme le bon fonctionnement de la syntaxe proposée par Squirrel, avec chaînage des opérateurs booléens. wink

Merci! c'est dans la boite: L'alarme regroupée fonctionne. Maintenant il faudrait que je la fasse clignoter...

Bernard.

[EDIT] j'ai découvert que si l'on écrit tous les opérateurs booléens à la fin de la liste de variables à traiter, ça marche aussi!
Par exemple:
<value> (B) (C) or (D) or (E) or</value>
est équivalent à:
<value> (B) (C) (D) (E) or or or</value>

Non!Non! je ne bégaie pas! mad2_gif

Dernière modification par BERJU83 (05-05-2013 18:20:25)

Hors ligne

 

Pied de page des forums

Maintenance informatique Lausanne