Page 1 sur 1

explications sur variable interne C0 ?

MessagePosté: Sam 29 Oct 2011 10:42
de pierre01
Bonjour,


Ayant un bug dans notre code, je suis en train d'essayer de comprendre une routine et je n'arrive pas à comprendre ce que veux dire la ligne :
C0 = &fs_avionics = 0

Comment C0 peut-il prendre la valeur de "&fs_avionics" et en même temps la valeur "0" ?
Merci de m'éclairer

Re: explications sur variable interne C0 ?

MessagePosté: Sam 29 Oct 2011 15:05
de stevelep
C0 est une variable conditionelle elle prends la valeur "vrai" ou "faux"
Donc ce n'est pas une variable numérique mais une variable logique.
On ne peux pas faire de calcul (+ - / *) avec ces variables mais tester leurs conditions
avec des opérateurs logiques (AND OR ...)

Pour écrire une condition on met

C0 = &fs_avionic = 0

ce qui veux dire que C0 est "vrai" si &fs_avionic = 0
sinon C0 est "faux".

Pour tester la condition, on a pas besoin de noter IF C0 = true ou false, on écrit simplement
IF C0 (sous entendu si la condition de C0 est vrai)
ou IF NOT C0 (sous entendu si la condition de C0 est fausse)

On peux aussi mettre 2 conditions:

C0 = &fs_avionic = 0
C1 = &fs_gear = 16383

IF C0 AND C1 (si les 2 conditions sont remplies)
IF C0 OR C1 (si une des 2 est remplie)

Voila

BOB

Re: explications sur variable interne C0 ?

MessagePosté: Sam 29 Oct 2011 15:33
de pierre01
Merci BOB, je comprends mieux rigolus

Re: explications sur variable interne C0 ?

MessagePosté: Dim 30 Oct 2011 10:51
de stevelep
D'ailleurs la vrai utilité de ces variables C0 C1 C2, c'est quand il y a plusieurs conditions.
S'il y a qu'une seule condition, il est préférable d'utiliser un IF normal

C0 = &fs_avionic = 0
IF C0

est remplacé simplement par

IF &fs_avionic = 0

Si tu as une condition à multiples paramètres genre "Main Warning" tu peux utiliser les C0 en cascade avec OR

C0 = &fs_avionic = 0
C1 = &fs_gear = 16383
C2 = C0 OR C1
C1 = &fs_oil > 10000
C2 = C2 OR C1
C1 = &fs_press < 100
C2 = C2 OR C1
C1 = &fs_resetalarm = 0
C2 = C2 OR C1
etc....

IF C2
{
&warning = 1
}

2

Si tu une condition ou tous les critères doivent être rempli tu fait une cascade avec des AND

C0 = &fs_avionic = 0
C1 = &fs_gear = 16383
C2 = C0 AND C1
C1 = &fs_oil > 10000
C2 = C2 AND C1
C1 = &fs_press < 100
C2 = C2 AND C1
C1 = &fs_starter = 1
C2 = C2 AND C1
etc....

IF C2
{
&starter = 1
}

Ca peux être utilisé pour programmer le starter par exemple avec de multiples conditions nécessaires
Si l'une des condition manque le starter marche pas, contrairement à FS qui démarre tout le temps

Cela te fait une longue liste de variables internes mais tu n'emploies qu'un seul IF
Sans ça tu doit utiliser des IF imbriqués l'un dans l'autre et ça complique passablement le code ...


Voila

BOB

Re: explications sur variable interne C0 ?

MessagePosté: Dim 30 Oct 2011 12:02
de pierre01
Re merci BOB, je garde précieusement cette explication rigolus

Re: explications sur variable interne C0 ?

MessagePosté: Dim 30 Oct 2011 12:38
de algue14
Superbob!!


Copié collé illico dans mes " trucs et astuces"

merci affiche